WWDC 15 is over for some days now and I think it’s a good time to write down some thoughts about the things Apple showed to developers. I couldn’t attend at Moscone but watched the Keynote and will have a good time with a lot of the session videos. As regularly, at WWDC Apple shows all the new stuff for their operating systems as there are OS X, iOS and new for this year: watchOS. I’ve got my first Mac almost 10 years ago (when Tiger [10.4] was the current version of OS X) and always have a critical view on new features, technologies and so on. The experience I had when using the Mac for the first time after so many years on Windows and some years on Ubuntu Linux was overwhelming. Finally somebody did everything right – a clean, simple and well thought user interface standing on a robust foundation, intuitive applications and a lot more… With growing so rapidly the last years I’ve always had a bit of a “fear” that Apple could lose it’s path and become the next Microsoft – I was wrong!
For me one of the most important things of WWDC is that iOS 9 and OS X 10.11 will be all about stability – even if I don’t have any problems on 10.10 I can spot a few things where the overall consistency lacks a bit. On iOS there are some bugs that aren’t often but dampen the experience on iOS in some way – as an example I have to restart Mail.app after some days of usage because it will not receive any new mail. I do not have crashes of the system at all or any serious bugs so I think this is complaining on a very high level. But that’s exactly where Apple was when I switched to the Mac and I believe that’s exactly there where Apple should try to stay. Focusing on rock stable systems is key to succeed with further development and the rise of new technologies. But there was more to show, so let’s dive right in. Here are my personal favorites of WWDC15:
Metal
When I saw the introduction of metal and the first demos last year I really was blown away – console like quality on an iPad? Awesome!! It’s great to see that Metal is coming to OS X too and even better to see that it will power the graphical effects of both iOS and OS X. I think this will be a huge improvement on speed for a lot of systems and applications. Even the fact that companies like Adobe will implement it into their applications is big news – relying on CUDA was only nice on Windows as we know today. I think it’s a kind of paradigm shift in general to design graphical applications like game engines platform independent and let them choose the “right” framework on the system they will run. Unity 3D is a good example for this – you can write your shader as you like and Unity will compile them for the targeted system – Mac / Windows / Linux / iOS / …so you do not have to struggle with this. The API which is used on the target platform can then be optimized for the hardware it is running on like on consoles. This leads to a big improvements in both performance and features! Shame on me – I did not found the time to play around with Metal since last year but I promise this will change soon!
Swift 2.0
Swift seems to become the major programming language on OS X and iOS (and watchOS). I grew up learning C and C++, do a lot of C# at work and always struggle when I am on Objective-C. I do not really know why – maybe it’s because of the different syntax on methods – but I’ve never became a good friend of it so I was positive about Swift since the introduction last year. Seeing a new star on the horizon with a lot more comfort on the programmer side is really good but I didn’t do anything productive with it because I felt that the development of Swift will change a lot and I am too lazy to update my code after every new release of Swift. With version 2.0 this feeling is gone, I think it’s a good time to switch since a lot of frameworks offer Swift compatibility now and the language itself seems more mature. The last new language I learned was processing and it fascinated me by being so simple and fast for prototyping – I just write your code and you instantly see a result – no need for a lot of writing for simple tasks as it is in C++. Combining this with the speed of C and a lot of well developed frameworks and voíla – there you have Swift! Oh and the argument that it is only platform specific for Apple was no argument for me because it’s nearly the same with Objective-C! Swift will be OpenSource so I believe it will be available on every other big platform too soon.
watchOS 2
I preordered an Apple Watch on day one and I was sceptical since I received mine but I don’t regret it for a single moment. Since I’ve got the watch my iPhone stays in may bag almost the whole day. It’s a new category of devices which will bring up new ways to communicate and get work done that we can’t think of today. Also the features for health tracking are great – it keeps me motivated to move more throughout the day and do some workout after a long day in the office. With the introduction of watchOS 2 and the ability to access more features of the watch for third party applications like the Taptic Engine and also bringing new frameworks like CoreMotion let us developers do exactly the things we thought of initially when Apple introduced the Watch last year. At the moment I am planning two or three completely different apps that I think will be great on the watch – at least for me and maybe for some other people too. To introduce new abilities for developers with time and to not open the whole system from day one is a good move as I believe – it gives developers time to get in touch with the device and also let the users become familiar with the Watch before getting flooded by a lot of apps that aren’t working as they expect. With the introduction of watchOS 2 the Watch will be an even more powerful tool as it is already today!
There are a lot more things I am excited about but I think these are my three favorites of this years WWDC. I can’t wait to get my hands on all the new stuff and to watch the session videos but as always time is to short! Apart from this I think iOS 9 and OS X 10.11 will bring a very strong foundation to keep the platform up to date and to rely on in the next years. As is mentioned earlier I think that slowing down the “feature after feature” cycle and big changes from the last years will pay out great!