Course Outline
Day 1:
- Concepts of Object-Oriented Programming (OOPS)
- Definition of Software
- Organized vs. Unorganized Structures
- The Importance of Software
- Rationale for iOS
- History of Apple
- History of iOS
- Apple’s Unique Selling Proposition (USP)
- What Apple is Known For
- User Experience (UX) vs. User Interface (UI)
- Introduction to IDEs
- Overview of Xcode
- Xcode Installation
- The Shift from Objective-C to Swift
- Standout Features of Swift
- Swift Fundamentals
- Variables
- Constants
- Creating a 'Hello World' App in Swift
- Creating Labels via Code
- ImageView
- Animating Images
- Using NSTimer
- The Responder Chain: touchBegan, touchMoved, and Other Methods
- UIApplication Main Delegate
- Application Life Cycle
- View Life Cycle
- Usage of Any
- Understanding Optionals
- Access Control: internal, public, private
- Initializers (init)
- Deinitializers (deinit)
- Using Playgrounds
Practical Exercise: Dots Game: https://apps.apple.com/app/the-dots-free/id850315430
Day 2:
- UIView Animations
- Extensions
- UITableView
- Creating Custom Cells in Table Views
- Delegate and Data Source Methods
- Configuring Header, Footer, and Row Height in Table Views
- Overview of UICollectionView
- Cell Reuse in Table Views
- Using Marks
- Working with Optionals
- didSet
- willSet
- Using Guard
- Concepts of 2x and 3x Image Resolutions
- Navigating Between Views
- UINavigationController
- Presenting Controllers
- Utilizing Storyboards
- Utilizing Xibs
- Auto Layout Constraints
- Size Classes
- Protocols: Required vs. Optional
- Memory Management
Practical Exercise: Notes App: Implementing functionality to add, delete, and update notes.
Day 3:
- User Gestures
- Closures
- Organizing Files into Groups and Folders
- Gesture Recognizers
- XML Parsing
- NSJSONSerialization
- Converting Data to JSON
- FileManager
- Tuples
- Enumerations (Enum)
- For-in Loops
- While Loops
- Working with Web Services
- URLSession
- URLRequest
- Advantages of the Apple Ecosystem
- Conformance to Printable (description)
- Conformance to Hashable
- UIAlertView
- UIActivityIndicatorView
Practical Exercise: API Integration: Retrieve data from an open API, populate a table view with the data, and display detailed information.
Day 4:
- Lazy Loading of Images
- Lazy Properties
- NSOperationQueue
- Grand Central Dispatch (GCD)
- Directory Concepts and App Security: NSSearchPathDomainMask
- UITabBarController
- Localization
- 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
- UISearchBar
- New Targets: Apple Watch, Extensions, Keyboard, Today Extension, etc.
- Notifications in iOS
- Integrating Third-Party Libraries
- Core Data
- Deployment and Distribution
- Running Applications on Real Devices
Practical Exercise: Advanced API & Core Data: Retrieve data from an open API, populate a table view, display details, implement a search bar for filtering results, and utilize Core Data.
Day 5:
- Push Notifications: Silent and Push
- Localization
- Overview of Objective-C
- Properties
- Categories
- Function Syntax in Objective-C
- .h and .m Files
- Property Attributes: readWrite and readOnly
- Property Attributes: strong, weak, and copy
- Property Attributes: atomic and non-atomic
- Uploading Applications to the App Store
Final Project: Create an application based on your own idea.
Requirements
Participants must possess 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.