Highlights
- Understand Swift and its role in iOS and OS X software development
- Create, compile and execute Swift programs using Xcode
- Verify Swift code in Playgrounds
- Organise code with classes, structures and enumerations
- Develop Mac, iPhone and iPad applications that use functions
- Implement flexible object-oriented designs
- Gain experience using Swift's data types and standard library.
- Become familiar with the advanced features of the Swift language
- Speed Up your iOS App Development With Swift
Here is a short video of a session on sets in Swift that would be taught during JBI Training's 4 day Swift training course.
Course Details
Basic Swift Concepts
Module 1: Introduction to Swift Fundamentals
- Exploring Why Swift Differs from Other Languages
Module 2: Getting Started with Swift Basics
- Introduction to Playgrounds and Command Line: The Essential Tools
- Constants: Their Preference over Variables and Data Passing in Swift
- Understanding Strings in Swift, Including Swift 5 Strings
- Swift's Strong Data Typing and its Significance
Module 3: Working with Constants and Data Types
- Using Constant Arrays: Immutable Data Collections and Functions
- Leveraging Constant Sets to Remove Duplicates from Datasets
- Introducing Tuples: Ad-Hoc Data Types
- Understanding Basic Operators for Constants
- Understanding Program Flow and Control in Swift
Module 4: Advanced Data Handling and Operations
- Intervals, Ranges, and Strides: Building and Comparing without Iteration
- Exploring Optionals: Swift's Approach to Basic Error Handling
- Overview of Function Signatures and Functional Concepts
- Utilizing Closures: Anonymous Functions and Passing Functionality
- Creating Basic Custom Types with Enumerations
- Utilizing Constant Dictionaries: Working with Key-Value Datasets
Intermediate Swift Concepts and Functional Programming
Module 5: Functional Programming and Intermediate Concepts
- Pattern Matching: Filtering Data and Enumerations using Switch
- Introduction to Functions: Passing Data and Differences from Closures
- Implementing Sorted, Map, Filter, Reduce, Flatmap, and Zip in Swift
- Variables in Swift: Implementation and Differences from Other Languages
- Variable Operators: Applying Operators to Variables, Not Constants
- Expanding Variable Arrays: Beyond the Realm of Constant Arrays
- Enhancements in Variable Dictionaries and Sets
- Loop Structures for Variables: Enhancing Control
Module 6: Advanced Data Types and Memory Management
- Understanding Structures: Swift's Core Type and Its Importance
- Basics of Classes and Objects: Enabling iOS and MacOS Interfaces
- Memory Management with Automatic Reference Counting (ARC)
- Delving Deeper into Enums, Structures, Classes, and Initializers
- Implementing the Observer Design Pattern in Swift
- Applying Composition Over Inheritance: iOS and MacOS Design Pattern
- Standard Built-In Functions: Leveraging Swift's Functionality
Advanced Concepts, Protocol-Oriented Programming (POP), and More
Module 7: More Closures
- Exploring Advanced Closure Concepts
- Utilizing Key Paths within Closures
- Leveraging Trailing Closures for Concise Syntax
- Capturing Values in Closures
- Understanding Closures as Reference Types
- Differentiating Between Escaping and Non-Escaping Closures
- Using Autoclosures for Deferred Execution
Module 8: Property Wrappers
- Introduction to @propertyWrapper
- Understanding the wrappedValue Property
- Setting Initial Values with Property Wrappers
- Practical Application of Property Wrappers
- Exploring the projectedValue Property for Extra Functionality
Module 9: Advanced Concepts and Protocol-Oriented Programming
- Extending Types with Extensions: Enumerations, Structures, and Classes
- Implementing Protocols: Facilitating Interface Design Patterns
- Exploring Swift's Protocol-Oriented Programming Approach
- Understanding Standard Library Protocols
Module 10: Generics, Inheritance, and Swift's Unique Features
- Leveraging Generic Functions: Reducing Overloading in Algorithms
- Basics of Class Inheritance as Implemented in Swift, Especially for iOS
- Deepening the Understanding of Functions: More Advanced Features
- Implementing Currying and Partial Calls: Functional Design Patterns
Module 11: Multi-Threading, Persistence, and Advanced Concepts
- Casting and Inspecting Types: Evaluating Variables and Constants
- Implementing Multi-Threading with Grand Central Dispatch (GCD)
- Handling JSON with Swift's Codable Protocol
- Exploring Access Control Levels for Protection
- How to Handle Errors and Exceptions in Swift
Module 12: More on Sets
- Understanding Sets in Swift
- Working with Read-Only Sets
- Leveraging Variable Sets
- Combining Sets: Union and Intersection
- Finding Common Values in Two Sets
- Calculating Symmetric Differences of Sets
- Subtracting Elements from Sets
Module 13: Interface with Objective-C
- Establishing Communication with Objective-C
- Creating an Objective-C Class and Bridging Header
- Interacting with Foundation Objects
- Utilizing C Libraries within Swift
Module 14: Saving Data
- Introduction to Data Persistence
- Using the Codable Protocol for Serialization
- Encoding and Decoding Data with Encoders and Decoders
- Writing Data to Files and Reading Data from Files
- Storing and Retrieving Arrays using Codable
Who should attend
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away." Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices.The Instructor handled this particularly well - very impressive” Brian F, Team Lead, RBS, Data Analyst, 20 April 2022