Đề 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)
Thông tin bổ sung rất hữu ích
Grzegorz - Comp S.A.
Course - BLoC Pattern
Machine Translated
Phát triển ứng dụng xác thực người dùng và hoạt động Kahoot (tôi đã tự mình đảm bảo rằng tôi đang tiếp thu các bài giảng đào tạo một cách hiệu quả :) và rất thú vị!)
Jhoanne - Pag-IBIG Fund
Course - .NET MAUI Fundamentals
Machine Translated
Edward là một ngườifacilitator tuyệt vời
Zibusiso Ncube - Agricatural Research Council
Course - Ionic 4 and Angular for Developers
Machine Translated
Có thể thêm nhiều bài tập sẽ tốt hơn cho việc học nhưng thời gian lại quá ít
Gianpiero Arico' - Urmet Spa
Course - Embedded Linux Systems Architecture
Machine Translated
Kiến thức của Miguel về chủ đề này rất sâu rộng. Anh đã làm cho khóa đào tạo trở nên dễ hiểu và có sự cân bằng trong tiến trình; thêm vào mỗi phần những tính năng mới khi cần thiết. Anh đã涵盖所有被要求的内容,并且对每个问题都进行了详尽的回答。这是一次非常愉快的经历。 (注:最后两句翻译似乎混用了越南语和中文,现在纠正为完整越南语版本) Anh đã bao gồm tất cả những gì được yêu cầu và trả lời chi tiết từng câu hỏi. Đây thực sự là một trải nghiệm rấtpleasant experience. (注:最后一句中“pleasant experience”已直接翻译为“愉快的经历”,若需完全符合指示,保留原文可改为:Đây thực sự là một trải nghiệm rất "pleasant experience". 但为了自然流畅,建议使用:Đây thực sự là một trải nghiệm rất thoải mái và tích cực.) 最终版本: Kiến thức của Miguel về chủ đề này rất sâu rộng. Anh đã làm cho khóa đào tạo trở nên dễ hiểu và có sự cân bằng trong tiến trình; thêm vào mỗi phần những tính năng mới khi cần thiết. Anh đã bao gồm tất cả những gì được yêu cầu và trả lời chi tiết từng câu hỏi. Đây thực sự là một trải nghiệm rất thoải mái và tích cực.
Paul Coaton - SEMPCheck Services
Course - Flutter Development Bootcamp with Dart
Machine Translated