iOS 7 was the first new iOS that I remember having to learn. I started around the time iOS 6 lifted its NDA, so all the books I was reading were out of date with Modern Objective-C.
Since iOS 6 was sort of my first one, I don’t really remember anything “new” from it. Everything was new and I was simply in a panic to try to learn the basics before everything up and changed on me again.
That was different with iOS 7. I had enough of a grasp on iOS programming to be able to grok the differences between it and iOS 7. The fact that there were a multitude of changes stylistically helped things tremendously.
With WWDC just around the corner, I have been talking to some people about iOS 7. Specifically, what worked and what didn’t. There were a lot of new APIs and technologies that were supposed to revolutionize how people created and designed their apps. Some of these technologies were the focus of several WWDC talks. How many of them were actually implemented and have changed the way we design our apps?
- Borderless Buttons: Borderless buttons are among the most despised changes that I have heard people openly complain about. I can’t find anyone who likes the borderless buttons. Everyone I am encountering is trying as hard as humanly possible to ignore that part of the HIG. I haven’t looked recently, but I think that in Xcode 5 they removed the ability to give a button a border in IB. It seemed to me that this was something Apple really wanted people to be doing, but so far everyone I talk to is avoiding it like the plague. Will be interested to see if Apple backs down on this or if no one is actually going to give a crap about it.
- Translucency: This one confused me tremendously. I think that having the interface be layered with translucency could have been a really cool thing to do, but to the best of my knowledge, Apple did not provide built-in functionality for this. If you wanted a blur effect you had to roll your own. If Apple wanted this to be the preferred way of doing things, I wonder why they didn’t make it easier for developers to adopt.
Text Kit: Text Kit was the subject of at least three different WWDC 2013 sessions. It seemed like it was an API that Apple was promoting and pushing very strongly. I know that there were some easy implementations of Text Kit to make the text responsive to the user’s font size settings, but I haven’t really heard anyone talking about Text Kit.
I know of one person doing a talk on it at CocoaConf, but my impression was that this experienced developer was having trouble using it.
It’s possible that people have done the easy implementation of Text Kit into their apps, but again, not really seeing people getting excited over it and not seeing people evangelizing it, at least not to the extent that I thought they would.
Sprite Kit: Again, this surprised me. I know when this was announced that it was a very popular subject with students in my iOS classes. There was a lot of genuine excitement around Sprite Kit.
I have seen a couple of books about it, but I am not really seeing a lot of people advocating it. I am wondering if it because people already know another engine like Cocos2D that would allow them to port to other systems or if it is because people are not enthused about making game for the iOS platform anymore or what is going on with this.
- Auto Layout and Animated Transitions: Going along with some of the other style changes from iOS 7, this was another thing I don’t see people doing much with. I have been trying to learn Core Animation, but with the renewed emphasis on Auto Layout, it has been tremendously difficult trying to reconcile those two battling pieces of technology. Auto Layout wants to keep everything in one place while Core Animation wants to make things move. We are supposed to utilize both of these APIs, yet again Apple does not make it easy to reconcile them.
Where Do We Go From Here?
I am wondering what impact iOS 8 is going to have on developers. I am wondering if, since there was such a radical change to the UI, people have simply not had time to explore any of these new APIs.
I am very interested in graphics and a lot of these APIs excite me a lot. Talking to other developers, many are not as focused on these things as I am. They focus on things like Core Data and table views and networking APIs.
So far not utilizing these new APIs hasn’t prevented anyone from putting an app out on the store.
I hope that in the new few years people become more comfortable with things like Text Kit and we see some real innovations in how people create apps. I don’t know if that will happen.
At CocoaConf Chicago, Justin Williams made the knowing joke about every iOS developer waking up in the morning deciding to make a weather app. I have observed that people want to do something that is easy or at least not particularly innovative.
When was the last time you saw a truly innovative app out on the store? I think we are stuck in a self-perpetuating cycle where app developers make something easy that already has a dozen instances on the store, doesn’t make money off of their app, then decides app development is a burst bubble and refuses to put any more effort into it.
I think there are a lot of possibilities out there for people willing to dig into these “new” APIs. I hope that in the next few years more people are willing to give this a shot and do something innovative. I would like to do something innovative (if I ever get any free time!!).
Again, this was the first year I saw a new iOS from beginning to end. I don’t know if any of these are going to be considered failures or what is going to happen in the coming few days, but I was very excited about a lot of what I saw last year and I hope that it is given some more time for people to get used to and to explore, along with all the other neat things we will see next week. I have faith.