Well, it’s that time of year again. Predictions seem to be the thing to do, so here are mine. iOS is splitting into many forms at the moment. I think the iPhone flavour of iOS won’t see too many big changes, but the iPad version will do. Also, you can think of Siri as a whole new ajunctive OS that’s available in the cloud, though all Apple devices. Here we go…
- UI Refresh in line with the music app. Nothing too major. You will see more bold fonts and more colours.
- New music features. Because Apple has to keep driving this forward.
- Dark mode. OLED is coming and a dark mode is a battery bonus for OLED screens. It also looks cool. The interesting question is how developers will be asked to go about implementing this.
This is where the big stuff is bound to happen. Nothing happened in iOS10 so there is two years worth of stuff ready to go.
- Drag and drop has to be the number one most demanded feature. With split view this will solve so many of the iPads productivity whoes.
- New split view app picker. Because the existing one is just awful.
- A finder type app.
- Some Pro only feature to help differentiate the line up. Possibly pencil related.
- No 10.5 inch iPad just yet. WWDC just doesn’t seem like the time
- I think Apple knows that Devs are getting tired of waiting. So they need to show willing. They can do this by releasing new spec bumped MacBook Pros.
- New version of MacOs with extended touchbar support. I’m not sure what else. macOS is a thing of beauty and I’m not sure what more they can really add without changes to the hardware.
- Sports focused refinements
- A baby step away from the app model. Tres Vague.
- Amazon Instant Video.
- TV app comes to more countries.
- Lots of talk about Planet of the Apps and Carpool Karoke.
- No Siri Speaker announced because the devs need to get to work first
- New domains that heavily hint at the Siri Speakers imminent arrival
- New AI smarts
Ok, that’s 18 predictions. Lets see how I do.
I’ve been working on an expandable / collapsable tableView as a component as part of a project. If it’s something you think you might find useful, you can find it on GitHub. You will need to customise it, but it’s simple to use and a good jumping off point.
Spent a couple of hours this morning putting together a little component for inputing and validating numeric key codes on iOS. If you have a use for such as thing, you can find the source code and a demo project on GitHub.
Back in iOS 8 Apple deprecated the beautifully simple and readily abusable UIAlertView. The replacement; Surprisingly, its replacement UIAlertController has some short comings the UIAlertView does not. One major limitation is the inability to simply add custom views.
Fortunately, it is possible to remedy that with a little hacking about. I’ve put up a demo on Github using a MapView as an example. You can get it here.
This has happened to me a few times now. I’m working on an iOS app with multiple targets. Each target is designed for a specific customer. I want a single watch kit app that serves and adapts to the hosting iOS app. Sounds simple. Actually it is. Bit it is not obvious. Here’s how you do it.
First create the WatchKit app as you normally would, associating it with whichever target is most sensible. The steps are;
1. Do: File > New > Target 2. watchOS > WatchKit App > Next 3. Give the target a name relating to the hosting iOS App target 4. Select the Target you want to from the “Embed in Companion Application” dropdown 5. Click finish 6. Write it
Next, when you’re ready to add the watch kit app to another target, just like the above create a new watch kit target (steps 1 – 5 from above).
Like before, this will create two new file groups (which will end with “WatchApp” and ” WatchApp Extension”). Next, delete all the files created with the possible exception of the the PLIST or assets folder in order to customise the app on a target by target basis.
Next, go into the file groups for the first Watch App. Set the target memberships to include the new target (with the possible exception of the PLIST and the assets folder).
You should now be able to build and the second target, using the code from the first target.