ปรับการตั้งค่า Provider เป็นรูปแบบ Fat Arrow Function

ปรับการตั้งค่า Provider เป็นรูปแบบ Fat Arrow Function

Preview unavailable

You must log in or sign up to view this lesson.

LoginSign up

เริ่มต้นเรียนรู้ สร้างแอพด้วย Google Flutter

Buy nowLearn more

เริ่มต้นกับ Flutter และการสร้าง Mobile App

  • รู้จักกับ Flutter
  • รู้จักกับภาพรวมขั้นตอนการสร้าง Mobile Application เบื้องต้น
  • ทำความเข้าใจความแตกต่างของของ Mobile Application กับ Web Application
  • ทดสอบกันหน่อย

วิธีติดตั้งโปรแกรมสำหรับคนใช้ Windows

  • หมายเหตุ สำหรับคนที่ต้องการทดสอบแอพบนระบบ iOS และ iOS Simulator
  • วิธีติดตั้ง Chocolatey1
  • วิธีติดตั้ง Java Development Kit (JDK)3
  • วิธีติดตั้ง Flutter SDK บน Windows
  • การติดตั้ง Git Client
  • วิธีติดตั้ง Android Studio บน Windows
  • ติดตั้ง Visual Studio Code

วิธีติดตั้งโปรแกรมสำหรับคนใช้ MacOS

  • การติดตั้ง Homebrew8
  • วิธีติดตั้ง Java Development Kit ด้วย Homebrew
  • วิธีติดตั้ง Flutter SDK ผ่าน Homebrew2
  • ติดตั้ง Android Studio และ Android SDK บน macOS
  • ใช้ Flutter Doctor ตรวจความเรียบร้อยของระบบ Android และวิธีแก้ปัญหา1
  • วิธีการติดตั้ง Xcode
  • วิธีการติดตั้ง CocoaPods
  • ติดตั้ง Visual Studio Code บน Mac (ใช้ได้ทั้งเครื่อง Intel และ M1/M2) 2

การสร้างแอพแรก และทำความเข้าใจโครงสร้างของโปรเจค

  • เช็คความพร้อมของระบบ ด้วยคำสั่ง Flutter doctor6
  • วิธีสร้างโปรเจคแอพ Flutter ด้วยโปรแกรม Visual Studio Code3
  • เทคนิค: สร้างโปรเจคแบบไม่ใช้ตัวช่วย3
  • รู้จักกับโครงสร้างของโปรเจค

การทดสอบแอพพลิเคชั่นบน Android ทั้งแบบ Emulator และอุปกรณ์จริง

  • วิธีสร้าง Android Virtual Device2
  • ทดสอบแอพพลิเคชั่นบน Android Virtual Device7
  • ทำความเข้าใจการทดสอบแอพบนอุปกรณ์ Android
  • การปลดล๊อค Developer Option ให้ Android ต่อกับ VSCode ได้
  • แนวทางการหา และติดตั้ง USB Driver
  • การเชื่อมต่อระบบ Windows เข้ากับอุปกรณ์พกพา

การทดสอบแอพพลิเคชั่นบนอุปกรณ์ iOS

  • ข้อควรรู้เกี่ยวกับการทดสอบแอพ iOS
  • การรัน iOS Simulator
  • การรันแอพพลิเคชั่นทดสอบบน iOS Simulator6
  • การรันแอพบนอุปกรณ์ iOS - การเชื่อมต่อครั้งแรก
  • การรันแอพบนอุปกรณ์ iOS - การกำหนด Team Profile
  • การรันแอพบนอุปกรณ์ iOS - การตรวจสอบ Apple ID และกำหนด Bundle Identifier
  • การแก้ไขปัญหาที่พบบ่อย
  • แก้ไขปัญหาที่พบในการทดสอบแอพบนอุปกรณ์ iOS - ลืมปลดล๊อคเครื่อง
  • แก้ไขปัญหาที่พบในการทดสอบแอพบนอุปกรณ์ iOS - Maximum Limited App for free profile reach

การกำหนดชื่อแอพ และไอคอนของแอพ

  • วิธีเปลี่ยนชื่อแอพพลิเคชั่น Android ใน Flutter
  • วิธีเปลี่ยนชื่อแอพพลิเคชั่น iOS ใน Flutter
  • แนะนำเว็บรวม Package สำหรับ Flutter
  • วิธีติดตั้ง Package ของ Google Flutter3
  • รู้จักกับระบบ Icon ใน Android
  • วิธีสร้างไอคอนให้แอพ Android4
  • วิธีสร้างไอคอนให้แอพ iOS

เขียนแอพตัวแรกของเรากัน

  • ก่อนเริ่มต้น2
  • มาเริ่มต้นจากบรรทัดแรกกัน
  • จุดเริ่มต้นของแอพกับ function Main()2
  • รู้จักกับ Widget ชิ้นส่วนสำคัญของแอพพลิเคชั่นใน Flutter
  • วิธีเขียนประกาศใช้งาน Widget ในภาษาโปรแกรม Dart
  • รู้จักกับคำสั่ง Import และการใช้งาน Widget ตัวแรก
  • กำหนดโครงสร้างของแอพ ด้วย MaterialApp Widget
  • ทำความเข้าใจ new keyword หายไปไหนจากภาษา Dart
  • เทคนิคการเขียนใช้งาน Widget หลายตัวซ้อนกัน
  • สร้างโครงหน้าแอพด้วย Scaffold Widget
  • กำหนด Theme ให้แอพพลิเคชั่น ผ่าน theme property3

เริ่มสร้างแอพ NUMBER COUNTER

  • แนะนำ Stateless และ Stateful Widget แบบเข้าใจง่าย2
  • สร้าง Stateless Widget ตัวแรกของเรากัน
  • สร้าง Stateful Widget ตัวแรกของเรากัน
  • วิธีใช้งาน Center Widget
  • รู้จักวิธีเริ่มใช้งาน Column Widget
  • วิธีกำหนดขนาด และสีสันของข้อความด้วย TextStyle
  • รู้จักและใช้งานปุ่มกด
  • แทรกค่าตัวนับ ใช้งานใน Text Widget
  • รู้จักกับการสร้าง Interactivity ใน Widget
  • กำหนดการทำงานของโปรแกรม จาก Event ของปุ่มกด
  • รู้จักกับการทำงานของ State
  • อัพเดตหน้าแอพ ด้วย setState() method
  • อธิบาย: ทำไมเราควรเขียนโค้ดไว้ใน setState()
  • เทคนิค: เขียน method แบบฝัง หรือแยกจาก Widget ดี?

แอพ Contact List แบบง่าย

  • แนะนำก่อนเริ่มเวิร์คชอป
  • ดาวน์โหลดไฟล์ zip ของโปรเจคนี้
  • การคืนสภาพโปรเจคให้กับ Flutter Package
  • การเตรียม Column Widget
  • การสร้าง List Widget จากโค้ดภาษา Dart3
  • สร้าง function สำหรับสร้าง List Widget และปรับใช้งาน
  • ใช้ ListView เบื้องต้นกัน
  • ใช้ ListTile กับ ListView แบบ custom function
  • รู้จักกับ constructor method ของ ListView
  • สร้าง ListView ด้วยวิธีมาตรฐานกับ ListView.Builder
  • สร้าง Class Contact สำหรับเก็บข้อมูลผู้ติดต่อ
  • เทคนิค: วิธีการเขียนกำหนด Constructor parameter แบบย่อ
  • เรียกใช้งาน Class contact ในไฟล์ main

การตรวจสอบ และดูการทำงานของโค้ดในแอพพลิเคชั่น (Debugging)

  • แนะนำการ Debug Application
  • ใช้โหมด Run และ Breakpoint
  • การจัดการ Breakpoint

โปรเจค Contact List ตอน 2

  • รู้จักกับการจัดเก็บข้อมูลแบบ List
  • วิธีประกาศตัวแปร List
  • ใช้ข้อมูล List ด้วยคำสั่ง ListView.builder
  • วิธีเพิ่มรูปภาพเพื่อนำมาใช้งานใน Project
  • กำหนด pubspec เพื่อโหลดไฟล์รูปภาพเข้าแอพ (เรียกว่า Assets)
  • รู้จักกับ Image Widget
  • วิธีแสดงรูปภาพใน ListTile Widget
  • ตอบสนองกับการกดเลือก โดยใช้ onTap() ใน ListTile
  • ติดตั้ง package - url-launchers
  • ทำให้แอพโทรออกไปที่เบอร์ในรายการ List กัน

แอพ Covid 19 Today

  • แนะนำแอพ COVID-19 Today ส่วนที่ 1
  • รู้จักกับการทำงานระหว่าง Web API และ Mobile App
  • ดู Web API ของกรมควบคุมโรค
  • ดาวน์โหลดโปรเจคจาก Github
  • คืนสภาพโปรเจคที่ดาวน์โหลดมา
  • ใช้ ListView และ ListTile สร้าง Layout
  • ใช้งาน initState method รันโค้ดก่อน method build
  • ติดตั้ง Http Package
  • รู้จักกับการทำงานแบบ Asynchronous ในแอพพลิเคชั่น
  • รู้จักวิธีใช้งาน Asynchronous ในภาษา Dart
  • สร้าง Async method
  • รู้จักกับ Future
  • เรียกข้อมูลจาก Web API ด้วย HTTP
  • สร้างไฟล์ Class สำหรับเก็บข้อมูล JSON
  • รู้จักกับ QuickType.io
  • วิธีใช้งานโค้ดจาก quicktype.io
  • แปลง JSON เป็น object ตัวแปรใน State
  • อัพเดต Widget ด้วยการ Setstate
  • ตามหาต้นเหตุของ error confirmed null
  • ให้ Dart เลือกแสดงค่าอื่นแทน null โดยใช้ ?? operator
  • เก็บงาน แสดงจำนวนผู้ป่วยที่หายแล้ว ยังอยู่ในโรงพยาบาล และเสียชีวิต

แอพ Covid-19 Today ส่วนที่ 2

  • แนะนำแอพ COVID-19 Today ส่วนที่ 2
  • เพิ่ม LinearProgressIndicator ลงใน Column
  • ใช้ If else ควบคุมการแสดง LinearProgressIndicator
  • ประกาศใช้งาน FutureBuilder ในหน้าแอพ
  • การใช้ builder และ snapshot แสดง widget ตามการทำงานของ async method
  • การใช้งาน data จาก snapshot
  • สร้างตัวแสดงยอดสถิติของเราเอง
  • กำหนดและจัดเรียงยอดสถิติใน Widget
  • สร้าง Widget StatBox เพื่อใช้ซ้ำ
  • กำหนดค่า property ให้ Widget เพื่อใช้งาน
  • กำหนดหน้าตาของ StatBox และใช้ข้อมูล
  • แทนที่ยอดสถิติเดิม ด้วย Statbox
  • สร้างระยะห่างระหว่าง Widget ใน Column ด้วย SizedBox
  • ติดตั้ง package สำหรับการแสดงจำนวนหลักพัน
  • จัด Format ตัวเลขหลักพันด้วย NumberFormat
  • กำหนดสิทธิ์ Permission เพื่อเชื่อมต่ออินเตอร์เน็ตเวลาทำงานจริง

เข้าใจภาพรวมของการเผยแพร่แอพ บน Store ต่างๆ (App Distribution)

  • รู้จักกับภาพรวม การส่งแอพเผยแพร่บน App Store และ Play Store
  • รู้จักกับวิธีที่สโตร์ระบุตัวตนของแอพเรา
  • รู้จักกับขั้นตอนสำคัญในการยืนยันความเป็นเจ้าของแอพของเรา
  • Link สำหรับเข้าไปสมัคร Developer Account ของทั้ง 2 ระบบ

การสร้างไฟล์แอพพลิเคชั่นสำหรับทำไปใช้งานบน Play Store

  • การติดตั้ง Flutter Automation package สำหรับการสร้างไฟล์ Android
  • การสร้างไฟล์ Key store สำหรับ Android
  • ตรวจดูไฟล์ key properties และ build.gradle ที่โดนแก้ไขด้วย Flutter Automation
  • การสร้างไฟล์ Android App Bundle (AAB)2
  • วิธีการสร้างไฟล์ Android Application Package (APK) แบบต่างๆ

วิธีสร้างไฟล์แอพ iOS และส่งขึ้น App Store

  • เปิดไฟล์ Xcode Workspace และเช็ค Bundle Identifier
  • สร้าง Bundle ID บน Apple Developer Program
  • วิธีสั่ง Archive โปรเจคด้วย Xcode และแสดงใน Organizer
  • วิธี Validate Archive ด้วย Organizer
  • วิธีสร้างโปรไฟล์ของ App เราบน App Store Connect
  • การ Validate App หลังจากสร้างโปรไฟล์ App บน App Store Connect
  • วิธีสั่ง Distribute App จาก Organizer
  • วิธีเลือก Build ให้กับโปรไฟล์ App ใน Apple store connect

แอพ My Timeline

  • แนะนำแอพ My Timeline
  • เตรียมพร้อมโปรเจค
  • เพิ่ม Icon Button ใน App Bar
  • รู้จักกับ Navigation และระบบ Route
  • เขียนเรียกใช้ Navigator เพื่อสร้างการเปิดหน้าเพจ
  • สร้าง และแนะนำการจัดเก็บหน้า New Post Page
  • ใช้ Widget New Post Page กับคำสั่ง Navigator push
  • รู้จักกับ Form และการรับข้อมูล
  • สร้างแบบฟอร์มในหน้า New Post Page
  • สร้างปุ่มสำหรับยืนยันการสร้างโพส
  • กางปุ่มให้ชิดขอบหน้าจอด้านล่าง
  • จัดรูปแบบ TextFormField
  • กำหนดกลไกปุ่มโพส ให้เปิดย้อนกลับมาหน้าแรกได้
  • สร้าง ListView สำหรับแสดงโพส
  • เริ่มต้นสร้าง Widget สำหรับแสดงโพส
  • กำหนดสีและขนาด Text เพื่อกำหนดความสำคัญ
  • สร้างช่องแบ่งระหว่างโพสใน ListView
  • ปรับ ListView ให้หร้อมสำหรับการใช้กับข้อมูลจริง

แอพ My Timeline ส่วนที่ 2 - เริ่มเรียนรู้จัดการแอพ ด้วย State Management Provider

  • แนะนำส่วนประกอบสำคัญของ My Timeline ส่วนที่ 2
  • รู้จักกับ State Management
  • รู้จักกับ State Management- Provider
  • ติดตั้ง Package Provider
  • รู้จักกับ Provider
  • สร้าง Provider สำหรับข้อมูล Posts
  • สร้าง get method เพื่อให้ส่วนอื่น เข้าถึงข้อมูลใน Provider
  • เขียนสร้าง fat arrow function ครั้งแรก
  • สร้างฟังก์ชั่นเพื่ออัพเดตข้อมูลใน Provider
  • รู้จักกับ Multiple Provider
  • กำหนด MultiProvider ครอบ Widget ที่ต้องการในแอพ
  • ปรับการตั้งค่า Provider เป็นรูปแบบ Fat Arrow Function
  • รู้จักกับ Consumer
  • ประกาศ Consumer เพื่อใช้ข้อมูลจาก Provider ในการอัพเดตข้อมูล
  • ทดสอบการทำงานของ Provider และ Consumer ตอนเริ่มการทำงานของแอพ
  • สร้างกลไกการตรวจสอบข้อมูลใน Form ด้วย FormKey
  • สร้าง Validator Function ในการตรวจสอบข้อมูลของ TextFormField
  • เช็คความยาวต่ำสุดของข้อความที่กรอกใน TextFormField
  • ใช้ TextEditingController ในการดึงข้อความออกจาก TextFormField
  • เพิ่มข้อความใหม่ ลงไปเก็บไว้ใน Provider
  • ทดสอบการทำงานของ Provider ในการเพิ่มข้อมูลเข้า List
  • ใช้ Template ที่เราออกแบบให้ ListView กับข้อมูลจาก Provider
  • กำหนดให้โพสใหม่แสดงเป็นรายการแรกใน List

แอพแสกนบาร์โค้ด และคิวอาร์โค้ด (BARCODE & QR CODE)

  • แนะนำแอพแสกน ส่วนที่ 2

การเรียกใช้งานแอพ YOUTUBE กับแอพ LINE จาก QR CODE ที่แสกนได้ในแอพ

  • แนะนำแอพแสกน ส่วนที่ 2
  • รู้จักกับ URL Scheme
  • รู้จักกับ URL Scheme ของ Youtube
  • วิธีตรวจเช็ค link YouTube จาก QR code
  • ทดสอบการอ่านลิ้งค์ Youtube จาก QR Code
  • แสดงปุ่มเปิดแอพ Youtube ถ้าพบว่าเป็น link Youtube
  • ติดตั้งแพคเกจ url_launcher
  • เขียนคำสั่งเปิดแอพ Youtube จากลิ้งค์ที่แสกนได้จาก QR Code
  • ทดสอบเปิดคลิปวิดีโอบนแอพ Youtube จาก link ที่แสกนได้จาก QR Code
  • วิธีเปิดคลิปวิดีโอ Youtube จาก Link ที่แสกนได้บนแอพ iOS
  • รู้จักกับ URL Scheme ของแอพ Line
  • แสดงปุ่มเปิดแอพ LINE ถ้าพบว่าเป็น link เกี่ยวข้องกับ LINE
  • ทดสอบเปิดแอพ LINE จากลิ้งค์ที่แสกนได้จาก QR Code

แอพลงทะเบียน PART 1 - สร้างแบบฟอร์มสำหรับรับข้อมูล

  • แนะนำ Workshop
  • คำสั่งโคลนโปรเจค git clone https://github.com/teerasej/nextflow-flutter-registration-app-public.git
  • สร้าง tab menu2
  • สร้างหน้าลงทะเบียน
  • วาง Layout ของแบบฟอร์มลงทะเบียน
  • สร้างส่วนสำหรับกดถ่าย และแสดงรูปผู้ลงทะเบียน
  • รู้จักกับการใช้งาน InkWell Widget
  • สร้างเอฟเฟค Ink และ InkWell สำหรับบริเวณถ่ายรูปลงทะเบียน
  • รู้จักกับปัญหา Bottom Overflow ที่เกิดจากการเรียกใช้ Keyboard
  • ทดสอบการกรอกแบบฟอร์ม และปัญหา Overflow
  • แก้ไขปัญหา Bottom Overflow ด้วย SingleChildScrollView
  • สร้าง Class สำหรับเก็บข้อมูล จากแบบฟอร์มลงทะเบียน
  • สร้าง FormKey เพื่อควบคุมการทำงานของ Form Widget
  • การดึงข้อมูลออกจาก TextFormField มาใช้งาน
  • วิธีเก็บข้อมูลจาก Form ทั้งหมด ลง Object ด้วย onSaved ของ TextFormField
  • ทดสอบเก็บข้อมูลจากแบบฟอร์มด้วย onSave
  • ทบทวน การตรวจสอบข้อมูลด้วย Validator
  • ติดตั้ง package form_field_validator
  • ตรวจจับข้อมูลที่ไม่ได้กรอกลงแบบฟอร์มด้วย RequiredValidator
  • ตรวจจับการกรอก email ผิดรูปแบบ ด้วย EmailValidator และ MultiValidator
  • แสดงแป้นคีย์บอร์ดสำหรับพิมพ์อีเมลล์

แอพลงทะเบียน PART 2 - การจัดเก็บข้อมูลไว้ที่ฝั่ง SERVER ด้วย FIREBASE

  • รู้จักกับ Firebase
  • วิธีลงทะเบียนเข้าใช้งานระบบ Firebase
  • รู้จักกับรูปแบบของโปรเจค Firebase
  • วิธีสร้างโปรเจค Firebase ใหม่สำหรับใช้งานกับแอพพลิเคชั่น
  • รู้จักกับการนำระบบ Firebase มาใช้งานในโปรเจคโมบายล์แอพพลิเคชั่น Flutter ของเรา
  • ติดตั้ง package Firebase_core
  • วิธีการตั้งค่าใช้งาน Firebase บนระบบ Android
  • วิธีการตั้งค่าใช้งาน Firebase บนระบบ iOS
  • รู้จักการรองรับ กลไกเริ่มต้นการทำงานของ Firebase ด้วย Future Builder
  • เริ่มต้นใช้งาน Firebase ด้วย FutureBuilder
  • การเปิดใช้งาน Cloud FireStore บนโปรเจค Firebase
  • ติดตั้ง cloud_firestore
  • เรียกใช้งาน Cloud Firestore เพื่อบันทึกข้อมูลในหน้าลงทะเบียน
  • ทดสอบการบันทึกข้อมูลลง Cloud Firestore
  • ล้างแบบฟอร์มเมื่อบันทึกข้อมูลเสร็จ

แอพลงทะเบียน PART 3 - ถ่ายรูปผู้ลงทะเบียน

  • รู้จักกับการทำงานของระบบกล้องถ่ายรูปที่เรียกใช้ได้ผ่านแอพ
  • รู้จักกับ Permission
  • ติดตั้ง package image_picker
  • การตั้งค่าแอพ Android สำหรับการใช้งานกล้องถ่ายรูป
  • การตั้งค่าแอพ iOS สำหรับการใช้งานกล้องถ่ายรูป
  • วิธีเรียกใช้งานกล้องถ่ายรูป ด้วย Image Picker และเช็คที่อยู่ของไฟล์
  • ทดสอบการใช้งานกล้องถ่ายรูปในแอพ Flutter
  • แสดงรูปภาพที่ถ่ายได้ ด้วย Image Widget
  • ทดสอบการทำงานหลังจากถ่ายรูป และกลับเข้ามาในแอพ

แอพลงทะเบียน PART 4 - อัพโหลดและจัดการไฟล์รูปภาพบน FIREBASE

  • รู้จักกับแนวทางในการจัดการไฟล์ในแอพพลิเคชั่น
  • รู้จักกับ Firebase Cloud Storage
  • ติดตั้ง package - firebase_storage
  • วิธีสร้าง storage bucket บน Firebase
  • รู้จักกับคำสั่งการใช้งาน Cloud Storage และอัพโหลดไฟล์
  • สร้างและเรียก function สำหรับอัพโหลดไฟล์รูปขึ้น Firebase Cloud Storage
  • ทดสอบถ่ายและอัพโหลดรูปภาพขึ้น Firebase Cloud Storage
  • กำหนด Rule สำหรับอัพโหลดไฟล์แบบไม่ต้อง login บน Firebase Cloud Storage
  • ทดสอบอัพโหลดไฟล์รูปขึ้น Cloud Storage
  • การกำหนดที่อยู่ของไฟล์ที่อัพโหลด
  • แสดงป๊อปอัพสถานะการจัดเก็บข้อมูล
  • ป้องกันการปิดป๊อปอัพโดยผู้ใช้
  • เคลียร์ข้อมูลรูปภาพหลังอัพโหลดเสร็จแล้ว
  • ทำการบันทึกชื่อไฟล์ไปที่ firestore เพื่อเชื่อมโยงไฟล์รูปกับข้อมูลผู้ลงทะเบียน