I have been a developer for a long time, other than a break for a few years to pursue a family business I have been at it for the best part of 20 years. Obviously there have been immense changes in technology and approach over that time, but at the same time there are still a number of constants mostly in approach, thinking and attitude towards work.
For most of that time I have been a web developer of some sort, more often than not being drawn into building and managing infrastructure becuase I could do that as well. After all, it's almost always cheaper to get someone internally to do something than contracting in outside help, right? So for me the primary changes have been in tools and technology used to deliver essentially the same sorts of projects.
Then came Apple and its mobile revolution. For a long time I had been saying to myself that I should do some of that mobile stuff. That is where the cool stuff is going on, that is where the money is, that is where I want to be. But true to form, the daily pressures of maintaining existing and stable income streams have until recently prevented any move in that direction. Fortunately things have changed thanks to the stable and steady growth of E-scape giving me a base to work from to once again look at expanding my skills base.
For anyone looking at iOS development one of the first thoughts that crosses your mind is '..where do I start?'. The problem is that iOS is vast, the number of APIs to code with is astonishing and the toolset to be used is complex as well as versitle. Most of the time I'm coding with a text editor and a web browser so these things, although not new, are certainly not the norm for my work. There was clearly going to be a pretty steep learning curve.
So what was I expecting? A long learning curve. Confusion over where to start. Hours and hours of digging around in hundreds and hundreds of different APIs. Struggling with an over complex IDE. And that doesn't even come close to the mystery of actually getting an App past Apple's review process. In summary, a hard slog.
The reality is a mix of worst and best case scenarios really. Although it is true iOS is massive, depending on the App you choose to write you only need to worry about some of it, and with the backup of Google and the Apple Developer resources its pretty easy to get yourself going in the right direction. Xcode is as bad as expected and delightfully powerful and helpful at the same time. Even now I wouldn't say I have even scratched the surface of what the Apple developer tools could be doing for me.
With a couple of aborted Apps and one serious App platform released what do I think of it all now? Well first of all I love it. There is a clarity that comes from developing in iOS instead of general web technologies. The tool set is consistent, the APIs on the whole are consistent, and the hardware is actually pretty much a non issue as it is all managed so well by the APIs.
Even the Apple approval process has not been as bad as expected with only one minor blip on the path to release caused by a misinterpretation of an unwritten rule by Apple. Yes I know that is actually quite a big deal, but once you know about these things they are easily worked around and actually make sense in some way, even if you don't aggree with them.
So what comes next? That is a tough question. For me personally I am fully commited to expanding my experience with iOS and maybe OSX development to build bigger and better things. I'm not relishing the thought of having to deal with cross platform development and Android so am happy that others in the business are championing that platform. Essentially we have the tech, we have the experience, now we just need the next idea to strike!