One of the many advantages of coding native iOS apps is that, while Swift came out in 2014, Objective-C has been around for much longer. This results in two things: first, the language is stable and highly refined, and second the number of tutorials and community-created tools for developers is vast and of excellent quality.
We’ve put together a big list of the best resources developed for Objective-C and Swift through the years. 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.
If watching videos is what gets you learning, we’ve also published a selection of the best iOS programming tutorials on Youtube, and you can find plenty more resources in our App Development Tools Directory. The resources in this list are organised as follows:
Editors and IDEs
There are alternatives to Xcode, but that is the official and most popular tool on which iOS applications are built. There are some strong alternatives, but 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.
RunSwiftLang – Browser based, this isn’t so much an IDE more a testing ground to see the results of Swift code. Completely free.
SwiftStub – Much the same as RunSwiftLang, a “code bin” for Swift.
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.
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.
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.
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.
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 big list 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!