20
Lessons
40 h
Duration
English
Language
Share This Class:
OBJECTIVEs:
- The objective of this intermediate iOS development course is to deepen participants' understanding of advanced Swift programming, sophisticated UI design, efficient data management, and robust app testing and deployment techniques.
- Over the 40-hour program, students will gain hands-on experience with advanced concepts such as Swift concurrency, custom transitions, Core Data performance optimization, and automated UI testing.
- By the end of the course, participants will be proficient in creating complex, high-performing iOS applications.
- This course benefits learners by enhancing their problem-solving skills, improving their ability to build scalable and maintainable apps, and preparing them for more challenging projects and career advancement in the iOS development field.
Course features:
- Practical hands on
- Lab sessions
- Training by experienced faculty
PRE-REQUISITES:
- Completion of a basic iOS development course or equivalent experience.
- Comfortable with Swift syntax and basic concepts, including control flow, functions, and collections.
- Familiarity with the Xcode interface, creating and managing projects, and using Interface Builder.
- Experience in developing at least one simple iOS application, including basic UI design and implementation.
Learning Path
Week 1: Advanced Swift and Architecture:
- Advanced Swift Techniques
– Higher-order functions (map, filter, reduce)
– Closures and capturing values
– Generics and associated types
- Automatic Reference Counting (ARC)
– Strong, weak, and unowned references
– Retain cycles and memory leaks
– Debugging memory issues
- Introduction to Swift’s concurrency model
– Async/await syntax
– Structured concurrency
– Task groups and actors
- Error handling techniques
– Throwing and handling errors
– Custom error types
– Result type and async error handling
- MVC vs. MVVM
– Introduction to Model-View-ViewModel (MVVM)
– Benefits and use cases
– Implementing MVVM in iOS
Week 2: Advanced UI Design and Animation:
- Constraints and Priorities
– Intrinsic content size
– Stack views
– Programmatically creating and managing constraints
- UIView animations
– Spring and keyframe animations
– Custom view controller transitions
– Interactive transitions
- Dynamic data sources
– Diffable data sources
– Compositional layouts
– Custom cells and layouts
- Advanced gesture recognizers
– Custom gestures
– Gesture conflicts and dependencies
– Combining gestures with animations
- Creating reusable components
– Custom UI components
– Implementing design patterns for reusable UI
– Managing complex view hierarchies
Week 3: Data Management and Networking:
- Core Data Performance
– Batch updates and deletes
– Using NSFetchedResultsController
– Versioning and migrations
- Advanced Networking Techniques
– RESTful APIs and JSON parsing
– Using third-party libraries (e.g., Alamofire)
– Handling network errors and retries
- Introduction to WebSockets
– Setting up WebSocket connections
– Handling real-time data
– Using libraries for WebSocket communication
- Implementing offline storage
– Syncing local and remote data
– Conflict resolution strategies
– Using third-party libraries for data syncing
- Data Protection and Encryption
– Using Keychain Services
– Encrypting sensitive data
– Implementing biometric authentication (Face ID, Touch ID)
Week 4: Testing, Debugging, and Deployment:
- Unit Testing with XCTest
– Writing effective unit tests
– Mocking and dependency injection
– Code coverage and test-driven development (TDD)
- Automated UI Testing
– Using XCUITest framework
– Writing and running UI tests
– Continuous integration with CI tools (e.g., Jenkins, GitHub Actions)
- Profiling and Optimizing Performance
– Using Instruments for performance analysis
– Memory and CPU optimization
– Reducing app launch time and improving responsiveness
- Advanced Debugging Techniques
– Debugging with Xcode
– Symbolication and crash logs
– Handling common issues and bugs
- Preparing for App Store submission
– App Store Connect advanced features
– Beta testing with TestFlight
– App versioning and updates