Course Outline
Day 1:
- Object-Oriented Programming (OOPS) concepts
- What is software?
- Organised vs unorganised rooms
- Why software?
- Why iOS?
- Apple history
- iOS history
- Apple's unique selling proposition (USP)
- What Apple is known for
- UX vs UI
- What is an IDE?
- Xcode
- Xcode installation
- Why Objective-C and now why Swift?
- Wow factors in 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
- Optionals
- internal, public, private
- init
- deinit
- Playground
Practical Application: 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
- Headers, footers, row heights, and more in UITableView
- Brief overview of UICollectionView
- Dequeuing in UITableView
- Mark
- Optionals
- didSet
- willSet
- Guard
- 2x and 3x concepts
- Navigating between views
- UINavigationController
- Presenting a controller
- Storyboards
- Xibs
- Constraints
- Size classes
- Protocols - required and optional
- Memory management
Practical Application: Notes App: Adding, deleting, and updating notes
Day 3:
- Gestures
- Closures
- Groups and folders
- Gesture recognisers
- XML parsing
- NSJSONSerialization
- Converting data to JSON
- FileManager
- Tuples
- Enums
- For-in loops
- While loops
- Web services
- URLSession
- URLRequest
- Why Apple's ecosystem is superior
- Printable - description
- Hashable
- UIAlertView
- UIActivityIndicatorView
Practical Application: Fetching data from an open API server, creating a table view, populating data, and displaying details.
Day 4:
- Lazy loading of images
- Lazy properties
- NSOperationQueue
- GCD (Grand Central Dispatch)
- Directory concepts and app security with NSSearchDomain
- TabBarController
- Localisation
- Keychain
- User Defaults
- PLists
- FileManager
- SQLite
- Extensions
- 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, etc.
- NSNotifications in iOS
- Adding third-party libraries
- Core Data
- Deployment and distribution
- Running apps on physical devices
Practical Application: Fetching data from an open API server, creating a table view, populating data, displaying details, incorporating a search bar to search for content, and implementing Core Data.
Day 5:
- Push notifications - silent and push
- Localisation
- Overview of Objective-C
- Properties
- 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 apps to the App Store
Final Project: Develop an application based on your own idea
Requirements
Participants must have prior experience with at least one programming language.
Testimonials (2)
The way of transferring knowledge and the knowledge of the trainer.
Jakub Rekas - Bitcomp Sp. z o.o.
Course - Machine Learning on iOS
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.