Đề cương khóa học
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-Platfrom
- 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 SharedPreferenes 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 Debbuging 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 Debbuging 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 Debbuging 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
- Hiểu biết cơ bản về các khái niệm lập trình
- Kiến thức cơ bản về JavaScript
Đối tượng
- Nhà phát triển ứng dụng di động
- Lập trình viên
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