Curated list of articles, web-resources, tutorials, Stack Overflow
and Quora
Q&A, GitHub
code repositories and useful resources that may help you dig a little bit deeper into iOS. All the resources are split into sub-categories which simlifies navigation and management. Feel free to use and suggest something to learn (iOS related of course 😜).
You may see some non-directly related topics such as Computer Graphics
, Machine Learning
or Design Patterns
- these are actually related, in some ways, to iOS
development, but in a much broader and more specific way. With the addition of new materials, the structure of the document will be properly maintained meaning that it will become a reference book for learning. Happy evolving 🤓:octocat:
- About
- ARKit
- Vision Framework
- CoreML
- SceneKit
- SpriteKit
- AVFounation
- ReplayKit
- CoreLocation
- CocoaPods
- Clean Code
- App Distribution
- Frameworks Development
- Git
- Asynchronous Programming
- Architecture And Design Patterns
- Asset Catalog
- Playgrounds
- UIKit
- Swift
- HealthKit
- Computer Graphics
- iOS Development
- Machine Learning
- Design
- ARKit by example
- ARKit getting started
- ARKit with multiple users
- ARKit hide objects behind walls
- ARKit introduction
- How do you attach an object to your camera position with ARKit Swift?
- The Essential Guide To UX For AR
- How I'm Learning ARKit
- ARKit + Vision: An intriguing combination
- Using ARKit with Metal
- Bike ride with ARKit: How I built it
- iOS ARKit Tutorial: Drawing in the Air with Bare Fingers
- Augmented Reality With ARKit For IOS
- ARKit Super Mario Brothers
- ARKit Official Documentation
- Understanding augmented reality
- Building a Basic AR Experience
- Displaying an AR experience with Metal
- Lava Project
- Example App with horizontal planes and physics cubes
- Example App that allows to draw in 3D space
- Shooter App
- Fully interactable Tic Tac Toe App
- Line drawing App
- Example by Apple that demostrates how to place virtual objects in augmented reality
- Classic Tetris App
- Cubes in Space
- AR Trees
- Create an anchor on the QR marker plane
- This is an ARKit project that demonstrates drawing out a 3-dimensional box in the world, which can be rotated and resized from each of its faces
- Demo project demostrating how to build a AR measurment instrument
- Simple AR game made with ARKit and SpriteKit. Follow the tutorial at the Pusher blog
- MeasureThings
- Combines the high accuracy of AR with the scale of GPS data.
- ARPaint
- Learn how to place objects in the world such as a cube and cup using ARKit, we go over the basics of ARKit
- Swift ARKit (Augmented Reality) Tutorial
- iOS 11 Tutorial: Vision framework
- Core ML and Vision: Machine Learning in iOS 11 Tutorial
- Native Machine Learning and Machine Vision in iOS 11
- Swift World: What’s new in iOS 11 — Vision
- Using Vision Framework for Text Detection in iOS 11
- Getting Started With Vision Framework
- FACE AND FACE’S LANDMARKS DETECTION USING VISION FRAMEWORK IN IOS 11
- Face Cropper: Crop faces, inside of your image, with iOS 11 Vision api.
- Hello Vision: Vision framework example
- iOS11 demo application for flower classification
- iOS11 demo application for dominant objects detection
- Core ML and Vision: Machine Learning in iOS 11 Tutorial
- Native Machine Learning and Machine Vision in iOS 11
- IOS Introduction to Core ML: Building a Simple Image Recognition App
- Creating a Simple Game With Core ML in Swift 4
- A Beginner’s Guide to Core ML Tools: Converting a Caffe Model to Core ML Format
- Apple Machine Learning Journal
- iOS 11: Machine Learning for everyone
- Bringing Machine Learning to your iOS Apps 🤖📲
- Pros and cons of iOS machine learning APIs
- Physically Based Rendering Using the New iOS 10 SceneKit
- How to get the real position of a sub node in SceneKit after rotation?
- Transfer global to local node position in SceneKit
- SCNNode
- 3D with SceneKit
- The math behind transforms
- SceneKit game architecture
- How to rotate object in a scene with pan gesture - SceneKit
- Introduction To SceneKit – Part 1
- Introduction To SceneKit – Part 2
- Introduction To SceneKit – Part 3
- Custom SceneKit Geometry
- An Introduction to SceneKit: User Interaction, Animations & Physics
- Drag SceneKit Node Along X-Axis while maintaining velocity? Swift 3
- Scene Kit
- Rotate SCNCamera node looking at an object around an imaginary sphere
- Position a SceneKit object in front of SCNCamera's current orientation
- SceneKit Tutorial - From Zero to Hero Part I
- How to set up SceneKit collision detection
- [SCNNode Bounding size and Scaling: Changing Size Of Physics Boulding Volume] (https://stackoverflow.com/questions/35301207/scnnode-bounding-size-and-scaling)
- How to convert 2D point to 3D using SceneKit's unprojectPoint without having a depth value?
- SceneKit cube rotation with multiple UIPanGestureRecognizers
- Using SpriteKit to create animations in Swift
- SpriteKit and Inverse Kinematics with Swift
- SpriteKit with Swift: Orienting Sprites to a Location
- Drag and Drop Sprites
- An Introduction To Building A SpriteKit/UIKit Hybrid App
- How To Make A Game Like Color Switch with SpriteKit and Swift
- How To Make a Game Like Cut the Rope Using SpriteKit and Swift
- What’s the big deal with Apples Metal API?
- [Metal Tutorial with Swift 3 Part 1: Getting Started](https://www.raywenderlich.com/146414/metal-tutorial-swift-3-part-1- getting-started)
- Metal Tutorial with Swift 3 Part 2: Moving to 3D
- LiquidFun Tutorial with Metal and Swift – Part 1
- LiquidFun Tutorial with Metal and Swift – Part 2
- How do I pixelate a scene with SceneKit and Metal, in Swift?
- Instanced Rendering in Metal
- Custom Metal Shaders
- A few SCNTechnique examples
- Textures and Samplers in Metal
- iOS 9: An Introduction to ReplayKit
- Screen Recording Your App Using iOS ReplayKit for Bug Reporting
- ReplayKit
- How to record user videos using ReplayKit
- IOS 8 iPad App Crashes When UIActivityViewController Is Called
- Keeping
View Controllers
skinny and weakly-connected to models - Five sighns of code smell
- Managing View Controllers With Container View Controllers
- Avoiding Massive View Controllers by refactoring.
- An Introduction to Creating and Distributing Embedded Frameworks in iOS
- Creating iOS/OSX Frameworks: is it necessary to codesign them before distributing to other developers?
- A successful Git branching model
- Introducing GitFlow
- Git-flow cheatsheet
- Branching
- Git - the simple guide
- Introducing Protocol-Oriented Programming in Swift 3
- Introduction to Protocol Oriented Programming in Swift
- How Protocol Oriented Programming in Swift saved my day?
- Promises in Swift: Asynchronous Promises: Proof of Concept in Swift
- Promise Pattern on Swift with PromiseKit And why you should migrate your async calls to them
- Under The Hood Of Futures And Promises In Swift
- MVVM-C with Swift
- MVVM-C A simple way to navigate
- UIKonf 2016 – Day 1– Steve "Scotty" Scott – MVVM-C In Practice
- MVVM in Swift
- An Introduction to the MVVM Design Pattern
- Swift and ModelView-View-Model in Practive
- Sample application using MVVM in Swift
- MVVM in Swift
- Introduction to MVVM
- MVVM is Not Very Good
- Simplification Of IOS View Controllers: MVVM Or Presentation Controls?
- On MVVM, and Architecture Questions
- MVVM and Coordinator Patterns Together
- Lightweight iOS View Controllers
- Apple’s Take on App Architecture
- Fluent Pagination - no more jumpy scrolling
- AdvancedCollectionView
- iOS: UITableView controller
- Nestable
- Advanced UITableViews Made Simple: YLTableView
- Typed, yet Flexible Table View Controller
- Complex table view state changes made easy
- UIKit Dynamics in Swift 2.0
- Creating a Magnetic Effect Between UI Components
- Attachment Behaviour Tutorial in iOS8 with Swift
- How to make custom UIView animations with UISnapBehavior and UIDynamicItemBehavior
- UIKit Dynamics Guide
- Creating an Immersive User Experience with Haptic Feedback in iOS
- Haptic Feedback makes you vibrate!
- UIGestureRecognizer Tutorial: Getting Started
- Dragging Views with Gestures Tutorial in iOS8 with Swift
- Detecting user touch of UIView inside of UIScrollView
- How To Rotate a 3D Object Using Touches with OpenGL
- Event Handling Guide for UIKit Apps
- Introduction to User Notifications Framework in iOS 10
- Basic Push Notifications in iOS 10 and Swift
- Push Notifications Tutorial: Getting Started
- Local and Remote Notifications Overview
- What’s New In UIKit Animations In Swift 4
- Creating Great Animations On iOS
- Building a declarative animation framework in Swift — Part 1
- Building a declarative animation framework in Swift — Part 2
- Prototyping Animated Transitions in Swift
- Prototyping Animations in Swift #1
- Prototyping Animations in Swift #2
- Error Handling (Swift 3)
- Encoding and Decoding in Swift 4
- https://medium.com/compileswift/encoding-and-decoding-in-swift-4-f82114897862
- https://github.com/ole/whats-new-in-swift-4/blob/master/Whats-new-in-Swift-4.playground/Pages/Encoding%20and%20decoding.xcplaygroundpage/Contents.swift
- https://developer.apple.com/documentation/foundation/archives_and_serialization/encoding_and_decoding_custom_types
- http://benscheirman.com/2017/06/ultimate-guide-to-json-parsing-with-swift-4/
- Lazy Initialization with Swift
- Using lazy properties in Swift
- Swift Lazy Initialization with Closures
- Stored Properties In Swift Extensions
- Bindings and KVO alternatives
- BASIC THEORY OF PHYSICALLY-BASED RENDERING
- PHYSICALLY-BASED RENDERING, AND YOU CAN TOO!
- A trip through the Graphics Pipeline
- 14 must knows for an iOS developer
- On-Demand Resources in iOS Tutorial
- Learning Techniques for Programmers, by Programmers
- Projecting A Dynamic Decal onto a 3D Mesh
- Keras: The Python Deep Learning library
- SET-UP YOUR MAC FOR DEEP LEARNING WITH PYTHON, TENSORFLOW AND KERAS
- Calculus on Computational Graphs: Backpropagation
- Getting started with TensorFlow on iOS
- Apple’s deep learning frameworks: BNNS vs. Metal CNN
- Convolutional neural networks on the iPhone with VGGNet
- Getting Started with Deep MNIST and TensorFlow on iOS
- Use TensorFlow and BNNS to Add Machine Learning to your Mac or iOS App
- Develop Your First Neural Network in Python With Keras Step-By-Step
- Keras Tutorial: The Ultimate Beginner’s Guide to Deep Learning in Python
- Keras Deep Learning with Apple’s CoreMLTools on iOS 11
- Code exmaple uses TensorFlow to train a basic binary classifier on the Gender Recognition by Voice and Speech Analysis dataset
- "Hello world" in keras
- TensorFlow on iOS demo
- Anaconda - is the world’s most popular and trusted data science ecosystem.
- TensorFlow - An open-source software library for Machine Intelligence
- Caffe - Caffe is a deep learning framework made with expression, speed, and modularity in mind
- Keras - Deep Learning library for Python. Runs on TensorFlow, Theano, or CNTK.
- coremltools is a python package for creating, examining, and testing models in the .mlmodel format.
- 5 Genius Python Deep Learning Libraries