Course Outline
Introduction
Week 1: Advanced Swift, Kotlin, and JavaScript Concepts
- Swift (iOS)
- Advanced functions: Closures, value capturing, and higher-order functions.
- Protocol-oriented programming and generics.
- Memory management utilizing ARC (Automatic Reference Counting).
- Kotlin (Android)
- Extension functions and the Kotlin Standard Library.
- Coroutines for asynchronous programming.
- Sealed classes, enums, and sophisticated error handling.
- JavaScript (React Native)
- Advanced ES6+ features: Destructuring, async/await, and promises.
- Functional programming principles in JavaScript.
- Utilizing third-party libraries within React Native.
Week 2: Mobile App Architecture and Design Patterns
- MVVM (Model-View-ViewModel) for iOS and Android
- Understanding MVVM architecture in iOS (Swift) and Android (Kotlin).
- Implementing ViewModels and observing data changes using LiveData (Android) and Combine (iOS).
- Reactive programming with RxSwift and RxKotlin.
- Component-Based Architecture in React Native
- Mastering component lifecycles and hooks.
- Best practices for managing state and props at scale.
- Leveraging the React Context API for global state management.
Week 3: Advanced Networking Concepts
- Networking in iOS (Swift)
- Using URLSession for custom network requests.
- Advanced REST API interactions and error management.
- Parsing JSON with Codable.
- Best practices for secure API communication, including SSL pinning and OAuth.
- Networking in Android (Kotlin)
- Using Retrofit for API calls and response handling.
- Advanced API error handling and retry logic.
- JSON parsing using Gson or Moshi.
- Secure communication via HTTPS and OAuth authentication.
Week 4: Networking in React Native
- API Integration with Axios and Fetch
- Sophisticated API integration strategies using Axios and Fetch.
- Error handling tactics and retry mechanisms for network requests.
- Implementing authentication flows with JWT and OAuth.
- WebSockets and Real-Time Communication
- Introduction to WebSockets in a React Native context.
- Developing real-time chat or notification systems using WebSocket connections.
- Managing persistent connections and live data updates.
Week 5: Advanced Data Persistence Techniques
- Core Data and SQLite (iOS)
- Advanced Core Data relationships, fetching strategies, and queries.
- Direct use of SQLite in iOS apps and managing database connections.
- Optimizing efficient data handling.
- Room Persistence and SQLite (Android)
- Advanced Room database relationships and query optimization.
- Managing large datasets and enhancing database performance.
- Using ProGuard to protect database structures.
- Firebase for Cloud Storage (iOS and Android)
- Integrating Firebase for real-time database management.
- Best practices for synchronizing local and cloud data.
Week 6: Advanced State Management in React Native
- Redux for State Management
- Advanced Redux concepts: Middlewares, Thunks, and Sagas.
- Optimizing Redux for high performance and scalability.
- Recoil for State Management
- Introduction to Recoil as a flexible alternative to Redux.
- Managing large-scale state across complex component trees.
- Efficient state updates and atomic state management.
Week 7: Advanced Animations in iOS and Android
- iOS (Swift)
- Core Animation: Animating views, layers, and transitions.
- UIKit Dynamics: Creating physics-based animation effects.
- Custom transitions and animations between view controllers.
- Android (Kotlin)
- MotionLayout for complex animation sequences.
- TransitionManager and shared element transitions.
- Property animations for scaling, rotation, and alpha changes.
Week 8: Animations and UI/UX in React Native
- React Native Animations
- Utilizing the Animated API and Reanimated for complex motion.
- Implementing gestures and interactions with React Native Gesture Handler.
- Best practices for maintaining performance in animated interfaces.
- Creating Custom UI Components
- Building reusable and customizable components in React Native.
- Implementing responsive designs using media queries and flexbox.
Week 9: Integrating Native Modules and Device Features
- Accessing Native Device Features
- Advanced usage of camera, geolocation, Bluetooth, and sensors.
- Developing native modules in Swift and Kotlin for React Native integration.
- Integrating ARKit for augmented reality on iOS.
- Integrating CameraX and ARCore for augmented reality on Android.
- React Native Bridge and Native Modules
- Creating custom native modules to access platform-specific functionality.
- Building Java and Swift bridges for React Native applications.
- Best practices for managing native code within a cross-platform stack.
Week 10: Testing and Debugging Advanced Apps
- Testing in iOS (Swift)
- Writing unit tests with XCTest and UI tests for iOS.
- Profiling performance and detecting memory leaks using Xcode Instruments.
- Setting up continuous integration and testing workflows with Jenkins and CircleCI.
- Testing in Android (Kotlin)
- Advanced JUnit and Espresso testing strategies for Android.
- Identifying performance bottlenecks using Android Profiler.
- Leveraging Firebase Test Lab for automated multi-device testing.
- React Native Testing
- Unit testing with Jest and component testing with Enzyme.
- End-to-end testing using Detox and automated test configurations.
- Performance profiling with React Native Debugger and Flipper.
Week 11: App Deployment and Continuous Integration
- App Store (iOS) Deployment
- Preparing for submission: Managing App Store certificates, provisioning profiles, and TestFlight beta testing.
- Automating iOS deployment processes with Fastlane.
- Managing App Store Connect and configuring app review workflows.
- Google Play (Android) Deployment
- Preparing and signing APKs for Google Play submission.
- Automating Android deployment using Fastlane and Gradle.
- Utilizing Google Play Console for review processes and beta testing.
- Setting up CI/CD Pipelines
- Configuring Jenkins, GitHub Actions, or CircleCI for automated build and deployment.
- Implementing Fastlane for unified iOS and Android CI/CD workflows.
- Best practices for managing versioning, build numbers, and release channels.
Week 12: Capstone Project
- Final Project Development
- Design and develop a fully functional application incorporating the advanced features covered throughout the course.
- Implement custom UI/UX, advanced animations, state management, native module integration, and real-time API communication.
- Optimize the application for performance and deploy it to both the App Store and Google Play.
Summary and Next Steps
Requirements
- A strong command of core programming concepts, with specific proficiency in Swift, Kotlin, and JavaScript.
- Practical experience in developing basic applications for iOS, Android, or React Native.
- Familiarity with architectural patterns such as MVC or MVVM, along with experience managing basic application state.
Intended Audience
- Mobile developers.
- Software engineers and programmers.
Testimonials (3)
Everything is ok.
Adrian Rybka - SEOyon
Course - Flutter Development Bootcamp with Dart
Very usefull additional informations
Grzegorz - Comp S.A.
Course - BLoC Pattern
Developing the User Auth App and the kahoot activity (made myself sure that i'm absorbing the training lectures :) and its fun!)