Get in Touch
 Duration 420 hours

Course Outline

Introduction

Week 1: Overview of Mobile Development

  • Mobile Ecosystem and Platforms
    • Survey of mobile operating systems (iOS and Android)
    • Distinctions among iOS, Android, and cross-platform architectures
    • Major distribution channels (Apple App Store, Google Play Store)
    • Foundations of native, hybrid, and cross-platform development methodologies
  • Native vs Hybrid vs Cross-Platform
    • Benefits and complexities associated with each development approach
    • Overview of Swift (iOS), Kotlin (Android), and React Native (cross-platform) frameworks
    • Process for transpiling code to mobile platforms (e.g., JavaScript to native code in React Native)
  • Programming Fundamentals
    • Core programming concepts (variables, data types, functions, control structures)
    • Syntax comparison across Swift, Kotlin, and JavaScript
    • Composition of basic applications using Swift, Kotlin, and JavaScript
  • Setting up Development Environments
    • Installation and configuration of Xcode and Android Studio
    • Setup of React Native CLI and Expo environments
    • Execution of basic "Hello World" applications on simulators and emulators

Week 2: Introduction to Swift, Kotlin, and JavaScript

  • Swift Programming for iOS
    • Variables, constants, and data types in the Swift language
    • Control flow statements (if, switch, loops)
    • Function definitions and parameter handling in Swift
    • Orientation to Xcode interfaces and Swift Playgrounds
  • Kotlin Programming for Android
    • Variables, data types, and function structures in Kotlin
    • Comprehending Kotlin’s null safety mechanisms
    • Control flow and loop structures
    • Orientation to Android Studio interfaces and Kotlin Playground
  • JavaScript for React Native
    • Variables, constants, and control flow in JavaScript
    • ES6 features: arrow functions, template literals, and destructuring assignments
    • Development and execution of basic JavaScript programs in React Native via Expo

Week 3: iOS User Interface Design

  • UI Elements in iOS
    • Introduction to UIKit and SwiftUI frameworks
    • Integration and customization of UI elements such as buttons, labels, and text inputs
    • Utilization of Interface Builder for UI design
    • Management of Storyboards and creation of multi-screen interfaces
  • Auto Layout and Constraints
    • Analysis of the Auto Layout system
    • Application of constraints for responsive layouts across varying screen dimensions
    • Construction of stack views and dynamic adjustment of UI elements
  • SwiftUI Basics
    • Introduction to declarative UI design in SwiftUI
    • Construction of simple UI components using SwiftUI

Week 4: Android User Interface Design

  • XML Layouts in Android
    • Introduction to XML-based layout design methodologies
    • Implementation of common layouts: LinearLayout, RelativeLayout, ConstraintLayout
    • Integration and customization of UI elements: buttons, text views, image views
    • Application of ConstraintLayout for responsive and dynamic layouts
  • Material Design
    • Integration of Material Design principles (color palettes, iconography, typography)
    • Utilization of Material Components (buttons, floating action buttons, cards)
    • Implementation of themes and styling for Android applications

Week 5: React Native User Interface Design

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

Week 6: Data Handling in iOS and Android

  • iOS Data Handling
    • Utilization of UserDefaults for simple data persistence
    • Introduction to Core Data for local storage of complex data structures
    • Retrieval of data from APIs using URLSession
    • Parsing of JSON data and rendering in the user interface
  • Android Data Handling
    • Utilization of SharedPreferences for storing small datasets
    • Introduction to SQLite and Room Persistence Library for database management
    • Retrieval of data from APIs using Retrofit
    • Parsing of JSON and handling API responses

Week 7: React Native State Management and APIs

  • State and Props in React Native
    • Management of data flow within React Native components
    • Utilization of useState hook for managing local component state
    • Transmission of data between parent and child components via props
  • Fetching Data in React Native
    • Utilization of the Fetch API and Axios for HTTP requests
    • Display of retrieved data in lists (using FlatList, SectionList)
    • Persistence of data locally using AsyncStorage in React Native

Week 8: Navigation in iOS and Android

  • iOS Navigation
    • Introduction to navigation controllers and management of multiple screens
    • Utilization of segues for transitions between view controllers
    • Transmission of data between view controllers
    • Implementation of TabBar and NavigationBar for structured navigation
  • Android Navigation
    • Implementation of Activities and Intents for multi-screen applications
    • Transmission of data between Activities using Bundles
    • Creation of a Navigation Drawer and BottomNavigationView
    • Implementation of fragments for flexible UI navigation

Week 9: Navigation in React Native

  • React Navigation Basics
    • Installation and configuration of React Navigation
    • Utilization of Stack Navigator for screen transitions
    • Implementation of Tab Navigator and Drawer Navigator for complex navigation structures
    • Transmission of parameters between screens and management of navigation state

Week 10: Advanced Features

  • iOS Advanced Features:
    • Core location and maps
      • Access to device location via Core Location
      • Display of maps using MapKit
      • Handling of geolocation and user location tracking
    • Camera and media
      • Access to device camera and photo library
      • Capture and display of images with UIImagePickerController
      • Storage and retrieval of media files
  • Android Advanced Features
    • Location and maps
      • Utilization of the Google Maps API to display maps and user location
      • Access to GPS data and handling of geolocation
    • Camera and media
      • Utilization of CameraX to capture photos and handle camera permissions
      • Display of images and handling of media storage
  • React Native Advanced Features
    • React Native maps
      • Integration of maps using react-native-maps
      • Handling of location-based services (geolocation, route mapping)
    • Camera and media access
      • Utilization of the React Native Camera library for capturing photos
      • Access to device media storage and handling of files

Week 11: Debugging and Testing

  • iOS Debugging and Testing
    • Utilization of Xcode debugger
      • Establishment of breakpoints and inspection of variables in Xcode
      • Utilization of the console for real-time debugging
      • Resolution of common debugging issues
    • Unit testing in iOS
      • Composition and execution of unit tests using the XCTest framework
      • Mocking of objects and testing of UI components
  • Android Debugging and Testing
    • Utilization of Logcat in Android Studio
      • Logging and analysis of errors using Logcat
      • Debugging of Android apps with breakpoints
    • Unit testing in Android
      • Composition of unit tests using JUnit
      • Testing of Android UI components with Espresso
  • React Native Debugging and Testing
    • React Native debugging tools
      • Utilization of Chrome DevTools and React Native Debugger for real-time debugging
      • Console logs and inspection of network requests
    • Unit testing in React Native
      • Composition of unit tests using Jest and Enzyme
      • Testing of React Native components and management of test cases

Week 12: App Deployment and Capstone Project

  • Deployment and Distribution
    • iOS App Store submission
      • Preparation of the application for distribution (icons, certificates, provisioning profiles)
      • Utilization of App Store Connect to submit the application for review
      • Utilization of TestFlight for beta testing
    • Android Play Store submission
      • Preparation of APK and signing of the application for distribution
      • Utilization of Google Play Console for application submission and tracking
      • Comprehension of Play Store policies and guidelines
  • Capstone Project Development
    • Final project development
      • Construction of a fully functional application of the participant’s choice
      • Incorporation of advanced features including API calls, navigation, media, and location services
      • Presentation and demonstration of the final application to peers and instructors

Summary and Next Steps

Requirements

  • Basic understanding of programming concepts for government software development
  • Basic knowledge of JavaScript for cross-platform applications

Audience

  • Mobile developers supporting public sector initiatives
  • Programmers in government IT departments

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories