Course Outline
Architecture and Advanced Components
- Architectural patterns: MVVM (practical introduction)
- Advanced UI state management with @State and @ObservedObject
- Navigation using UINavigationController and Coordinators
- Hands-on: Refactoring project architecture
Concurrency and Asynchronous Operations
- Grand Central Dispatch (GCD) for asynchronous tasks
- Utilizing async/await in Swift
- Distinction between main thread and background threads
- Hands-on: Implementing asynchronous operations in the project
Advanced Data Persistence
- Core Data for local persistence (basic CRUD operations)
- UserDefaults for simple data storage
- Hands-on: Applying data persistence in the project
Testing and Code Quality
- Unit testing with XCTest
- UI testing with XCUITest
- Static code analysis tools (such as SwiftLint)
- Hands-on: Implementing basic tests in the project
Integration and Optimization
- Consuming RESTful APIs via URLSession and Codable
- Working with JSON data
- Fundamentals of UI and battery performance optimization
- Hands-on: API integration and performance tuning
Summary and Next Steps
Requirements
- Strong foundation in basic iOS development (including UIKit, Storyboards, navigation, and Swift)
- Practical experience with Xcode
- Familiarity with object-oriented programming principles
Target Audience
- Seasoned iOS developers
- Mobile developers seeking to master advanced techniques
- Software engineers focused on building scalable, high-performance iOS applications
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.