Course Outline
Day 1:
- OOPs Concepts
- Definition of Software
- Organized vs. Unorganized Environments
- Purpose of Software
- Overview of iOS
- Brief History of Apple
- Brief History of iOS
- Apple’s Unique Selling Proposition (USP)
- What Apple is Renowned For
- User Experience (UX) vs. User Interface (UI)
- Integrated Development Environment (IDE)
- Xcode Overview
- Xcode Installation
- Why Objective-C and Now Swift?
- Key Features of Swift
- Fundamentals of Swift
- Variables in Swift
- Constants in Swift
- Hello World in Swift
- Creating Labels via Code
- ImageViews in Swift
- ImageView Animations
- NSTimer Usage
- Responder Chain: touchBegan, touchMoved, etc., Methods
- UIApplication Main Delegate
- Application Life Cycle
- View Life Cycle
- Any Data Type in Swift
- Optionals in Swift
- Access Control: internal, public, private
- Initializers (init)
- Deinitializers (deinit)
- Swift Playgrounds
Application to Develop: Dots Game:
Day 2:
- UIView Animations
- Extensions in Swift
- UITableView Overview
- Custom Cells in Table Views
- Delegate and Data Source Methods in Delegates
- Table View Headers, Footers, Heights, etc.
- Brief Introduction to Collection Views
- Dequeuing Cells in Table Views
- Marks in Swift
- Optionals (continued)
- Property Observers: didSet and willSet
- Guard Statements
- 2x and 3x Image Concepts
- Navigating Between Views
- UINavigationController Overview
- Presenting View Controllers
- Storyboard Usage
- XIB Files
- Auto Layout Constraints
- Size Classes in Interface Builder
- Protocols: Required and Optional
- Memory Management Techniques
Application to Develop: Notes App: Adding, Deleting, and Updating Notes
Day 3:
- Gestures in iOS
- Closures in Swift
- Groups and Folders in Xcode
- Gesture Recognizers
- XML Parsing Techniques
- NSJSONSerialization Usage
- Converting Data to JSON Format
- File Manager Operations
- Tuples in Swift
- Enumerations (Enums)
- For-in Loops
- While Loops
- Webservices Integration
- URL Session Management
- URLRequest Creation
- Advantages of the Apple Ecosystem
- Printable Protocol - Description
- Hashable Protocol
- UIAlertView Usage
- UIActivityIndicatorView Implementation
Application to Develop: Fetching Data from a Server Using an Open API, Creating a Table View, and Populating Data with Details
Day 4:
- Lazy Loading of Images
- Lazy Properties in Swift
- NSOperationQueue Usage
- Grand Central Dispatch (GCD)
- Directory Concepts and App Security: NSSearchDomain
- Tab Bar Controller Implementation
- Localization Techniques for Applications
- Keychain Services for Secure Data Storage
- User Defaults Management
- Plist Files Usage
- File Manager Operations (continued)
- SQLite Database Integration
- Extensions in Swift (continued)
- Social Media Integration: Creating Shareable Content
- UITextField Implementation
- UITextView Usage
- UISegmentedControl Overview
- UISlider Operations
- UISwitch Control
- UIPageControl Usage
- UIStepper Implementation
- UIScrollView Management
- UIPickerView Operations
- UIActionSheet Display
- UIWebView Integration
- SearchBar Implementation
- New Targets: Apple Watch, Extensions, Keyboard, Today Widget, etc.
- NSNotifications in iOS
- Incorporating Third-Party Libraries
- Core Data Framework Overview
- Deployment and Distribution Processes for Apps
- Running Apps on Real Devices
Application to Develop: Fetching Data from a Server Using an Open API, Creating a Table View, Populating Data with Details, Adding a Search Bar, and Implementing Core Data
Day 5:
- Push Notifications: Silent and Push
- Localization Techniques (continued)
- Overview of Objective-C for Government
- Properties in Objective-C
- Categories in Objective-C
- Syntax of Functions in Objective-C
- .h and .m File Structure
- Property Attributes: readWrite and readOnly
- Property Attributes: strong, weak, and copy
- Property Attributes: atomic and non-atomic
- Process of Uploading an App to the App Store
Application Based on Your Own Idea
Requirements
For government employees, it is required to have at least one year of experience with a programming language.
Testimonials (4)
The way of transferring knowledge and the knowledge of the trainer.
Jakub Rekas - Bitcomp Sp. z o.o.
Course - Machine Learning on iOS
The instructor tried to make things dynamic, and he demonstrated dominance of the topic.
Libranner Santos
Course - iOS Automation Testing
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.
Abdullah Alaradi - Thiqah Business Services
Course - iPhone and iPad Development in Swift for iOS 8 and Xcode 6
Antonio gave is much background information, best practices and showed us useful tools to speed up our development process.