The Ultimate List of Resources for iOS Animations
iOS Animations is definitely a hot topic. I have been into iOS development for 10+ years now and I have rarely seen any blog or post that serves as a definitive list of all resources for iOS animations. This blog post intends to compile all such resources online exhaustively.
Do share your inputs in the comments if you feel we have missed out on anything!
Table of Contents
- Open-Source Libraries
- WWDC
- UIKit Dynamics
- SceneKit
- ARKit
- SpriteKit
- General
Open-Source Libraries
There are a ton of useful open-source libraries for iOS animation. Here are a couple I like:
https://github.com/ameizi/awesome-ios-animation
https://github.com/onmyway133/fantastic-ios-animation
WWDC
https://developer.apple.com/videos/play/wwdc2017/230/ – Advanced Animations
https://developer.apple.com/videos/play/wwdc2018/803/ – Designing Fluid Interfaces Animations
UIKit Dynamics
https://medium.com/@raulriera/uikit-dynamics-in-the-real-world-ef0dfd924260 – Explains UISnapBehaviour with Tinder card view example
https://arvindravi.com/uikit-dynamics/ – Explains gravity with a ball falling to the ground and tinder’s snap behavior in detail
SceneKit
https://code.tutsplus.com/tutorials/an-introduction-to-scenekit-fundamentals–cms-23847 – Introduces the basics of creating a scene view, creating objects, placing materials and explaining the geometry involved.
https://code.tutsplus.com/tutorials/an-introduction-to-scenekit-user-interaction-animations-physics–cms-23877 – Provides high-level information about forming a scene, adding physics behavior like gravitation, collision detection, animation
ARKit
https://www.appcoda.com/arkit-introduction-scenekit/ – Explains the very basics of laying out the foundation for creating ARKit apps by creating an ARKit scene view and placing objects in it
https://www.appcoda.com/arkit-3d-object/ – Explains the rendering of 3D objects, different formats of supported files by SceneKit for rendering 3D objects and online resources where we can create or buy/ sell these 3D objects
https://www.appcoda.com/arkit-horizontal-plane/ – Explains the placement of horizontal surface/ planes in the real world and creates a sea and a fleet of ships on top of it
https://www.appcoda.com/arkit-physics-scenekit/ – Explains the physics behaviors and animations through the example of launching a rocket ship
SpriteKit
https://swift.unicorn.tv/articles/introduction-to-sprite-kit – Nice introduction and explanation about other entities of SpriteKit on a high level
https://www.appcoda.com/spritekit-introduction/ and https://www.appcoda.com/spritekit-action-sequence/ – Very basic tutorial about getting started with SpriteKit by placing a label and moving it across in an indefinite loop
https://blog.undabot.com/improve-ui-ux-with-gaming-animations-using-spritekit-87b0f2eec246 – Explains about using SpriteKit only for animations in apps on a high level with description of all entities
General
https://stackoverflow.com/questions/9248530/confusion-regarding-quartz2d-core-graphics-core-animation-core-images – A Nice explanation about core animations on a high level
https://medium.com/flawless-app-stories/delightful-animations-in-ios-7607e49945eb – Explanation/ Suggestion on how to add subtle animations a.k.a reacting to user actions
https://blog.usejournal.com/ios-animations-uiview-part-1-d94305bee2f5 – A very basic article explaining CGAffineTransforms
https://blog.usejournal.com/ios-animations-coreanimation-part-2-58bb4676710f – Explains the recreation of Flipboard’s Flip animation using CoreAnimation framework APIs
https://digitalleaves.com/blog/2017/07/whats-new-animations-swift-4/ – Explains the usage of UIViewProperty for animations that provide interactivity & scrubbing
https://blog.vishalvshekkar.com/swift-animator-46d6ef525267 – Explains the wrapper written to overcome code complexities
https://www.toptal.com/ios/rxswift-animations-ios – Explains about chaining UIView animations with RxSwift to avoid code cluttering. You can also find a nice in-depth introduction to RxSwift here.
https://www.toptal.com/ios/ios-animation-and-tuning-for-efficiency – A nice article explaining FPS, usage of instruments to measure FPS and other drawing/ animations stuff, how best to load images in a table view to avoid stutter (It is always better to draw images in a context since it offloads the image decompressing logic instead of directly assigning the image to the image view)