Course Outline
Day 1:
- OOPS concepts
- Understanding software
- Organized vs. unorganized spaces
- The importance of software
- The rationale for iOS
- History of Apple
- History of iOS
- Apple’s Unique Selling Proposition (USP)
- What Apple is renowned for
- UX vs. UI
- What is an IDE?
- Introduction to Xcode
- Installing Xcode
- Why Objective C and now why Swift?
- Key features of Swift
- Swift Basics
- Variables
- Constants
- Hello World in Swift
- Creating Labels via code
- ImageView
- ImageView animations
- NSTimer
- Responder Chain - touchBegan, touchMoved, and other methods
- UIApplication main delegate
- Application Lifecycle
- View Lifecycle
- Any type
- Optionals
- Access control: internal, public, private
- init
- deinit
- Using Playgrounds
Application Exercise: Dots Game: https://apps.apple.com/app/the-dots-free/id850315430
Day 2:
- UIView animations
- Extensions
- UITableView
- Custom cells in UITableView
- Delegate and Data Source methods
- Table View headers, footers, heights, etc.
- Brief overview of UICollectionView
- Dequeueing in table views
- Maps
- Optionals (review)
- didSet
- willSet
- Guard statements
- 2x and 3x image scaling concepts
- Navigating between views
- UINavigationController
- Presenting a view controller
- Storyboards
- Xibs
- Auto Layout constraints
- Size classes
- Protocols - Required and optional
- Memory management
Application Exercise: Notes App: Adding, deleting, and updating notes
Day 3:
- Gestures
- Closures
- Groups and folders
- Gesture recognizers
- XML Parsing
- NSJSONSerialization
- Converting Data to JSON
- FileManager
- Tuples
- Enumerations
- For-in loops
- While loops
- Web services
- URLSession
- URLRequest
- Why Apple's ecosystem is superior
- Printable - description
- Hashable
- UIAlertView
- UIActivityIndicatorView
Application Exercise: Fetching data from an open API server, creating a table view, populating it with data, and displaying details.
Day 4:
- Lazy loading of images
- Lazy properties
- NSOperationQueue
- GCD (Grand Central Dispatch)
- Directory concepts and app security (NSSearchDomain)
- UITabBarController
- Localization
- Keychain
- User Defaults
- PList files
- FileManager (review)
- SQLite
- Extensions (review)
- Social media integration: Creating shareable content
- UITextField
- UITextView
- UISegmentedControl
- UISlider
- UISwitch
- UIProgressView
- UIPageControl
- UIStepper
- UIScrollView
- UIPickerView
- UIActionSheet
- UIWebView
- SearchBar
- New targets: Apple Watch, Extensions, Keyboard, Today Widget, etc.
- NSNotifications in iOS
- Incorporating third-party libraries
- Core Data
- Deployment and distribution
- Running the app on real devices
Application Exercise: Fetching data from an open API server, creating a table view, populating it with data, displaying details, implementing a search bar to search for content, and using Core Data.
Day 5:
- Push Notifications - Silent and Push
- Localization (review)
- Overview of Objective C
- Properties in Objective C
- Categories
- Function syntax
- .h and .m files
- Property attributes: readWrite and readOnly
- Property attributes: strong, weak, and copy
- Property attributes: atomic and non-atomic
- Uploading the app to the App Store
Application Exercise: Developing an application based on your own idea.
Requirements
You must have prior experience with at least one programming language.
Testimonials (1)
He's an experienced trainer with a real life experience in the topic he was teaching. That led the course to cover the most important topics which interests any developer working in the field, and small details would be easily overseen if he was not working in this platform. Moreover, he was giving the course using the latest versions of is and Swift (10 \ 3) and that is a huge advantage to be adapting such new technology in short time.