Course Outline
Introduction
Week 1: Advanced Swift, Kotlin, and JavaScript Concepts
- Swift (iOS)
- Advanced functions: Closures, value capture, and higher-order functions
- Protocol-oriented programming and generics
- Memory management using ARC (Automatic Reference Counting)
- Kotlin (Android)
- Extension functions and the Kotlin Standard Library
- Coroutines for asynchronous programming
- Sealed classes, enums, and advanced error handling strategies
- JavaScript (React Native)
- Advanced ES6+ features: Destructuring, async/await, and promises
- Applying functional programming concepts in JavaScript
- Integrating 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 using LiveData (Android) and Combine (iOS)
- Reactive programming with RxSwift and RxKotlin
- Component-Based Architecture in React Native
- Understanding component lifecycles and hooks
- Best practices for managing state and props at scale
- Utilizing the React Context API for global state management
Week 3: Advanced Networking Concepts
- Networking in iOS (Swift)
- Executing custom network requests with URLSession
- Advanced REST API calls and robust error handling
- Working with Codable and JSON parsing
- Best practices for secure API communication (SSL pinning, OAuth)
- Networking in Android (Kotlin)
- Using Retrofit for API calls and response handling
- Advanced API error handling and retry mechanisms
- Utilizing Gson or Moshi for JSON parsing
- Securing communication with HTTPS and OAuth authentication
Week 4: Networking in React Native
- API Integration with Axios and Fetch
- Advanced API integration techniques using Axios and Fetch
- Implementing error handling strategies and retries for network requests
- Managing authentication flows (JWT, OAuth)
- WebSockets and Real-Time Communication
- Introduction to WebSockets within React Native
- Building real-time chat or notification features 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 complex queries
- Managing large datasets and optimizing database performance
- Securing database structures using ProGuard
- 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 performance and scalability
- Recoil for State Management
- Introduction to Recoil: A flexible alternative to Redux
- Handling large-scale state management across components
- 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 animations
- Custom transitions and animations between view controllers
- Android (Kotlin)
- Using MotionLayout to create complex animations
- TransitionManager and shared element transitions
- Property animations for view 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 animations
- Implementing gestures and interactions via React Native Gesture Handler
- Best practices for maintaining performant animations in React Native
- 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
- Creating 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
- Building custom native modules to access platform-specific functionality
- Creating Java and Swift bridges for React Native apps
- Best practices for managing native code in a cross-platform environment
Week 10: Testing and Debugging Advanced Apps
- Testing in iOS (Swift)
- Writing unit tests with XCTest and UI tests for iOS
- Using Xcode Instruments for performance profiling and memory leak detection
- Continuous integration and testing workflows with Jenkins and CircleCI
- Testing in Android (Kotlin)
- Advanced JUnit and Espresso testing for Android apps
- Profiling performance and identifying bottlenecks using Android Profiler
- Using Firebase Test Lab for automated testing across multiple devices
- React Native Testing
- Unit testing with Jest and component testing with Enzyme
- End-to-end testing using Detox and automated test setups
- Performance profiling using React Native Debugger and Flipper
Week 11: App Deployment and Continuous Integration
- App Store (iOS) Deployment
- Preparing apps for submission: App Store certificates, provisioning profiles, and TestFlight beta testing
- Automating iOS app deployment using Fastlane
- Managing App Store Connect and setting up app review processes
- Google Play (Android) Deployment
- Preparing and signing the APK for Google Play submission
- Automating Android app deployment with Fastlane and Gradle
- Using Google Play Console for app review and beta testing
- Setting up CI/CD Pipelines
- Configuring Jenkins, GitHub Actions, or CircleCI for automated build and deployment pipelines
- Using Fastlane for both iOS and Android CI/CD workflows
- Best practices for handling versioning, build numbers, and release channels
Week 12: Capstone Project
- Final Project Development
- Design and develop a fully functional app incorporating advanced features learned throughout the course.
- Implement custom UI/UX, advanced animations, state management, native module integration, and real-time API communication.
- Optimize the app for performance and deploy it to the App Store and Google Play.
Summary and Next Steps
Requirements
- A solid grasp of programming concepts, particularly in Swift, Kotlin, and JavaScript.
- Prior experience in building foundational iOS, Android, or React Native applications.
- Familiarity with design patterns such as MVC or MVVM, along with experience in basic state management.
Audience
- Mobile developers.
- 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!)