Course Outline
Basic Programming Concepts
- OOPS principles
- Understanding software
- Organised versus unorganised structure in programming
- The importance of software
Why Apple and iOS?
- Why choose iOS?
- Apple's history
- The evolution of iOS
- Apple's unique selling proposition (USP)
- What Apple is renowned for
- UX versus UI
Development Environment/strong>
- Requirements for the development environment
- Xcode and the iOS SDK
- Apple Developer registration
- Common reasons why applications are rejected
- Human Interface Guidelines
Xcode iOS Projects/strong>
- Overview of Xcode
- Creating an iOS project
- Running on the simulator and real devices
Swift Fundamentals/strong>
- Why Objective-C and now Swift?
- Standout features of Swift
- Variables
- Constants
- Hello World in Swift
- Creating a UILabel programmatically
Image Animation and Loading/strong>
- UIImageView
- Basic animations for UIView and UIImageView
- Playground
- Lazy image loading
- Lazy properties
Swift Classes and Scenes/strong>
- Creating Swift classes
- Memory management
- Strong and weak references
- Constructor types and destructors in Swift
- Protocols, Hashable and Printable
- Inheritance
- Creating scenes
- Implementing View Controllers
- Playground
Life Cycle and Responder Chain/strong>
- View Life Cycle
- Application Life Cycle
- Responder Chain - methods such as touchBegan, touchMoved, etc.
- NSTimer
Adaptive Layout/strong>
- Storyboards versus XIB files
- Support for multiple devices
- Icon sizing and device orientation
- Building a user interface programmatically
- Outlets and actions
- Protocols - required and optional
- Memory management
Notifications and Localization/strong>
- Push notifications - silent and active
- Localization
Overview of Objective-C/strong>
- Properties
- Categories
- Function syntax
- Property attributes: readWrite and readOnly
Social Media Integration in iOS:
- Facebook integration
- Twitter integration
- Mail integration
- Integrating third-party apps
UI Components in iOS:
- UITextField
- UITextView
- UISegmentedControl
- UISlider
- UISwitch
- UIProgressBar
- UIPageControl
- UIStepper
- UIScrollView
- UIPickerView
- UIActionSheet
- UIWebView
- SearchBar
Additional Fundamental Components in iOS:
- Groups and folders
- Closures
- Tuples
- URL Session
- URLRequest
- UIAlertView
- UIActivityIndicatorView
- internal, public, private
- Guard
- Optionals
Threading in iOS:
- GCD
- NSOperationQueue
- Main thread and background threads
User Interaction/strong>
- Buttons and handlers
- Pan gesture recognition
- Tap gesture recognition
- Custom table views
- Introduction to collection views
Multi-Screen Applications/strong>
- Table navigation
- Tabbed applications
- Navigation controllers
- Presenting controllers and applying different animations during presentation and push transitions
Location Services/strong>
- Position and altitude
- Compass direction
Device Access and Storage/strong>
- File storage
- Music library access
- CoreData and SQLite in iOS
- Keychain
- User defaults
- PLists
- NSSearchDomain
- Directory concepts and app security within NSSearchDomain
Speech Framework/strong>
- Speech-to-text
- Text-to-speech
Multipeer Framework/strong>
- Sending data from one device to another
- Connecting multiple devices
Networking/strong>
- Network access
- Serialising and deserialising JSON
- REST web services
- Basics of XML parsing
Uploading Apps to the App Store/strong>
- App Store Connect (formerly iTunes Connect)
- Developer Portal - provisioning profiles
- Deployment and distribution
- Running apps on real devices
- Uploading apps to the App Store
Practical Applications/strong>
- Dots Game: https://itunes.apple.com/app/the-dots-free/id850315430
- Notes app: Notes App
- Contacts App
- Fetching data from a server via an open API, building a table view, populating data, displaying details, implementing a search bar, searching for content, and using CoreData to store data offline
- An application based on your own idea
Requirements
You 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.