The purpose of this repo is to provide a learning path for those interested in making Apps for the Apple ecosystem. This repo is dynamic and will change as needed in order to povide a best consolidated. If you would like to contribute links or a different structure or path, please do a pull request and submit. All changes that add value to the repo will be considered.
NOTE: I'm not an affiliate of any of the link mentioned below. However I do ask that if you like a lot any of the free resources and the creator has a paid version, to consider buying to support their work!
Learning to develop apps for the Apple ecosystem is a journey unto itself. It seems that a common starting point is to learn to develop iOS apps. Taking this into consideration, the foundations portion will be geared towards iOS development.
So why is learning iOS development and making your own apps or develop for someone else is so hard. Because you must learn five different topics to get an app into the store: 1) A programming Language; 2) iOS SDK; 3) iTunes Connect; 4) App design; 5) App store marketing; 6) Xcode (The Integrated Development Environment (IDE))
If you are completely new to Computer Science and Coding, and are interested in both, start here:
- CS50: https://cs50.harvard.edu
If you are just interested in starting to code and develop applications for iOS without getting into the Computer Science realm, start here:
- Ray Wenderlich iOS apprentice: https://store.raywenderlich.com/products/ios-apprentice
- Hacking with Swift: https://www.hackingwithswift.com/read
- Apple's own Book, Free on iBooks: App Development with Swift.
After you've gone through one of those courses, you are ready to understand the why. These two books are the best at it and will serve you as reference from now on:
- Big Nerd Ranch Swift: https://www.amazon.com/Swift-Programming-Ranch-Guide-Guides/dp/013461061X/ref=sr_1_1?ie=UTF8&qid=1499888896&sr=8-1&keywords=big+nerd+ranch+swift
- Big Nerd Ranch iOS Development: https://www.amazon.com/iOS-Programming-Ranch-Guide-Guides/dp/0134682335/ref=sr_1_2?ie=UTF8&qid=1499888896&sr=8-2&keywords=big+nerd+ranch+swift
BNR books are top notch and so is their blog, so it is worth checking it out for time to time. https://www.bignerdranch.com
It might be a worthwhile investment to look into Safari Books Online. They provide unlimited access to the majority of Technology books publishers like BNR, O'Reilly, No Starch Press, and Packet Pub. Check them out at https://www.safaribooksonline.com
Throughout these books and resources you whould learn the following things:
- Swift - Variables and Constants, Loops (For-in, While, Repeat-While), Types, Conditionals(If statements, Switches), Numbers(Integers and Floating Points), Strings, Optionals, Collections (Array, Dictionary, Sets), Closures & Functions, Enumerations, Structures, Class, Initialization, Properties and Methods, and Value vs Reference types.
- iOS SDK - Saving information()
- Xcode -
- General Computer Science Topics - Procedural Programming (Step by Step, line by line programming); Basics of Object Oriented Programming (Encapsulation, Composition, Inheritance, Polymorhphism), Delegation, Abstraction; Algorhythm, Data Types
- What every Junior Developer should know: http://blog.teamtreehouse.com/every-junior-ios-developer-needs-know
- Network requests: http://matteomanferdini.com/network-requests-rest-apis-ios-swift/
- Ultimate guide to JSON: http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/
- Networking and Persistance: https://medium.com/@sdrzn/networking-and-persistence-with-json-in-swift-4-c400ecab402d
TODO: - Add intermediate resource and topics. (i.e. Individual Frameworks inside iOS, external frameworks, Cocopods, Cartage, Git, Databases)
- Machine Learning for Everyone: http://machinethink.net/blog/ios-11-machine-learning-for-everyone/
- Ray Wenderlich Machine Learning: https://www.raywenderlich.com/164213/coreml-and-vision-machine-learning-in-ios-11-tutorial
- BNR Machine Learning: https://www.bignerdranch.com/blog/machine-learning-in-ios-using-core-ml/
- Models list: https://github.com/likedan/Awesome-CoreML-Models
- Neural Network Playground: https://github.com/hetelek/Neural-Network-Playground
- Daniel Gindi: https://github.com/danielgindi/Charts
- Awesome iOS Charts (Curated list): https://github.com/ameizi/awesome-ios-chart
- SwiftCharts: https://github.com/i-schuetz/SwiftCharts
TODO: - Add advanced resources and topics.
- Interacting with C APIs: https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithCAPIs.html
- Spectacle app (Window management for OSX): https://www.spectacleapp.com
- Quick Look JS (JSON for Humans): http://www.sagtau.com/quicklookjson.html
- SourceTree (Visual Git): https://www.sourcetreeapp.com
C:
- The C Programming Language
C++:
Objective-C:
- BNR Objective-C
- Objective-C for Swift Developers
- Sketch APP: https://www.sketchapp.com
- Great Book about design for iOS: https://designcode.io
- Marketing for Developers: https://devmarketing.xyz
- Marketing for Engineers: https://github.com/LisaDziuba/Marketing-for-Engineers
- App Launch Map: https://applaunchmap.com/2017/06/23/why-app-preview-videos-are-vital-in-ios-11/
- The Stairstep Approach to Bootstrapping: https://www.softwarebyrob.com/2015/03/26/the-stairstep-approach-to-bootstrapping/
- Yu-kai Chou: http://yukaichou.com
- Gamification Research on Diablo III: http://yukaichou.com/gamification-examples/diablo-iii-gamification-winning-addicting/
- https://github.com/sprang/Inkpad
- https://github.com/peterrudenko/helio-workstation
- https://github.com/swiftcodex/Swift-Radio-Pro
- https://github.com/artsy/eigen
- https://github.com/MengTo/DesignerNewsApp
- https://github.com/bonzoq/hniosreader
- https://github.com/Dimillian/SwiftHN
- https://github.com/mozilla-mobile/firefox-ios
- https://github.com/automattic/simplenote-ios
- https://github.com/wordpress-mobile/WordPress-iOS
TODO: - Add good channels for getting help and contributing to the community
- iOS Developers HQ: https://ios-developers.io
TODO: - Add resources for MacOS, WatchOS, TvOS, Backend/Server Swift
- Stencil (templating language for Swift): https://github.com/kylef/Stencil
- Vapor (Server Side Framework): https://github.com/vapor/vapor
- Build a blog with Kitura: https://developer.ibm.com/swift/2017/11/07/build-a-blog/
- Public APIs: https://github.com/toddmotto/public-apis
- Open Sourcing your project: https://www.swiftbysundell.com/posts/open-sourcing-swift-code
- Realm Academy: https://academy.realm.io
- Swift by Sundell: https://www.swiftbysundell.com
- Krzysztof Zablocki: http://merowing.info
- Aleksandar Vacic: http://aplus.rs
- Martiancraft: http://martiancraft.com/blog.html
- Mike Ash (advanced topics): https://www.mikeash.com
- NSHipster: http://nshipster.com
- Russ Bishop: http://www.russbishop.net
- Cocoa with Love: https://www.cocoawithlove.com
- ObjC.io (Weely Swift Talks): https://www.objc.io
- JP Simmard: http://www.jpsim.com
- ++Blog: https://orionedwards.blogspot.co.nz
- Skilled.io: https://www.skilled.io
- NSScreencast: http://nsscreencast.com/episodes
- Association for Computing Machinery (ACM): http://www.acm.org
- IEEE: https://www.ieee.org/about/index.html
- IEEE computing society: https://www.computer.org
- Interpid Pursuits (Agency): https://jobs.lever.co/intrepid/7ab52936-a915-4554-9ee6-8e4ab9b8eac8
- Crew: https://crew.co