A starter kit for those interested in iOS programming
- Arrays
- Dictionary Grouping
- Async
- Actor
- Enums
- Computed Properties
- DateFormatter
- Protocols
- Closures
- Completion Blocks
- Generics
- Extensions & Protocols
- Structs, Enums, and Classes
- Properties
- Optionals
- Numbers
- Tuples
- If vs Guard Clauses
- Error handling
- Structs-vs-Clases
- API Design
- Markdown
- Defer
- Singletons
- Automatic Reference Counting
- Access Control
- Private typed Class
- Initializers
- Map, filter, reduce
- Inheritance
- NotificationCenter
- Strings
- Idioms
- DynamicCallable
- Result
- SFSymbols
- Radio Button
- Nibs
- Animations
- UIViewController
- UISheetPresentationController
- UISheetPresentationController - Native
- DynamicFont
- Color
- CoreGraphics
- Networking
- Shadows
- UIStackView
- UILabel
- UIImageView
- UIImage
- UIImagePicker
- UITextField
- UIAlertController
- UIProgressView
- UISegmentedControl
- UIScrollView
- UINavigationController
- NSUserDefaults
- NSCoder
- UICollectionView
- UIPageViewController
- UITextView
- UIButton
- UISwitch
- UIModal
- UITapGestureRecognizer
- UIPanGestureRecognizer - Moving Block
- UIStatusBar
- UIRefreshControl
- Margins & Layout Guides
- Factory UI Methods
- WebViews
- UIView
- UIVisualEffectView
- UIPickerView
- Swipe Gestures
- UITabBarViewController
- Frame vs Bounds
- CoreData
- Xibs
- NSAttributedString
- ContextMenus
- Higher Order Functions
- PDFs
- UITableView
- UITableView Full Header Footer In Section
- UITableViewCell
- UITableViewCellsAndTypes
- Drag and Drop
- Views vs ViewControllers
- MVVM
- MVP
- Guiding Principles
- Datasource Pattern
- Object Oriented
- CHCR Content Hugging and Compression Resistance
- Responder Chain
- Performance
- DispatchGroup
- Cheat Sheat
- Basics
- How to set identifier on view
- Image label in a stackview
- Centering and alignment
- IntrinsicContentSize
- Breakable Constraints
- How to resize image
- Unit testing
- Misc
- Mocking
- Protocols and parameterization
- How to test notifications
- How to test for specific error
- How to test via callbacks
- How to test ViewControllers
- How to test Responder Chain
- How to load JSON test file
- XCUITest
- Core Animation
- ButtonSlider
- Basic Animation
- Chained Animations
- Basic Animation Curves
- How tos
- Interactive Animations
- UIViewControllerTransitioningDelegate
- Left/Right Swipe Add/Remove ViewController
- Left/Right Swipe with PageController
- How to load JSON from bundle
- How to app time inactivity
- Add SwiftUI Preview
- Generic How Tos
- Key-Value Observing (KVO) / Key-Value Coding (KVC)
- No storyboards
- Commonly used code
- Enable single touch in Xcode simulator for recording animated gifs
- Setup Charles proxy
- See device logs
- Delete provisioning files
- Hex RGB Conversion
- Refactor computed properties
- Hyperlink text opening a modal ViewController
- Loading Page
- Spacer Views
- LinkConditioner
- iOS11 version
- Pretty print json
- Get back on the main thread
- Create init constructor
- How to change Xcode simulator runtime
- Clear derived data
- How to view crash logs for devices in production
- Round corners on an UIImageView
- Style button with image and text
- Alamofire JSON
- How to adjust view when keyboard present
- How to turn off debug console
- How to dispatch main queue
- How to setup Vapor
- How to Rails iOS
- How to add identifer to tag or view
- How to work with pdfs
- How to add a circle to a UIView
- How to setup a feature flag via environment variable
- How to curl alamofire
- How to calculate height of label
- Add corner and shadow to view
- How to Xcode command line
- TPKeyboardAvoiding
- How to create AppIcon