At Thinslices, we develop mobile products and we mainly specialise in iOS. Which is why all of our developers are interested in maintaining a high level of expertise in this area. Ionut Ailincai, our head of iOS development, shared with us some iOS resources and tips that helped him get better at coding over the years. We will be talking about:
- open-source libraries
- resources for learning iOS development
- blogs appropriate for learning
- what to know to get started
You can't learn iOS programming without mentioning open-source libraries. Here are those that Ionut recommends to all those learning to code:
- SocketRocket, “A conforming Objective-C WebSocket client library”, extremely flexible and easy-to-use, works perfectly for WebSockets in iOS.
One of the most-appreciated open-source libraries out there, AFNetworking has the advantage of great design, plus the extended testing, thanks to its undisputed popularity. Additional plugins come to address features that aren’t offered by the main core, and the extended documentation available makes working with it all the more pleasant an experience.
- SVProgressHUD - a very clean HUD that helps you real-time track the progress of an on-going task. The library is easy to install and customize and posts notifications in response to being shown/dismissed or when users touch on the screen.
- ShareKit - an open library for social media sharing features;
With the help of this library, content sharing content becomes really easy. All documentation and instructions needed can be found here.
iOS resources for learning how to code
When thinking about the things that helped him most during his learning process, Ionut says that the Apple Worldwide Developer Conference videos are a true source of inspiration. We wrote an article some time ago about how the iOS developers at Thinslices make a habit out of watching each video and trying to put to practice what is being shown. Ionut claims that it takes a lot of perseverance to actually make time to watch one video per week (during iOS Theatre sessions at the office) and to do the coding part a few hours/week on his own, but, once the process is started, benefits are worthwhile.
Apple’s documentation and Sample code
Another valuable resource for learning iOS development is the Apple Library available online. There’s virtually everything a developer needs to know in order to make his way through an iOS app from scratch: media layers, core services layers, OS layers. Information is grouped under 3 categries: “topics”, “resource types” and “frameworks”, each of them covering different level of difficulty for areas such as data management, graphics and animation, languages or security.
Stanford’s CS 193P Course - iPhone Application development
One of the most comprehensive guides on iOS application development, Stanford’s CS 193P course offers a wide range of learning resources, over a 5-year span (2009-2015). Lectures start at a basic level, with introductory information on the anatomy of an app, web views or unit testing. Beginners will rejoice, as each lecture comes with an extensive handout, as well as example archives and even assignments. A truly amazing resource, of academic caliber that, on top of all, is free of charge.
iOS Specific Blogs
As in every domain, development can also benefit from shared professional experience. Most of the times, articles come in easy-to-read formats that share personal experience and extensive research. Plus, they facilitate interaction between authors and readers, which makes them all the more interesting. A few blogs are presented below.
iOS development: useful blogs
“a journal of the overlooked bits in Objective-C, Swift, and Cocoa“, this blog publishes regular updates on development novelties, as well as reviews of publications that can be of interest. Article areas comprise Objective C, Cocoa, Swift and Open Source resources and even Trivia.
A website with Objective C/Swift tutorials, resources and competition that can interest a developer. Authorship of blog posts is diverse and therefore, topics (and tones of voice) are alike. A must-go-to for every respectable iOS developer.
One of the most famous blogs for gamers and developers, Ray Wenderlich’s website features articles, tutorials, written tutorials and even podcasts. There’s virtually everything a developer could want, coming from a fellow iPhone programmer.
What to know to get started
How long does it take?
Ionut claims that a good starting point is to read Apple’s Start Developing iOS Apps Today. Then you should find some iOS blogs to follow and don’t forget to practice while reading about all the cool stuff.
The development of a simple “Hello world” shouldn’t take longer than 2 days, assuming that you want to understand all the concepts used in the project. Of course, this doesn’t make you an iOS Developer. First you need to get used with the Objective-C language (or Swift) and then start to dig in the vast iOS SDK. Ionut believes that one can think of themselves as a Junior iOS developer after at least 320 hours spent reading and practicing (of course, this assuming that the junior developer already has strong previous OOP / design patterns knowledge).
When you advance a little bit, certain SDKs can help developing wonderful (although more sophisticated) apps:
- Box2d, “ an open source C++ engine for simulating rigid bodies in 2D”
- core plot, for graph coding
- iCarousel - for CoverFlows
Choosing between Objective-c and Swift
Ionut claims that, since, at this moment, Swift is still in “beta” version, it’s a little risky to migrate the code of an app from Objective-c to it. However, if you’re fresh at learning iOS development, it’s not a bad idea to get accustomed to Swift, because Objective-c will most likely become deprecated at some point: it is in Apple’s nature to push the adoption of their new products. On the other hand, there is much more documentation on Objective-c plus lots of sample apps / code on the internet.