IOS Developer: Course Topics
IOS/XCODE Interface Builder
- How to set up a new Xcode project.
- How to use the Interface Builder to design and create the appearance of your app.
- How to find your way around Xcode.
- How to size and arrange various UI elements.
- How to add custom image assets to Xcode projects.
- How to create app icons and size them for all resolutions.
- How to run apps on the iOS Simulator.
- How to run apps on the physical device.
Introduction to IOS Development
- Learn to clone projects from GitHub.
- Link design with code via IBActions and IBOutlets.
- Learn to detect user interaction through UIButtons.
- Understand and use Swift variables, constants and collection types.
- Learn about printing and commenting in Swift.
- Learn about randomisation in swift and range operators.
- Learn to use Image Literals in code.
- Learn to use Swift Playgrounds.
- Understand the data type system and the primitive data types such as Strings, Ints and Doubles.
IOS Auto Layout and Setting Constraints
- How to add constraints and understand how auto layout works.
- How to Pin and Align UI elements.
- How to create containers to configure advanced layouts.
- How to debug auto layout errors.
- Understand the pre-requisites to automatic layout.
- How to use stack views to easily layout your UI.
Swift Programming
- The Basics
- Basic Operators
- Strings and Characters
- Collection Types
- Control Flow
- Functions
- Closures
- Enumerations
- Structures and Classes
- Properties
- Methods
- Subscripts
- Inheritance
- Initialization
- Deinitialization
- Optional Chaining
- Error Handling
- Concurrency
- Macros
- Type Casting
- Nested Types
- Extensions
- Protocols
- Generics
- Opaque and Boxed Types
- Automatic Reference Counting
- Memory Safety
- Access Control
- Advanced Operators
- Consuming API’s
Control Flow and OPTIONALS
- Understand the need and use cases of Swift Optionals.
- How to use IF-ELSE and Switch statements to control the flow of code execution.
- Swift Dictionaries.
- Learn to use the UIProgressView to create an animated progress bar.
- Figure out how to use the Timer object in Swift using documentation
IOS Design Patterns and Model-View-Controller (MVC)
- What is a design pattern and how is it used in programming.
- How to use the Model-View-Controller (MVC) pattern for app development.
- Learn about 2D arrays.
- Learn about Swift Structures and creating custom types.
- Learn about struct initialization.
- Learn about properties and methods.
- Difference between functions and methods.
- Learn about immutability and the mutating keyword.
Multi-Screen Applications
- Learn about Swift classes.
- Learn about Object-Oriented Programming and inheritance.
- Learn the difference between Structures and Classes and when to use each.
- Learn to use the UISlider.
- Creating a custom UIViewController class.
- Creating UI completely programmatically without Interface Builder.
- How to build a multi-screen app using segues.
- Advanced methods of handling Swift Optionals, including Optional Binding, Optional Chaining.
- Nil Coalescing Operator.
- Learn about Color Literals.
Networking, APIS and JSON Parsing
- How to use public APIs to get live data from the internet.
- Learn about the Decodable Protocol
- Learn parse JSON formatted data using the native JSONDecoder.
- Learn to create Dark Mode differentiated assets and use vector assets.
- Learn to use the UITextField to get keyboard inputs.
- Learn about Swift Protocols
- Learn about the Delegation design pattern using Protocols.
- Learn about Swift Extensions.
- Learn to use Swift computed properties.
- Understand the completion handler and the Swift Closure.
- Learn about Core Location to tap into the device GPS data
SWIFTUI, COMBINE & CATALYST
- Understand what is SwiftUI and how it's different from UIKit.
- Write declarative SwiftUI code.
- Learn to build user interfaces using SwiftUI.
- Learn to use the Preview pane and live Preview.
- Use the Object Library to turn UI elements into code.
- SwiftUI modifiers.
- SwiftUI Closure
- Difference between Imperative and Declarative code.
- Manage state using the @State property modifier.
- Learn about the @Published property modifier
- ObservableObject protocol.
- UIViewRepresentable protocol.
- Converts iOS apps into a Mac app by leveraging project Catalyst
- How to use basic bash commands in the Unix Terminal.
- How to manipulate files and folders without needing a GUI.
- How to download and install to your computer using CLI.
Git & GitHub
- Version control
- Git for version control and collaboration
- Git forking
- Git branching
- Git cloning
- Using GitHub as a remote repository
- Checkout and rolling back changes with git
- Using git and GitHub with Xcode
Cloud Based Backend
- How to integrate third party libraries in your app.
- How to store data in the cloud using Firebase.
- How to query the Firebase database.
- How to use Firebase for user authentication.
- How to work with a UITableView.
- How to use custom cells in a Table View.
- How to embed View Controllers
- How to create Segues for navigation.
- How to make custom .xib files to modify native design components.
- Using Grand Central Dispatch to queue asynchronous tasks
Persistent Storage Solutions
- How to use UserDefaults and plists
- How to use the Codable Protocol to save to file
- How to use Core Data for relational data management
- How to use Realm as a modern database solution
- IN-APP PURCHASES AND APPLE STOREKIT API
- How to integrate the Apple StoreKit API into your app
- How to charge once only and subscription payments for apps
- How to test using Sandbox accounts
CoreML and CreateML
- Introduction to machine learning
- CoreML - Using pre-trained machine learning models for image recognition
- Using IBM Watson Bluemix and Carthage for intelligent iOS apps
- Advanced CoreML
- CreateML - Creating your own image recognition model
- Advanced CreateML
- Create a Twitter sentiment analysis machine learning model using NLP tools from CreateML.
Augmented Realty on IOS and ARKIT
- Introduction to augmented reality, ARKit and SceneKit
- Creating 3D objects and text in AR
- Animations in AR
- Plane detection
- Measuring real world distances in AR
- Image recognition and tracking in AR
- Rendering 3D models on tracked images
- Playing videos in real world tracked images
Publishing to the APP Store
- Familiarising with App Store Connect
- How to write the app listing
- Apple TestFlight
- Submitting your app for review
Mobile APP Design
- Colour Theory
- Typography
- Mobile User Interface (UI) design fundamentals
- Mobile User Experience (UX) design fundamentals
- iOS vs. Android design differences
- How to use Sketch, Marvel to design your app mockup
- Design resources
Mobile App Marketing
- Idea validation and MVP
- App monetisation models
- Optimising the app store listing
- Growth hacking techniques for app downloads
- How to get press coverage for your app
- How to get your app featured on the app store
- App Store Optimisation (ASO)
- how to rank on the app store search engine
- How to use paid advertising to get more customers
- Improving your app store ratings and reviews
- App analytics
- Black hat vs. white hat techniques for app marketing.
- How to build an app showcase website.