This is a list of Swift and general programming/design resources that I have collected since 2016. It started as bare HTML, exported directly from my browser, and I’m working steadily to make it more usable and easier to navigate via Markdown.
General
Apple Docs
- The Swift Programming Language (Swift 4.1): The Basics
- iOS Human Interface Guidelines
- About the iOS Technologies
- API Reference – Apple Developer Documentation
- Guides and Sample Code
iOS-Dedicated Websites
- NSHipster
- Ray Wenderlich Tutorials for iOS Developers
- Natasha The Robot
- Use Your Loaf
- Study Swift
- Clean Swifter
Learning How To Learn
- The Learning Toolbox - Cornell Notes
- String Optionals & Notetaking — Margaret E. Ikeda
- Janki
- Unconventional way of learning a new programming language
Video Talks & Tutorials
- objc.io – Swift Talk
- Stanford - Developing iOS 9 Apps with Swift - 1. Course Overview and iOS9 introduction - YouTube
- Last Year’s RWDevCon 2016 Vault Now Free!
- Videos from SwiftConf
- GDC Vault – Talks & Slides About Game Development
- try! Swift Conference Videos
Comparisons
In-person Tech Resources
Design, Development & Engineering
Architecture & Technical Design
- Stanford - Developing iOS 9 Apps with Swift - 2. Applying MVC - YouTube
- Trygve/MVC
- Origins of Model View Controller – Duncan maina – Medium
- Looking at Model-View-Controller in Cocoa
- iOS Architecture: A State Container based approach – Jobandtalent Engineering
- Lighter View Controllers · objc.io
- The worst possible application
Programming Paradigms
- Introducing Protocol-Oriented Programming in Swift 2
- Swift Functional Programming Tutorial
- Functional Swift Conference 2017
DSA
- Harvard’s CS50 Computer Science Fundamentals
- raywenderlich/swift-algorithm-club: Algorithms and data structures in Swift, with explanations!
- Code Briefing: A gentle introduction to how the Stack data structure works
- Coderbyte – The #1 Website for Coding Challenges
- Ninety-Nine Swift Problems
- Algorithms Doc on Netflix – The Secret Rules of Modern Living
App Development Process
- What You Should Know About The App Design Process
- Developing an iOS app on Linux in 2017
- Update Apps for iPhone X - iOS - Apple Developer
- Cloud9 - Your development environment, in the cloud
- BuddyBuild for Mobile Continuous Integration & Deployment
Documenting Code
Testing
- What exactly is a “unit” in unit testing?
- Introduction to Unit Tests
- Getting Started With UI Tests
- Four simple rules for architecting iOS unit tests
UX & UI
- The Ultimate UX Design of: the Sign-Up Form - Designmodo
- 5 UX Tips for Designing More Usable Registration Forms - Designmodo
- ios - Text View Placeholder Swift - Stack Overflow
- ios - Drop-down style UIPickerView? - Stack Overflow
- Swift iOS Tutorial: UISearchBar and UISearchBarDelegate
- SCLAlertView on CocoaPods.org
- Authenticate Using Google Sign-In on iOS – Firebase
- The Design of Everyday Things: Revised and Expanded Edition: Don Norman: 9780465050659: Amazon.com: Books
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) (Voices That Matter): Steve Krug: 9780321965516: Amazon.com: Books
Visual Design
- Styling with Swift – MonitiseMEA – Medium
- UI Color - Convert HEX & RGB colors to UIColor
- icons8.com
- Common Mistakes With Adding Custom Fonts to Your iOS App
- App Icon Generator for IOS and Android
Working With Swift
Classes
Strings
Closures
- Closures in Swift
- Escaping and Nonescaping Closures in Swift 3 - Swift Unboxed
- Swift Guide to Map Filter Reduce
Dictionaries, Arrays & Sets
Regular Expressions
iOS Particulars
JSON & Networking
- SwiftyJSON/SwiftyJSON: The better way to deal with JSON data in Swift
- NSURLSession Tutorial: Getting Started
- openid/AppAuth-iOS: AppAuth is an OAuth and OpenID Connect client for iOS and macOS.
- toddmotto/public-apis: A collective list of public JSON APIs for use in web development.
Threading
Error Handling & Debugging
- Magical Error Handling in Swift
- Use the debug area to control and inspect your running app - Xcode Help
Notifications
Storage & State
- Query Language Used by CoreData
- NSPredicate Cheatsheet
- C4Q/AC3.2-LocalStorage
- Learn iOS 10, Swift 3 Programming - Creating a CoreData Entity : swift
- Swift: UserDefaults Protocol – Swift Programming – Medium
- Upgrade your TableViews with Loading State in Swift
Navigation & Identifiers
- Using Swift Enumerations Makes Segues Safer
- Nicer Reuse Identifiers with Protocols in Swift – Bleeding Edge – Medium
ViewControllers
Autolayout
- Auto Layout Tutorial in iOS 9 Part 2: Constraints
- Auto Layout Tutorial in iOS 9 Part 1: Getting Started
Views & Animation
- IBInspectable / IBDesignable - NSHipster
- Load a UIView from nib in Swift - Stack Overflow
- A Beginner’s Guide to Animated Custom Segues in iOS 8
- https://raptureinvenice.com/ios-brownbag-view-vs-layers-including-clock-demo/
Paths & Layers
- Thinking like a Bézier path
- Core Graphics, Part 4: A Path! A Path!
- Bezier paths in practice (I): From basic shapes to custom designable controls - Digital Leaves
Video
- About AVFoundation
- tapharmonic/Learning-AV-Foundation: Sample code for Bob McCune’s Learning AV Foundation book.
Artificial Intelligence
Tools
Playgrounds
Git
- Keeping your forked repo synced with the upstream source · 2buntu
- Cleanly Handling a Fork on GitHub - Tab Completion
- Great for new contributors