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
, andButton
- Creating interactive UI elements such as forms and buttons
- Using the
ScrollView
component for dynamic content
- Working with core components like
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
- Core location and maps
- 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
- Location and maps
- React Native Advanced Features
- React Native maps
- Integrating maps using
react-native-maps
- Handling location-based services (geolocation, route mapping)
- Integrating maps using
- Camera and media access
- Using the React Native Camera library for capturing photos
- Accessing device media storage and handling files
- React Native maps
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
- Using Xcode debugger
- 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
- Using Logcat in Android Studio
- 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
- React Native debugging tools
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
- iOS App Store submission
- 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
- Final project development
Summary and Next Steps
Requirements
- Basic understanding of programming concepts
- Basic knowledge of JavaScript
Audience
- Mobile developers
- Programmers
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 €11400 online delivery, based on a group of 2 delegates, €3600 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)
Edward is an awesome facilitator
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
My favorite part is question and answer with Sir. Jose. He is very knowledgeable and know the answer to our questions.
John Henry - Toyota Motor Philippines
Course - .NET MAUI (Intermediate)
Maybe more exercises could be better for lerning but the time was to little
Gianpiero Arico' - Urmet Spa
Course - Embedded Linux Systems Architecture
Miguel's knowledge of the subject was extensive. He made the training easy to understand and the flow was balanced; adding on to each section with new features as needed. He covered everything that was asked and answered each and every question thoroughly. It was a very pleasant experience.
Paul Coaton - SEMPCheck Services
Course - Flutter Development Bootcamp with Dart
The trainer was enthusiastic, kind, and loved the topic