Learning iOS app development is made much easier by the large amount of tutorials and learning material on the net.
While Swift came out in 2014, Objective-C was the language of choice before that for iPhone and iPad apps, resulting in two things: the language is stable and highly refined and the selection of tutorials for the xCode IDE, editors, libraries, plugins and other resources is vast and of excellent quality.
We’ve put together a guide to best resources developed for Objective-C and Swift. The good thing about Apple’s proprietary language is that all of these are relevant to native iOS coding, unlike for Android where plugins might only work on specific editors and IDEs.
The guide is organised as follows:
First, we begin with Editors and IDEs, and if you’d like more resources still, make sure to check out our App Development Tools Directory.
Editors and IDEs
We should probably by answering the question “What is an IDE?”
According to Techopedia:
An Integrated Development Environment (IDE) is an application that facilitates application development. In general, an IDE is a graphical user interface (GUI)-based workbench designed to aid a developer in building software applications with an integrated environment combined with all the required tools at hand.
XCode is the original IDE made by apple, but there are alternatives. We recommend you try Xcode out first before deciding to move: there are enough plugins that you can probably customise your experience to be exactly as you want it.
XCode – The official IDE for Swift by Apple, the Cupertino company’s attention to detail makes this the most powerful coding platform for products across its range: iPhone, iPad, Mac, Apple Watch and Apple TV.
AppCode – JetBrains’ IDE for both iOS and OS X development come with a 30 day free trial, and supports Objective-C as well as Swift.
Code Runner – Claims to run any language, not just Swift, and comes at the very cheap price of $14.99, with a demo version available too. Also has a large number of code templates.
Swifty – If you fancy learning Swift while on the move, this constantly updated mobile app will teach you anywhere you are. First two chapters are free.
Knowing your chosen IDE inside and out will help, but of course you also have to know the underlying language.
The languages are, of course, Swift and Objective-C. Below we’ve rounded up some of the best tutorials out there, including the famous and highly recommended Stanford free tutorial.
Swiftlang.eu – THE language for iOS programming. The majority of this guide is geared towards Swift-related resources.
Udacity – A long Udacity blogpost introducing the Swift language. A quick way to understand what the language is about, and don’t forget to also check out Udacity courses on Swift.
Stanford – Free and made by Stanford, so you know it’s a quality tutorial – the videos are often more than an hour long, but they are extremely in depth. If you stick with it you won’t need another tutorial.
Thinkster.io – A very well structured tutorial pulling in resources from all over the web, it starts from the very basics and takes you through a series of modules on overarching concepts like control flow and OOP.
Design+Code – Look out for the frequent discounts on this book which, while not specific to Swift, is a great resource on thinking about app development from a designer’s point of view.
Hacking With Swift – 38 free Swift tutorials if you want to learn online, or you can buy the physical book for $40.
Cocoa Is My Girlfriend – While this blog isn’t updated very often, it doesn’t need to – the depth of its analysis and comment on Swift and Cocoa makes posts very worthwhile reading.
We Love Swift – Learn programming from scratch, with 100 different exercises. You can buy the app and the ebook for $40.
Code With Chris – Of the “learn coding by building an app straight away” variety of tutorials, constantly updated and extremely user friendly.
You don’t have to code or create everything from scratch – there are libraries to help speed things up.
The first two resources in this part of the list alone give you access to thousands of libraries. Rather than just present you with a huge amount of choice and leaving you to do your own research, we’ve also gotten a little specific, choosing what we see as some of the most useful, and most frequently used, libraries in iOS development.
SwiftToolbox – An absolutely huge collection of iOS and OS X libraries with very handy search and browse functions. Community maintained.
CocoaPods – The most famous dependency manager for Swift and Objective-C programming, it comes with eighteen thousand libraries. That’s right. An essential tool.
Libraries Used in the Top 100 iOS Apps – Fantastic analysis of the most used libraries, written in October 2015. Lists the libraries at the end of the article, and we have featured some of them here.
The Foundation Framework – If you’re programming in Objective-C, both the community and Apple recommend using this as your base library.
Swift Standard Library – Conversely, if you want to code in Swift, this is the recommended library.
Trending Cocoa Pods – The most used libraries used in Cocoa, updated daily.
Alamore – A library for HTTP networking.
SwiftyJSON – As the name implies, a good library for JSON use.
PromiseKit – As hinted by the name, a promises implementation with an asynchronous programming focus.
BrightFutures – Geared for asynchronous programming with futures and promises.
SDebImage – Asynchronous image downloader.
Next up: how to customise your IDE with plug-ins.
This section of the list could go on forever. There are so many plugins, both free and not, to be found on the web that allow you customise XCode to extreme detail. We’ve listed quite a few of the most famous and useful ones, but if you don’t find something to suit your specific needs here – don’t stop looking!
Alcatraz – Open source Plugin and package manager, also comes with its own discovery engine for plugins, templates and colour schemes. (Available for Xcode 7 and above).
CocoaPods – Plug in of the famous iOS and OS X dependency manager, makes the use of CocoaPods from within XCode much easier.
Injection for Xcode – Change implementation of an Objective-C class and have it work without restarting the app.
Fuzzy Autocomplete – Fixes some of the issues with XCode’s prefix-based autocomplete. Quality-of-life plugin.
SCXCode Minimap – Takes a leaf out of videogames’ books and draws a minimap of your code to immediately know where you are within it.
Dash – A code snippet manager, but more importantly, an API documentation browser with 150+ offline documentations.
RTImageAssets – Checks for image size and creates dummy images when your assets are missing.
Peckham – Write import statements via pop-ups.
KSImageNamed – Autcomplete ImageNamed: calls by scanning through your image folders.
GitDiff – Adds visual information to git within Xcode to streamline code revisions.
XToDo – Another quality-of-life plugin, this one highlights and presents TODO, FIXME, !!! and ??? comments.
HKSnippet – Enter code snippets using simple triggers.
CoPilot – Want to code collaboratively with someone? This allows you to with the use of Bonjour.
AllTargets – Auto-select all targets when adding a new file to Xcode.
KPRunEverywhereXcodePlugin – Run projects on multiple iOS devices, all at the same time.
KZLinkedConsole – Huge quality of life improvement, creates clickable log messages that jump to the corresponding line of code.
AutoResize Mask – As the name implies, allows you to autoresize a mask from within Xcode.
VWInstantRun – Select a section of code and run that section exclusively, all while within Xcode.
Refactorator – Does what it says on the tin, refactoring Swift and Objective-C.
ACCodeSnippetRepository – Another snippet manager that syncs your snippets with a git repository.
Crayons – Streamlines use of colours within interface builder.
MarvinXCode – Adds a large number of hotkeys.
GitDiff – Easy visualisation of modified and changing code
XCFui – Identifies unused import statements and brings them to your attention.
XCodeBoost – Plug-in with many functionalities with the aim of making code easier to examine and edit.
Code Pilot – Adds search by keywords functionality.
Remote – Control your iOS device from within XCode for testing. Also allows macros on the device.
XCAddedMarkup – Preview hyperlinks and images from within Xcode.
Showingithub – Jump directly to the code’s location on GitHub. Also works with BitBucket.
Once you’re all set up and ready to go it’s time to learn by looking up some Youtube tutorials!
If you’re the type of learner who prefers to see what they’re meant to do, you’re in luck – there are plenty of Youtube tutorial series on coding in Swift. Here is a selection of the best of them.
A touch dated, having been posted in 2014, but A Casual Programmer has three playlists worth checking out: Objective-C development, iOS App and iOS game programming. Definitely start from here if you want to learn the major differences between these and do all your studying before you get onto programming.
Great introduction to the series – skip the second video on system requirements (now dated) and move straight to the teaching. The series starts off with the very basics, from templates to Xcode, and tends to concentrate more on how the tools work rather than using the “build-an-app” style of tutorial.
Zero programming experience required and constantly updated when new versions of iOS or XCode come out. We recommend you start off with How to Make an App – Episode 1: Tools and Materials.
We featured The New Boston in our top Android Dev Videos on Youtube as well, and given their breadth of videos, we’d feature them for pretty much any platform. 37 videos on iPhone development tutorials, 65 on Objective-C, and plenty more on web design, C#, PhP and others.
A proponent of the “learn by making” school of coding, Brian Advent teaches you the basics of Swift via the construction of apps or games. There’s a number of tutorials on his channel ranging from a simple list app to 3D touch games, as well as shorter videos on specific topics like icons and sets.
Features three lists for a total of over 200 videos on iOS app development, the most recent of which only date to a couple of months ago. Extremely in depth, perhaps not too beginner friendly but you’ll find pretty much everything you could need here. There’s also a series specifically on the use of Xcode.
After two larger series, we decided to recommend one that keeps things brief too – AppShocker’s five videos guide you through the creation of a simple guessing game. A good place to understand whether Swift coding is for you.
Making an app is only half the battle – how do you get people to find out about it?
With ad networks…
If you’re developing your own app, you should also know where and how best to advertise it. Below are some of the best ad networks in the world.
Facebook – Scale, retention, ubiquity… Facebook is the leader in mobile advertising across all platforms. It covers all media formats and should be a key part of any app marketing campaign.
Chartboost – Gaming-focused Chartboost provides highly targeted ads to loyal customers, for a retention rate 60% higher than the average of the other networks. Covers video, animated, GIF and interstitial ads.
AppLovin – Applovin has focused on data and programmatic in-app inventory and video ads, and this strategy has placed it among the top performers for gaming ad networks. Sophisticated user analytics coupled with real time data drive high ROI and effective campaigns.
Google Adwords – Obviously the scale and reach of Google is, on its own, a good reason to use it as an ad network. It is also harnessing the “power of intent” – analysing a user’s behaviour to figure out their intentions before presenting the correct ad to them.
Vungle – Another network with a specific focus on video ads, it boasts one of the lightest SDKs out there, aiming at increasing eCPMs and optimising user experience. Has offices in San Francisco, London, Berlin and Beijing and is used by 4000+ apps.
Unity – If you’re talking games, you can’t not mention the Unity engine. Having now moved beyond development and into ads, they know exactly how players behave and what they want, and they offer a wide knowledge base to support your campaigns and monetisation.
Tapjoy – A marketing automation and monetization platform boasting more than one billion app installs. Partnered with MoPub, Fyber and AerServ, it offers two different payment plans, per install and per interaction.
Fyber – With an average of 150 million unique users each month, this mediation platform connects devs with media companies with high quality ad formats (rewarded videos, offer walls and interstitials) and providing a strong selection of publisher tools.
AdColony – AdColony’s main product is Instant-Play Technology, which the company claims allows HD video adverts to load and play regardless of device or connection quality. Coupled with triggered content and loyalty programs, AdColony is an excellent ad network for games.
Twitter – As the Appsflyer report states, while Twitter does not have scale on its side it does have extremely high user retention. It also only bills when people complete certain actions, giving you full control over when and how much you pay, as well as very accurate targeting thanks to its user data.
Mobvista – Recently acquired NativeX, quoted on the NEET index and celebrating its 3rd anniversary, Mobvista’s ad network is going from strength to strength, with truly global reach and (it claims), 10 billion daily impressions.
Lifestreet – Lifestreet’s platform allows you to test hundreds of ad types in order to understand which leads to the best conversion rates and return on investment. Claims to reach 600 million app users per month.
AppDriver – Operating on a cost-per-install basis, AppDriver has access to some of the biggest Asian mobile markets including China, Japan, Korea and Taiwan. As you only pay for actual installs, AppDriver says, it is a risk-free model.
AppLift – One of the premier ad networks and most kitted-out SDKs out there, collaborating with over 500 publishers including Zynga, Lyft and GoodGame Studios. Has a proprietary optimisation algorithm to increase ROI and works with 5000+ media partners.
NativeX – Often ranked among the best monetization and user acquisition companies, nativeX makes games its primary focus and yields excellent performance. Founded in 2000, it also offers ASO services, white papers and research on app monetization in general.
HeyZap – Transparent, simple to use and mediating some the biggest ad networks (AdColony, AdMob, Facebook), HeyZap supports native, static interstitial, rewarded and non-rewarded video and banner ads and backs it up with powerful segmentation and analysis tools.
Yahoo Gemini – The Gemini project has the advantage of tapping into Yahoo!’s massive data set, tracking trillions of actions and “signals” to determine the best time to serve the right ads to the users most likely to convert. Claims to reach 1 billion users per month, of which 600 million on mobile.
Mail.ru group – Offers a vast range of services on top of app monetisation and adverts. Strong analytics and coverage of all ad formats makes this Russia-based at network a good choice for all app developers.
Avazu – Has access to the Chinese market, and as such has huge potential for ROI simply in virtue of its scale and reach. Programmatic advertising and competitive payouts are simply the cherry on the cake of this huge ad network.
Fiksu – Boasts a proprietary dataset coupled with segmentation tools to boost ROI and plan marketing campaigns. Uses the “Personas” model to categorise users in 250+ types and target them with the right adverts. Covers 90% of all active mobile devices in the US.
Mobilda – Part of the MarsMediaGroup, the online advertising giants, as well as offering developers premium ad deals it also has a number of tools to calculate life-time value and various pricing models such as CPI, CPA, CPM and CPC.
Glispa – Offers the Ampiri ad mediation platform and gPerform, a user acquisition network. Their specific focus is launching worldwide marketing campaigns, and with an international team across six countries and speaking 24 languages, they can truly claim to have global reach.
Motive – Partnered with Tune, Kochava and Appsflyer to name a few, Motive’s platform uses site ID tracking and “Customary Second Action” tracking to optimise campaigns, but is also flexible in being open to third party metrics and tracking systems. Works on a CPA and CPI basis.
Aarki – Aarki’s platform gives you the chance to both deliver and create mobile adverts, as well as multivariate testing and big-data analytics. Highly transparent, its main offering is “creative optimisation”, optimisation overseen by their in-house creative designers, to increase ROI.
Yeah-Mobi – One of the main native adverts networks, it has grown since foundation in 2009 to have 90+ million monthly activations and over 10,000 traffic sources. Can be integrated both with API or a lightweight SDK.
Mobupps – Programmatic buying, high value eCPMs campaigns and targeted user acquisition all come under the Mobupps umbrella. Simple integration, real-time data reporting and an analytics dashboard are all also part of their platform.
Appier – Ad platform with a specific focus on cross-screen campaigns and trying new technology. Ad Formats include various forms of banner, video, push and native with a particular attention to screen size and 24-hour access to real-time data.
Just a few more resources to round off the guide now.
These are resources that didn’t really fit in any of the categories above, but still need to be mentioned.
NSHipster – A “journal of the overlooked bits in Objective-C, Swift, and Cocoa. Constantly updated this is very niche but you can certainly find some nuggets in there!
Cocoa Manifest – Jonathan Penn stopped writing up his observations and guidelines for Swift in 2014 because he was hired by Apple – so he knew what he was talking about. A great, down-to-earth resource.
Ray Wenderlich – No resource list could be complete without Ray Wenderlich’s massive knowledge base and list of tutorials.
Final Thoughts: This guide covers the key aspects of iOS development, and we hope you’ll have found at least one resource here that is useful to you. If not, you can also look into our App Development Tools Directory and most of all, get coding!