What’s New in iOS 10

iOS 10From the upgrade dialogue:

iOS 10 is the biggest release of iOS ever.

A massive update to Messages brings the power of the App Store to your conversations and makes messaging more personal than ever.

Find your route with beautifully redesigned Maps. Relive memories like never before in Photos. Use the power of Siri in more apps than ever. A new Home app to make controlling your home even easier. And all-new Music and News.iOS 10 introduces new features and improvements including:

Messages lets you express yourself in new ways and access your favorite apps right in your conversations

Siri now works with apps from the App Store to send messages, make phone calls, and more

Maps comes with an all new look and extensions to make reservations and book a ride

Photos is all-new with intelligent search making it easier to find people, places and more as well as new and beautiful ways to rediscover your memories

Home is a new app that lets you simply and securely manage your home automation products in one place

Apple Music has an all-new design, bringing greater clarity and simplicity to every aspect of the experience

Apple News has an all-new design adding bold typography, vibrant color, and distinct sections that make it easier to find stories on specific topics

Accessing the information you need is easier and quicker with a redesigned Lock Screen and deeper 3D Touch integration

QuickType keyboard adds new emoji, multi-lingual typing, and contextual predictions that leverage deep neural network technology

Suggested events and contact details are added to apps based on information found in Mail

Continue reading





How to check if the Alex Voice is installed in iOS

Talk-Icon-512Alex is Apple’s high-quality voice that users can download and use with VoiceOver and any text-to-speech application, including the native AVSpeechSynthesizer methods.

However, Alex is an optional file that users can download if they wish, and he’s rather large too (about 900MB). Hence we can’t rely on this voice being available.

While your iOS app can request to play an utterance using Alex, iOS will default to the low-quality standard voice if Alex is not available. So how can we check if he’s around?

Here’s a quick method that lets us do just that: it checks if the Alex voice as been downloaded to the device, and lets you react accordingly – perhaps by letting the user know that an enhancement is available and how to get it:

- (void)checkForAlex {
    
    // is Alex installed?
    BOOL alexInstalled = NO;
    NSArray *voices = [AVSpeechSynthesisVoice speechVoices];
    
    for (id voiceName in voices) {
        
        if ([[voiceName valueForKey:@"name"] isEqualToString:@"Alex"]) {
            alexInstalled = YES;
        }
    }
    
    // react accordingly
    if (alexInstalled) {
        NSLog(@"Alex is installed on this device.");
    } else {
        NSLog(@"Alex is not installed on this device.");
    }
}

This method loops through all installed voices and queries each voice’s name. If Alex is among them, he’s installed. You can also query other names (each voice has a name identifier), and if an “enhanced” version is available using the “quality” parameter ( 1 = standard, 2 = enhanced).

Query the “language” parameter to see which languages are available for speech on the current device (returns a language code like en-US).

For testing: here’s a quick method that writes all available voice names and parameters out as log messages:

- (void)showAllVoices {
    
    // display a list of all available voices
    NSArray *voices = [AVSpeechSynthesisVoice speechVoices];
    for (id voiceName in voices) {

        NSLog(@"Language Code: %@", [voiceName valueForKey:@"language"]);
        NSLog(@"Name: %@", [voiceName valueForKey:@"name"]);
        NSLog(@"Quality: %@", [voiceName valueForKey:@"quality"]);
        NSLog(@"Identifier: %@", [voiceName valueForKey:@"identifier"]);
        NSLog(@"-----------------------");
    }
}




What’s New in iOS 9.3.2

iOS 9.3.2 fixes bugs and improves the security of your iPhone or iPad. This update:Fixes an issue where some Bluetooth accessories could experience audio quality issues when paired to the iPhone SE.

  • Fixes an issue where looking up dictionary definitions could fail
  • Addresses an issue that prevented typing email addresses when using the Japanese Kana keyboard in Mail and Messages
  • Fixes an issue for VoiceOver users using the Alex voice, where the device switches to a different voice to announce punctuation or spaces
  • Fixes an issue that prevented MDM servers from installing Custom B2B apps

For information on the security content of Apple software updates, please visit this website:

https://support.apple.com/kb/HT201222





How to read MFi Controller input in iOS

Nimbus ControllerI bought a SteelSeries Nimbus controller the other day. It’s Made For iOS (MFi) and supported by many games, including those on OS X and tvOS.

Seriously, it’s a phenomenal controller! Naturally I wanted to see how easy (or difficult) it was to use it in my own projects.

Turns out that for game developers, it’s not that tough to make it work – thanks to Apple’s great GameController Framework that was introduced in iOS 7.

Here’s how I did it, following Apple’s document called Game Controller Programming Guide.

Continue reading





How to avoid “Capturing ‘self’ strongly in this block is likely to lead to a retain cycle”

I was trying to update a UILabel from inside a block the other day, and was puzzled by the above Xcode warning: “Capturing ‘self’ strongly in this block is likely to lead to a retain cycle”. The full code looked like this:

 

self.mainController.controllerPausedHandler = ^(GCController *controller){

        // triggers a warning
        [self displayMessage:@"Pause Button"];

    };

As it turns out, the trouble was that a block executed in self cannot capture a reference to itself (self) without there being a never ending loop involved. It’s probably to complicated for me to understand and/or care about, but thankfully there’s a relatively easy way to correct this problem.

Continue reading





What’s New in iOS 9.3

iOS-120With this update your iPhone, iPad and iPod touch gain improvements to Notes, News, Health, Apple Music and a new feature called Night Shift that may even help you get a better night’s sleep by shifting the colors in your display to the warmer end of the spectrum at night.

Continue reading