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

Requirements

  • Basic understanding of programming concepts
  • Basic knowledge of JavaScript

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