text to speech iphone app - ios

Good Evening,
I'm looking for a simple text to speech for iphone app development. I see numerous posts about this including ...
Text-to-speech libraries for iPhone
Question though, this link is all third party developers to use text to speech. I thought apple has a class reference to create speech? (nsspeechsynthesizer) Can someone please explain? Does apple not provide this for us?
Thanks

NSSpeechSynthesizer works fine on Mac.VSSpeechSynthesizer is available for the iOS - but it is a private API and as such will likely be rejected from the app store. However you can still make apps for private consumption. I consider this a bug as it makes creating accessible apps for the partially sighted for instance, harder. I have filed Bug ID #: 9451650 Bug Title: VSSpeechSynthesizer is Private.

iOS 7 has the AVSpeechSynthesizer class

As other answers have mentioned, Apple does not include NSSpeechSynthesizer in iOS, only in Mac OS X.

Related

Need advice on writing iOS apps on iPad with Swift Playgrounds

I want to write a keyboard app for iOS, but I only have an iPad at my disposal at the moment. I've been searching Apple Developer documentation as well as online forums and I'm not finding the answers I need to get started. There is focused documentation on Apple Developer (see: Creating a custom keyboard) that pertains to xcode and selecting the Custom Keyboard Extension template, but I'm not seeing this in Playgrounds. This makes me think I may have to build the app from the ground up, and I have no experience with Swift or app development.
Does anyone have any advice on how I can get started?
Out of my comfort zone,
-Kristopher
Unfortunately you will need to use Xcode on a Mac to do this. Playgrounds are not a full replacement for Xcode.
The ability to publish an app from a playground is relatively new and is limited.
To create a custom keyboard you need to combine an app with a custom keyboard extension in one project. Playgrounds can't do this.

disable internet on other ios apps

I'd like to create a very simple app to block internet access for certain app's between 7PM and 7AM on my iPhone.
However the mobile phone & imessage should stay usable, so it's no airplane modus.
This is to have some "no notification time" and don't see for example new e-mails coming in.
Would this be possible to archieve? Can an app control this behaviour for other app's?
Thanks a lot in advance for your answers!
Best regards,
Koen
No, you cannot do that. Apple "sandboxes" apps so that they have no ability to change the behavior of other apps.
If you did find a way to do that, Apple would reject your app, and probably quickly update the OS to prevent whatever method you used to do it.
EDIT:
You might be able to find a way to do this for jailbroken devices, but obviously those can't be released to the App store.
First thing, Such Apps are not allowed to be published on App Store.
I have worked with private-apis, and i know that this is not possible with only private apis. This may be possible once after you jailbreak your phone + using private libs, and may be you can create tweaks for jailbreak to achieve this functionality.

Detect which app is in foreground on iOS9 without jailbreak

I'm trying to log users individual app usage on iOS9.
I'd rather prefer that it wouldn't use jailbreak limited solutions, self explanatory. Doing the variation of this app on a jailbroken phone shouldn't be hard.
This will certainly not be released on the App Store as Apple wouldn't allow it.
I'm looking for any private API that can do this, any hidden iOS API's that can be used to do this. ANYTHING.
What I've already looked through:
how to determine which apps are background and which app is foreground on iOS by application id
How to know about app launched and details jailbreak iOS 7
Is there a private API to be able to detect what is current foreground app on iOS?
How to monitoring App running in the foreground in iOS8?use the PrivateFrameworks SpringBoardServices
which proved to be relatively helpful - we now can assume that there is some sort of additional access requirement, probably an entitlement, but we don't really know how it should look like
Can you find individual app usage duration using SpringBoard services framework or other private framework?
Find out active application or if on Springboard
Programmatically detect which iOS application is visible to user
However all of these proved to be unhelpful because Apple fixed this security flaw with iOS8 and the method to copy/access the currently front most app bundle identifier no longer works.
Question is: Is there someone who knows a workaround using different tools/exploits that do not require jailbreak?
Ideas:
inspecting the processes running on the device and devising an algorithm that would be able to recognize spikes that mean an app has been launched, which potentially could work, but it probably would be a major pain in the ass. Questions mentioning this solution:
Detect which app is currently running on iOS using sysctl,
Return a list of running background apps/processes in iOS
How to get Names of Background Running Apps
Find Background running apps in iphone
inspecting the phones traffic somehow?
not sure if there is some kernel stuff that I could do
Here is my Reddit version of this question if anyone wants to check it out. Also if it's of any value, here are the runtime headers for iOS9 and list of Apple's private API's.
Unfortunately, I was looking for a similar solution and have come to the conclusion that, at least at this point in time, there are no known methods that will allow you to determine app usage on iOS. Even the MDM providers such as Good, Airwatch, MobileIron, etc. don't seem to be able to do this. If anyone is able to come up with a solution, I'd love to see it.
For now, however, I think we would have seen a solution if someone had one that worked on the latest iOS.
sysctl is still open but they block certain combinations of selectors. I did this on iOS 7 and gave Apple Product Security the code. They won't patch iOS 7 but rely on App Review. iPhone 4 is wide open.

Access private APIs on NON-jailbroken devices for Business use ONLY

This question follows the answer provided by Nate on this link:
How do I change my iOS applications' entitlements?
It seems the described procedure is to be applied on Jailbroken devices.
I'm interested in being able to turn off the screen via my iOS application.
Previous answers point to doing this:
void (*BKSDisplayServicesSetScreenBlanked)(BOOL blanked) = (void (*)(BOOL blanked))dlsym(RTLD_DEFAULT, "BKSDisplayServicesSetScreenBlanked");
Then
BKSDisplayServicesSetScreenBlanked(1); // 1 to dim, 0 to undim
I read that the app also needs com.apple.backboard.client entitlement.
This is where my knowledge stops.
How can I use this in my app if the app is ONLY to be used in a business context controlled via Apple's MDM platform ?
I do not want to jailbreak the device.
First of all, very interesting question. Unfortunately, I don't have the answer, but have some info to share:
I am not aware of any method to add entitlements to 3rd party apps on NON jailbroken phone. You can check my question here: Does anybody know a way to add entitlement to iOS application for non jailbroken device? A lot of upvotes, no anwer thought :(
Generally speaking, entitlement area was reverse engineered to death and there is quite small chance of finding some holes around it. So, I would say, you will have to dump BKSDisplayServices method and search for something else to turn off screen.
I tried to find a way to turn off display on non-jailbroken device too, even posted a bounty on it: Turn off display in iPhone OS (iOS)
There were several answers, but none of them worked well enough.

iOS Changing App icon at runtime

I want to change my app icon at runtime. I read other similar threads on SO, and they say that it is not possible using Apple sanctioned APIs. One of the responses mentioned that its possible using restricted APIs, but did not elaborate.
I understand that if I use restricted APIs, my application scope will be reduced to jail-broken devices only. I'm ok with that, but how do I implement this feature.
Sorry, I cannot indicate any research effort for this question because I have no idea how to go about it or even how to get started on this.
Thanks in advance :)
Although this is an old question, I recently discovered this is now possible, as of iOS 10.3:
https://developer.apple.com/documentation/uikit/uiapplication/2806818-setalternateiconname
...using the UIApplication.setAlternateIconName(_:completionHandler:) API.
Note however you are limited to using icons which are already shipped as part of the app bundle.

Resources