Course Code: bootcampreactdevmid
Duration: 420 hours
Prerequisites:
  • Basic understanding of programming concepts
  • Basic knowledge of JavaScript

Audience

  • Mobile developers
  • Programmers
Overview:

iOS development focuses on building apps specifically for Apple devices (iPhones and iPads) using Swift/Objective-C and Xcode, Android development involves building apps for Android devices using Kotlin/Java and Android Studio, and React Native development is a cross-platform framework that allows building apps for both iOS and Android using JavaScript, with shared codebases, leveraging the React library for UI development.

This instructor-led, live training (online or onsite) is aimed at intermediate-level developers who wish to master mobile app development across multiple platforms.

By the end of this training, participants will be able to:

  • Set Up Development Environments for iOS, Android, and React Native using Xcode, Android Studio, and React Native CLI/Expo.
  • Develop Native iOS and Android Apps using Swift for iOS and Kotlin for Android, creating apps with navigation and API integration.
  • Build Cross-Platform Apps with React Native, leveraging a single codebase to create apps for both iOS and Android.
  • Design Responsive User Interfaces using Auto Layout, XML, and Flexbox for iOS, Android, and React Native.
  • Manage Data and State in apps using local storage solutions and handle API requests in all platforms.
  • Incorporate Advanced Features like camera, geolocation, and maps into mobile apps.
  • Implement Multi-Screen Navigation in iOS, Android, and React Native apps.
  • Debug and Test Apps using tools provided by Xcode, Android Studio, and React Native.
  • Deploy Apps to the App Store and Google Play Store.
  • Complete a Capstone Project showcasing the skills learned by building and presenting a functional mobile app.

Format of the Course

  • Interactive lecture and discussion.
  • Lots of exercises and practice.
  • Hands-on implementation in a live-lab environment.

Course Customization Options

  • To request a customized training for this course, please contact us to arrange.
Course Outline:

Introduction

Week 1: Overview of Mobile Development

  • Mobile Ecosystem and Platforms
    • Overview of mobile operating systems (iOS and Android)
    • Key differences between iOS, Android, and cross-platform development
    • Popular app stores (Apple App Store, Google Play Store)
    • Introduction to native, hybrid, and cross-platform development
  • Native vs Hybrid vs Cross-Platform
    • Advantages and challenges of each development method
    • Overview of Swift (for iOS), Kotlin (for Android), and React Native (cross-platform)
    • How code translates to mobile platforms (JavaScript to native code in React Native)
  • Programming Fundamentals
    • Introduction to programming concepts (variables, data types, functions, control flow)
    • Comparison of Swift, Kotlin, and JavaScript syntax
    • Writing simple programs using Swift, Kotlin, and JavaScript
  • Setting up Development Environments
    • Installing Xcode and Android Studio
    • Setting up React Native CLI and Expo
    • Running basic "Hello World" apps on simulators and emulators

Week 2: Introduction to Swift, Kotlin, and JavaScript

  • Swift Programming for iOS
    • Variables, constants, and data types in Swift
    • Control flow statements (if, switch, loops)
    • Functions and parameters in Swift
    • Introduction to Xcode's interface and Swift Playgrounds
  • Kotlin Programming for Android
    • Variables, data types, and functions in Kotlin
    • Understanding Kotlin’s null safety
    • Control flow and loop structures
    • Introduction to Android Studio’s interface and Kotlin Playground
  • JavaScript for React Native
    • Variables, constants, and control flow in JavaScript
    • ES6 features: arrow functions, template literals, and destructuring
    • Writing and running basic JavaScript programs in React Native using Expo

Week 3: iOS User Interface Design

  • UI Elements in iOS
    • Introduction to UIKit and SwiftUI
    • Adding and customizing UI elements like buttons, labels, and text fields
    • Using Interface Builder to design UI
    • Working with Storyboards and designing multi-screen UIs
  • Auto Layout and Constraints
    • Understanding the Auto Layout system
    • Using constraints for responsive layouts across different screen sizes
    • Creating stack views and dynamically adjusting UI elements
  • SwiftUI Basics
    • Introduction to declarative UI design in SwiftUI
    • Building simple UI components using SwiftUI

Week 4: Android User Interface Design

  • XML Layouts in Android
    • Introduction to XML-based layout design
    • Working with common layouts: LinearLayout, RelativeLayout, ConstraintLayout
    • Adding and customizing UI elements: buttons, text views, image views
    • Using ConstraintLayout for responsive and dynamic layouts
  • Material Design
    • Integrating Material Design principles (colors, icons, typography)
    • Using Material Components (buttons, floating action buttons, cards)
    • Implementing themes and styling for Android apps

Week 5: React Native User Interface Design

  • React Native Flexbox Layout
    • Understanding Flexbox for responsive layout design
    • Creating column and row-based layouts
    • Styling UI components with Flexbox properties (justifyContent, alignItems, etc.)
  • React Native Components
    • Working with core components like Text, View, TextInput, and Button
    • Creating interactive UI elements such as forms and buttons
    • Using the ScrollView component for dynamic content

Week 6: Data Handling in iOS and Android

  • iOS Data Handling
    • Using UserDefaults for simple data persistence
    • Introduction to Core Data for local storage of complex data
    • Fetching data from APIs using URLSession
    • Parsing JSON data and displaying it in the UI
  • Android Data Handling
    • Using SharedPreferences for storing small amounts of data
    • Introduction to SQLite and Room Persistence Library for managing databases
    • Fetching data from APIs using Retrofit
    • Parsing JSON and handling API responses

Week 7: React Native State Management and APIs

  • State and Props in React Native
    • Managing data flow within React Native components
    • Using useState hook for managing local component state
    • Passing data between parent and child components via props
  • Fetching Data in React Native
    • Using the Fetch API and Axios to make HTTP requests
    • Displaying fetched data in lists (using FlatList, SectionList)
    • Persisting data locally using AsyncStorage in React Native

Week 8: Navigation in iOS and Android

  • iOS Navigation
    • Introduction to navigation controllers and managing multiple screens
    • Using segues to transition between view controllers
    • Passing data between view controllers
    • Implementing TabBar and NavigationBar for structured navigation
  • Android Navigation
    • Working with Activities and Intents for multi-screen apps
    • Passing data between Activities using Bundles
    • Creating a Navigation Drawer and BottomNavigationView
    • Implementing fragments for flexible UI navigation

Week 9: Navigation in React Native

  • React Navigation Basics
    • Installing and setting up React Navigation
    • Using Stack Navigator for screen transitions
    • Implementing Tab Navigator and Drawer Navigator for complex navigation
    • Passing parameters between screens and managing navigation state

Week 10: Advanced Features

  • iOS Advanced Features:
    • Core location and maps
      • Accessing device location with Core Location
      • Displaying maps using MapKit
      • Handling geolocation and user location tracking
    • Camera and media
      • Accessing device camera and photo library
      • Capturing and displaying images with UIImagePickerController
      • Storing and retrieving media files
  • Android Advanced Features
    • Location and maps
      • Using the Google Maps API to display maps and user location
      • Accessing GPS data and handling geolocation
    • Camera and media
      • Using CameraX to capture photos and handle camera permissions
      • Displaying images and handling media storage
  • React Native Advanced Features
    • React Native maps
      • Integrating maps using react-native-maps
      • Handling location-based services (geolocation, route mapping)
    • Camera and media access
      • Using the React Native Camera library for capturing photos
      • Accessing device media storage and handling files

Week 11: Debugging and Testing

  • iOS Debugging and Testing
    • Using Xcode debugger
      • Setting breakpoints and inspecting variables in Xcode
      • Using the console for real-time debugging
      • Common debugging issues and how to resolve them
    • Unit testing in iOS
      • Writing and running unit tests using XCTest framework
      • Mocking objects and testing UI components
  • Android Debugging and Testing
    • Using Logcat in Android Studio
      • Logging and analyzing errors using Logcat
      • Debugging Android apps with breakpoints
    • Unit testing in Android
      • Writing unit tests using JUnit
      • Testing Android UI components with Espresso
  • React Native Debugging and Testing
    • React Native debugging tools
      • Using Chrome DevTools and React Native Debugger for real-time debugging
      • Console logs and inspecting network requests
    • Unit testing in React Native
      • Writing unit tests using Jest and Enzyme
      • Testing React Native components and managing test cases

Week 12: App Deployment and Capstone Project

  • Deployment and Distribution
    • iOS App Store submission
      • Preparing your app for distribution (icons, certificates, provisioning profiles)
      • Using App Store Connect to submit the app for review
      • Using TestFlight for beta testing
    • Android Play Store submission
      • Preparing APK and signing the app for distribution
      • Using Google Play Console for app submission and tracking
      • Understanding Play Store policies and guidelines
  • Capstone Project Development
    • Final project development
      • Building a fully functional app of your choice
      • Incorporating advanced features like API calls, navigation, media, and location
      • Presenting and demoing the final app to peers and instructors

Summary and Next Steps

Sites Published:

United Arab Emirates - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Qatar - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Egypt - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Saudi Arabia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

South Africa - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Brasil - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Canada - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

中国 - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

香港 - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

澳門 - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

台灣 - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

USA - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Czech Republic - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Denmark - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Estonia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Finland - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Greece - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Magyarország - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Ireland - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Luxembourg - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Latvia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

España - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Italia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Lithuania - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Nederland - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Norway - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Portugal - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

România - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Sverige - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Türkiye - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Malta - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Belgique - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

France - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

日本 - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Australia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Malaysia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

New Zealand - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Philippines - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Singapore - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Thailand - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Vietnam - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

India - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Argentina - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Chile - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Costa Rica - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Ecuador - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Guatemala - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Colombia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

México - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Panama - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Peru - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Uruguay - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Venezuela - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Polska - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

United Kingdom - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

South Korea - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Pakistan - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Sri Lanka - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Bulgaria - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Bolivia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Indonesia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Kazakhstan - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Moldova - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Morocco - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Tunisia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Kuwait - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Oman - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Slovakia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Kenya - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Nigeria - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Botswana - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Slovenia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Croatia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Serbia - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Bhutan - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Nepal - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)

Uzbekistan - iOS, Android, and React Native Development Bootcamp (Beginner to Intermediate Level)