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 ScrollViewcomponent 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 useStatehook 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
Testimonials (5)
Very usefull additional informations
Grzegorz - Comp S.A.
Course - BLoC Pattern
Edward is an awesome facilitator
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
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
