Course Outline

Introduction

Week 1: Advanced Swift, Kotlin, and JavaScript Concepts

  • Swift (iOS)
    • Advanced functions: Closures, capturing values, higher-order functions
    • Protocol-oriented programming and generics
    • Memory management with ARC (Automatic Reference Counting)
  • Kotlin (Android)
    • Extension functions and Kotlin Standard Library
    • Coroutines for asynchronous programming
    • Sealed classes, enums, and advanced error handling
  • JavaScript (React Native)
    • Advanced ES6+ features: Destructuring, async/await, promises
    • Functional programming concepts in JavaScript
    • Working with third-party libraries in React Native

Week 2: Mobile App Architecture and Design Patterns

  • MVVM (Model-View-ViewModel) for iOS and Android
    • Understanding MVVM architecture for iOS (Swift) and Android (Kotlin)
    • Implementing ViewModels and observing data with 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
    • Using React Context API for global state management

Week 3: Advanced Networking Concepts

  • Networking in iOS (Swift)
    • Working with URLSession for custom network requests
    • Advanced REST API calls and error handling
    • Working with Codable and JSON parsing
    • Best practices for secure API communication (SSL pinning, OAuth)
  • Networking in Android (Kotlin)
    • Retrofit for making API calls and handling responses
    • Advanced API error handling and retry mechanisms
    • Using Gson or Moshi for JSON parsing
    • Secure communication using HTTPS and OAuth authentication

Week 4: Networking in React Native

  • API Integration with Axios and Fetch
    • Advanced API integration with Axios and Fetch
    • Error handling strategies and retries in network requests
    • Working with authentication (JWT, OAuth)
  • WebSockets and Real-Time Communication
    • Introduction to WebSockets in React Native
    • Building real-time chat or notification features with WebSocket connections
    • Managing persistent connections and data updates

Week 5: Advanced Data Persistence Techniques

  • Core Data and SQLite (iOS)
    • Advanced Core Data relationships, fetching, and queries
    • Using SQLite directly for iOS apps and managing database connections
    • Efficient data handling and optimization
  • Room Persistence and SQLite (Android)
    • Advanced Room database relationships and queries
    • Managing large datasets and optimizing database performance
    • Using ProGuard for securing database structures
  • Firebase for Cloud Storage (iOS and Android)
    • Integration with Firebase for real-time database management
    • Best practices for syncing 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 more 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)
    • MotionLayout for creating 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
    • Using the Animated API and Reanimated for complex animations
    • Implementing gestures and interactions using React Native Gesture Handler
    • Best practices for performant animations in React Native
  • Creating Custom UI Components
    • Building reusable and customizable components in React Native
    • Implementing responsive designs with media queries and flexbox

Week 9: Integrating Native Modules and Device Features

  • Accessing Native Device Features
    • Advanced usage of the camera, geolocation, Bluetooth, and sensors
    • Creating native modules in Swift and Kotlin for React Native integration
    • Integrating ARKit for augmented reality in iOS
    • Integrating CameraX and ARCore for augmented reality in Android
  • React Native Bridge and Native Modules
    • Building custom native modules to integrate with 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 leaks
    • 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 on 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 your app for submission: App Store certificates, provisioning profiles, and TestFlight beta testing
    • Using Fastlane for automating iOS app deployment
    • Managing App Store Connect and setting up app review processes
  • Google Play (Android) Deployment
    • Preparing the APK and signing it 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 that incorporates 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

  • Solid understanding of programming concepts, particularly in Swift, Kotlin, and JavaScript
  • Prior experience building basic iOS, Android, or React Native apps
  • Knowledge of design patterns like MVC or MVVM and experience with basic state management

Audience

  • Mobile developers
  • Programmers
 420 Hours

Delivery Options

Private Group Training

Our identity is rooted in delivering exactly what our clients need.

  • Pre-course call with your trainer
  • Customisation of the learning experience to achieve your goals -
    • Bespoke outlines
    • Practical hands-on exercises containing data / scenarios recognisable to the learners
  • Training scheduled on a date of your choice
  • Delivered online, onsite/classroom or hybrid by experts sharing real world experience

Private Group Prices RRP from £9500 online delivery, based on a group of 2 delegates, £3000 per additional delegate (excludes any certification / exam costs). We recommend a maximum group size of 12 for most learning events.

Contact us for an exact quote and to hear our latest promotions


Public Training

Please see our public courses

Testimonials (5)

Provisional Upcoming Courses (Contact Us For More Information)

Related Categories