Section 1: Lab: ทบทวน Core Components และโปรเจกต์ Expo
- สร้างโปรเจกต์ด้วย create-expo-app แบบ TypeScript และโครงสร้างไฟล์
- View, Text, expo-image, Pressable, Alert และ StyleSheet
- เขียนโค้ดแยกตามแพลตฟอร์มด้วย Platform.select และไฟล์ .ios หรือ .android
- Fast Refresh และการดีบักด้วย React Native DevTools
- Lab: หน้าโปรไฟล์ที่แสดงผลต่างกันตามแพลตฟอร์ม
Section 2: Lab: ออกแบบ Layout ขั้นสูง
- Flexbox ที่ซับซ้อนขึ้น: flex, wrap, gap และการจัดแนว
- Absolute และ Relative Positioning สำหรับป้าย ปุ่มลอย และภาพซ้อน
- รองรับหลายขนาดจอด้วย useWindowDimensions และแนวนอน
- Safe Area Insets และ KeyboardAvoidingView
- Lab: หน้า Dashboard ที่ปรับตามขนาดจอ
Section 3: Lab: หน้า Welcome และ Onboarding
- ใส่ฟอนต์ภาษาไทยด้วย expo-font และตั้งค่า Splash Screen
- Onboarding แบบเลื่อนทีละหน้าด้วย FlatList แนวนอนพร้อมตัวบอกหน้า
- ภาพพื้นหลัง Gradient และภาพประกอบ
- Animation พื้นฐานด้วย Animated API ของ React Native
- จำว่าผู้ใช้เคยดู Onboarding แล้วเพื่อข้ามในครั้งถัดไป
Section 4: Lab: Reusable Components และ Theme
- ออกแบบ Props ด้วย TypeScript, ค่าเริ่มต้น และ children
- ความสัมพันธ์แบบ Parent กับ Child และการส่ง Callback กลับขึ้นไป
- Component แบบมี Variant เช่น ปุ่มหลัก ปุ่มรอง และการ์ด
- Theme สี ระยะห่าง และตัวอักษรกลาง พร้อม Dark Mode ด้วย useColorScheme
- Lab: ชุด UI Kit เล็ก ๆ ของแอป
Section 5: Lab: จัดการ State ด้วย useReducer และ Context
- ยก State ขึ้นไปไว้ที่ Parent และประสานหลาย Component
- ตรวจสอบก่อนเปลี่ยน State และเขียน State Update ที่ใช้ซ้ำได้
- useReducer: Reducer, Action และ dispatch
- Context สำหรับข้อมูลที่ใช้ทั้งแอป เช่น Theme และผู้ใช้ที่ล็อกอิน
- Lab: ตะกร้าสินค้าด้วย useReducer และ Context