Posted on Leave a comment

Flutter: จะใช้ Database ลืมอะไรหรือเปล่า?

อันนี้เป็น tip & trick อย่างหนึ่งที่เรียนรู้ระหว่างการทำโปรเจคตัวหนึงด้วย Google Flutter ครับ

พอดีมาถึงจุดที่ต้องการบันทึกข้อมูลเก็บไว้ในตัวแอพ ก็จะมีหลายวิธีเลย ไม่ว่าจะเป็น

  1. Share Preference (เก็บข้อมูลเล็กๆ)
  2. SQLite (เก็บแบบโครงสร้างใหญ่หน่อย และเป็น Relational Data)
  3. แบบ NoSQL (อันนี้แบบสำหรับคนติด MongoDB จากการทำเว็บ)

แต่ถ้าเราเลือก 2 แบบหลัง ส่วนนี้จะมีการทำงานเกี่ยวกับการเขียนไฟล์ลงบนเครื่องของลูกค้าด้วย นั่นก็คือไฟล์ Database นั่นล่ะครับ

ซึ่งการทำงานที่เห็นกันบ่อยๆ คือการใช้ package ที่ชื่อ path_provider ในการชี้ที่อยู่ในการเขียนไฟล์ฐานข้อมูลลงไปในตัวแอพของเรา

หลายๆ ครั้งเราจะลืมใช้ path_provider นี้ในการชี้ตำแหน่งไฟล์ครับ เช่นการเขียนลงไปในโฟลเดอร์ Document ของตัวแอพเรา สามารถหาตำแหน่งได้โดยใช้ function ของ path_provider

var docDir = await getApplicationDocumentsDirectory();

ถ้าจู่ๆ เราเขียนไฟล์ลงไปโดยตรง โดยที่ไม่ได้ชี้เข้าไปในส่วนที่ระบบอนุญาตให้เราทำงานได้ ก็จะทำให้เกิด error ขึ้น

ด้านล่างจึงเป็นโค้ดที่ควรใช้ในการทำงานกับไฟล์ Database หรือการบันทึกไฟล์บ่อยๆ ครับ

void connect() async {
    // get the application documents directory
    var dir = await getApplicationDocumentsDirectory();
    // ให้แน่ใจว่ามีโฟลเดอร์นี้อยู่จริงๆ นะ ไม่งั้น error อีก
    await dir.create(recursive: true);
    // สร้างที่อยู่ของไฟล์ database แบบเต็ม
    var dbPath = join(dir.path, this.dbName);
   
    // ตรงนี้จะเอา dbPath ไปใช้กับ SQFLite กับ NoSQL ก็ตามสบายครับผม
  }

เริ่มต้นเรียนรู้ Google Flutter กับโค้ชพลได้ที่

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

Posted on Leave a comment

สรุป 8 ข่าวสำคัญจากงาน Microsoft Build 2020

งาน Microsoft Build 2020 เริ่มแล้ว และตามธรรมเนียมก็จะมีการเปิดตัวผลิตภัณฑ์ใหม่ หรือความคืบหน้าของโครงการใหญ่จาก Microsoft เช่นเคย ในเบื้องต้นพลได้รวบรวมสรุป 8 ข่าวสำคัญที่สื่อต่างประเทศให้ความสนใจ มาให้พวกเราติดตามกันง่ายๆ ดังนี้ครับ

1. Project Reunion การเดินทางครั้งใหม่ รวมสายการพัฒนาแอพระบบ Windows ให้เป็นหนึ่งเดียว

ใครที่ตามการพัฒนาแอพให้กับระบบ Windows จะรู้ว่าเทคโนโลยีมันแตกสายมากมายจนเหมือนจะกู่ไม่กลับ ซึ่ง Microsoft ก็รู้จุดนี้ดี เลยประกาศโครงการ Reunion เพื่อรวบทุกสายการพัฒนาให้สามารถใช้ความสามารถของระบบได้เป็น 1 เดียว

โดยโครงการนี้ นอกจากจะกลายเป็นมาตรฐานเดียวสำหรับแอพรุ่นใหม่ๆ ในอนาคต ก็จะทำให้แอพในโปรเจคเดิมที่พัฒนาด้วยเทคโนโลยีรุ่นเก๋าอย่างเช่น C++, .NET (รวมถึง WPF, UWP, Window Forms) หรือแม้แต่ React Native สามารถใช้ทรัพยากรเดียวกันได้

นอกจากนี้ยังมีการประกาศ WebView 2 ที่ทำให้นักพัฒนาสามารถฝัง WebView ที่เป็น Chrome-based ลงใน Win App ที่ใช้เทคโนโลยีต่างๆ ได้

อ่านต่อเพิ่มเติมได้ที่นี่

2. Fluid Component ชิ้นส่วน UI บนเอกสาร Office ที่ใช้ได้บนทุกแอพ

เราเห็น Office ที่ติดตั้งบนคอมแล้ว เราเห็น Office 365 ที่ใช้งานผ่านเว็บได้แล้ว แต่ Fluid Component เป็นแนวคิดใหม่สำหรับการทำงานเอกสาร ที่น่าจะปฏิวัติวงการได้เลย

แนวคิดของ Fluid component คือช้ินส่วนของเอกสาร เช่นตาราง หรือกราฟ ที่การทำงานจะไม่ได้ยึดติดกับโปรแกรมใดโปรแกรมหนึ่ง มันสามารถเอาไปวางได้ทั้งใน Email outlook, Excel, หรือแม้แต่ Powerpoint

แถมข้อมูลใน Fluid component ยังสามารถแก้ไขร่วมกัน และอัพเดตแบบเรียลไทม์อีกด้วย

เราสามารถจินตนาการถึงตัวต่อเลโก้ ที่สามารถเอาไปวางบน Word, Excel, Powerpoint, Outlook หรือแม้แต่บน Web ก็ได้ครับ

อ่านรายละเอียดเบื้องลึกได้ที่นี่

3. Visual Studio จะรองรับการพัฒนาแอพที่ทำงานกับ Microsoft Team

หลังสถานการณ์โควิทระบาด การทำงานร่วมกันผ่านอินเตอร์เน็ต และแอพแชท หรือแอพประชุมออนไลน์กลายมาเป็นบทบาทสำคัญ ซึ่ง Microsoft Team ก็เป็นหัวเรือหลักด้านนี้

ตอนนี้ Microsoft ประกาศในงาน Build 2020 ว่า นักพัฒนาที่สนใจ สามารถสร้างแอพเสริมที่ทำงานใน Microsoft Team ได้เพื่อเพิ่มความแข็งแกร่งให้แพลตฟอร์ม ในการท้าชนกับ Zoom, Slack, และ Google Meet

อ่านรายละเอียดเพิ่มเติมได้ที่นี่

4. Edge เวอร์ชั่นต่อไป จะทำให้ Web App มีความสำคัญเทียบเท่าโปรแกรมคอมพิวเตอร์

เว็ย coronavirus.app ที่เป็น Progressive Web App

ไม่ใช่ข่าวใหม่นัก เรื่อง Web App และ Website ที่สามารถแปลงร่างตัวเองมาอยู่ในรูปแบบของแอพในคอมพิวเตอร์หรืออุปกรณ์พกพา (ดูเรื่อง PWA: Progressive Web App ที่พลเล่าไว้ได้ที่นี่ หรือดูคลิปวิดีโอแนะนำวิธีการสร้างได้ที่นี่)

เพียงแต่ Microsoft เล่นหนักในด้านนี้ และความคืบหน้าล่าสุด คือการประกาศว่า Edge Browser ของตัวเองเวอร์ชั่นต่อไป จะถือว่า Web ที่เขียนเป็น PWA จะสามารถดาวน์โหลดมาติดตั้งในเครื่อง และสามารถ uninstall ได้เหมือนโปรแกรมคอมพิวเตอร์ทั่วไป

ดูรายละเอียดแบบเต็มๆ ได้ที่นี่

5. เปิดตัว Azure Quantum แบบพรีวิว ในวงจำกัด

แม้ว่าคอมพิวเตอร์ควอนตัม จะดูห่างไกลจากการหามาใช้ส่วนตัวในปัจจุบัน แต่หนึ่งในผู้ให้บริการ Cloud อย่าง Microsoft ก็ได้นำระบบคอมพิวเตอร์ควอนตัม ขึ้นเป็นส่วนหนึ่งของ Azure ของตัวเองแล้ว

เวอร์ชั่นปัจจุบันยังเป็นพรีวิว และให้ทดสอบใช้งานในวงจำกัด ใครสนใจลองอ่านต่อที่นี่ได้เลย

6. Microsoft เปิดตัวโปรเจค Bonsai แพลตฟอร์ม AI สำหรับใช้ในโรงงานอุตสาหกรรม

ตอนนี้อะไรก็เป็น AI ซึ่งในด้านอุตสาหกรรมต่างๆ ก็คงอยากได้ AI ไปเพิ่มผลผลิต ลดต้นทุนกันถ้วนหน้า โดยแนวคิดของ Bonsai นั้นคือ Machine Teaching ที่สามารถเทรนปัญญาประดิษฐ์ในอุตสาหกรรมต่างๆ โดยเฉพาะ

เช่น แขนกลในโรงงานอุตสาหกรรม, ระบบขุดเจาะใต้ดิน, โรงไฟฟ้าพลังงานลม และแสงอาทิตย์ เป็นต้น ซึ่งเป้าหมายของ Bonsai คือรองรับอุตสาหกรรมที่หลากหลายตั้งแต่สายการผลิต, กลุ่มพลังงาน, สารเคมี, หรือไปถึงภาคการเกษตรเป็นต้น

สามารถอ่านรายละเอียดเพิ่มเติมได้ที่นี่

7. Microsoft วางแผนจะทำให้แอพลินุกซ์ สามารถใช้งานผ่าน Windows 10 เร็วๆ นี้

นอกจากจะตื่นตัวด้านเทคโนโลยีที่เกี่ยวข้องกับระบบ Linux มาช่วงหลังๆ นี้ นอกจากจะทำให้ Windows 10 สามารถทำงานกับ Kernel ของ Linux ได้เต็มตัวแล้ว (ที่พลเคยเล่าเกี่ยวกับ WSL และคลิปวิธีติดตั้งใช้งาน Linux บน Windows ที่นี่)

ก้าวต่อไปจะเกี่ยวกับการทำให้แอพบนฝั่ง Linux สามารถทำงานผ่าน Windows 10 ได้โดยตรง

ใครเลิฟ Linux ได้กรี้ดต่อเนื่องกันอีกแล้ว อ่านต่อที่นี่

8. แว่น Hololens 2 จะเริ่มวางจำหน่ายในเกาหลีใต้ และประเทศต่างๆ เพิ่มเติมปีนี้

จากโรคระบาด COVID-19 ก็ดูเหมือนอุปกรณ์ที่ทำให้พวกเราสามารถทำงานด้วยกันจากระยะไกลทุกตัวมีความน่าสนใจขึ้นมา โดย Hololens ก็เป็นหนึ่งในนั้น

ซึ่งรุ่น 2 ของแว่นตาแห่งอนาคตนี้ก็ได้รับเสียงตอบรับที่ดีในด้านอุตสาหกรรมขนาดใหญ่ รวมไปถึงด้านการแพทย์ด้วย

รายชื่อประเทศที่จะเริ่มจำหน่ายเพิ่มเติม ได้แก่ เกาหลีใต้, ไต้หวัน, ฮ่องกง, และสเปนครับ

อ่านต่อ

ติดตามเรื่องล่าสุด อ่านกระชับแบบนี้ก่อนใคร ผ่านช่องทางด้านล่าง

อุดหนุนโค้ชพล โดยการเริ่มเรียนรู้การสร้างแอพ หรือระบบต่างๆ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรม React Native สำหรับผู้เริ่มต้น

ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!

Posted on Leave a comment

Visual Studio Codespaces Pricing: ฟรี หรือเท่าไหร่?

หลังจากที่ทำคลิปแนะนำ Visual Studio Codespace และเขียนอธิบายไปวันก่อน มีคน inbox มาถามในแฟนเพจเยอะเลยเรื่องราคาค่าใช้จ่าย

เลยว่าจะมาสรุปคร่าวๆ ถึงค่าใช้จ่าย แบ่งตามประเภทการใช้งานแล้วกันนะครับ

แบบลิ้งค์เครื่องเราเข้า Codespace (Self-hosted)

ถ้าแบบใช้คอมเรา ลิ้งค์เข้า Codespace แล้วใช้หน้าเว็บของ Codespace เปิด VSCode เวอร์ชั่น Web เข้ามาทำงานกับเครื่องของเรา

แบบนี้เรียกว่า Self-hosted ครับ

ฟรี!! 🎉 🎉 🎉 (ต้นฉบับ: There is no charge for self-hosted environments.)

ส่วนวิธี setup ก็ดูได้ด้านล่างเลยครับ

แบบไปใช้ทรัพยากรบนเครื่อง Microsoft เค้า (Cloud-hosted)

ถ้าแบบเราไปใช้ทรัพยากรบนเครื่องเขา (เหมือนใช้ Cloud ของ Microsoft ที่ชื่อว่า Azure) อันนี้คิดเงินครับ

แบ่งเป็น 2 ส่วน

ส่วนตัวเก็บข้อมูล (Storage)

ถ้ามีการใช้บริการส่วนตัวเก็บข้อมูล ก็จะเริ่มคิดตั้งแต่เราสร้างส่วนตัวเก็บข้อมูล จนทำลายทิ้งไม่ใช่นะครับ

Storage costs for all instance types are $0.0114/hour.

ส่วนประมวลผล (Compute)

อันนี้คิดตามการใช้งานจริง แบ่งเป็นแพคเกจ Instance ที่สร้างขึ้นมาใช้งานครับ ตอนเขียนนี้มี 3 แบบ

  • Basic (2 cores, แรม 4GB, ฮาร์ดดิสก์ SSD 64 GB) ประมาณ 0.110 ดอลลาร์/ต่อชั่วโมง
  • Standard (4 cores, แรม 8GB, ฮาร์ดดิสก์ SSD 64 GB) ประมาณ 0.220 ดอลลาร์/ต่อชั่วโมง
  • Premium (8 cores, แรม 16GB, ฮาร์ดดิสก์ SSD 64 GB) ประมาณ 0.440 ดอลลาร์/ต่อชั่วโมง

ถ้าจะคำนวนเรตที่แน่นอนกว่านี้ สามารถใช้ Azure pricing calculator ได้ครับ

ติดตามความรู้ดีๆ ได้ก่อนใคร ติดตามได้ทาง:

หรือสนใจเริ่มต้นเรียนรู้เข้าใจง่าย กับคอร์สออนไลน์ของโค้ชพล ด้านล่างได้เลยครับ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรม React Native สำหรับผู้เริ่มต้น

ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!

อ้างอิง – Visual Studio Online Pricing

Posted on Leave a comment

บริษัทต่างๆ ใช้อะไรของ .NET บ้าง

หลังจากรู้จักกับ .NET Framework ในบทความ .NET Framework คืออะไร? ของ Codesanook กันมาแล้ว เรามาลองดูกับโค้ชพลกันดีกว่าว่า

เฮ้ย ถ้า .NET มันดีจริง ใครเอาตัวไหนไปใช้บ้าง?

ดีมั้ยๆ พลรวบรวมบริษัทที่มีการนำ .NET ไปใช้งาน มาให้เป็นแรงบันดาลใจที่นี่แล้วครับ

กดลิ้งค์ไปดูรายละเอียดเต็มๆ ได้นะ พลเอามาใส่ link ไว้แล้ว

Stack Overflow

หากจะมาเป็นโปรแกรมเมอร์ เป็น Developer จะต้องรู้จัก เซ่นไหว้เว็บนี้เอาไว้ เพราะมันคือขุมพลังมหาศาลที่ไม่สิ้นสุด ยิ่งกว่าพลังของซุปเปอร์แมน บวก มณี Infinity Stone รวมกัน

เทคโนโลยีของ Microsoft ทำให้มันง่ายสำหรับเรา. มันทำงานได้อย่างที่ควรจะเป็น. เราสามารถลดเวลาในการทำงานได้หลายเดือนเลยล่ะ

George Beech, System Administrator

เทคโนโลยีที่ใช้

  • .NET Core
  • ASP.NET

UPS

ถ้าเรารู้จัก Kerry ในเมืองไทย UPS ก็น่าจะเป็นที่รู้จักในระดับนานาชาติ กับบทบาทบริษัทส่งของระดับดูหรูหรา (สำหรับโค้ชพลอ่ะนะ อันอื่นก็​ FedEx กับ DHL)

เทคโนโลยีที่ใช้

  • Xamarin
  • Bot Framework
  • Azure Cognitive Services
  • Azure DevOps

SIEMENS: Healthineers

บริการและโซลูชั่นด้านสุขภาพของ Siemens ขับเคลื่อนด้วยพลังเทคโนโลยีของ Microsoft

.NET Core is an amazing technology. With .NET Core, our customers can now run the software on a wide spectrum of devices. It also gives us strong benefits with regard to operation costs in the cloud, because we can use it to run some workloads on Linux machines.

Thomas Gossler, Lead Architect, Digital Ecosystem Platform

เทคโนโลยีที่ใช้

  • .NET Core
  • Azure
  • Azure Cosmos DB
  • Azure Functions
  • Azure Kubernetes Service

American Cancer Society

องค์กรด้านมะเร็งของอเมริกา ได้ใช้เทคโนโลยีในการสร้างแอพพลิเคชั่นระดมทุน เพื่อต่อสู้กับโรคร้ายนี้ โดยมีการใช้งานระบบจ่ายเงินผ่าน Paypal, Apple Pay, และ Android Pay

เทคโนโลยีที่ใช้

  • Xamarin
  • Azure Cosmos DB
  • Azure DevOps
  • Azure App Service

Tencent

Microsoft ออกแบบ .NET Core ด้วยแนวคิด Microservice ทำให้เราสามารถนำมาใช้ในแบบการออกแบบระบบใหม่ของเราได้ง่าย.” –

Shanyou Zhang, Senior Software Architect

เทคโนโลยีที่ใช้

  • .NET Core
  • .NET Framework
  • Windows Server 2016 Standard

Jet.com

หนึ่งในบริษัท E-commerce ของอเมริกา ได้ใช้เทคโนโลยี .NET ในการสร้าง platform ขายออนไลน์ของตัวเอง ตั้งแต่การสร้างระบบแพลตฟอร์ม จนถึงโครงสร้าง IT ภายใน

เทคโนโลยีที่ใช้

  • Azure Active Directory
  • Azure API Management
  • Azure App Service
  • Azure Cache for Redis
  • Azure HDInsight
  • Azure SQL Database
  • Azure Virtual Machines
  • Microsoft Visual Studio
  • Office 365

มีอีกเยอะ

ไปดูได้ที่ Showcase ของ .NET กัน

ติดตามเรื่องดีๆ แบบนี้ได้ผ่านช่องทางด้านล่าง

รวมทั้งอุดหนุนโค้ชพล ผ่านการเรียนรู้คอร์สที่โค้ชพลออกแบบให้เรียนรู้ได้ง่ายด้านล่างครับ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรม React Native สำหรับผู้เริ่มต้น

ปูพื้นฐาน React และ React Native เข้าใจง่าย, ใช้ได้จริง, เนื้อหาใช้ในการทำแอพ Enterprise ขององค์กรได้

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!

Posted on Leave a comment

Flutter 1.17: สรุปการเปลี่ยนแปลง และของใหม่ใน

ทีม Flutter ได้ทำการประกาศเวอร์ชั่นเสถียรของ Flutter ช่วงต้นเดือนที่ผ่านมา ซึ่งเลขเวอร์ชั่นเสถียรใหม่นี้ คือเวอร์ชั่น 1.17 นั่นเอง พลลองสรุปรายละเอียดสำคัญมาไว้ข้างล่าง

คิดเห็นอย่างไร เม้นบอกด้านล่างได้นะครับ

ภาพรวม

  • มาพร้อมกับ Dart 2.8
  • ปรับปรุงประสิทธิภาพโดยรวมในด้านต่างๆ เช่นการเล่นแอนิเมชั่น, การเลื่อนภาพรูปหลายรายการ
  • ขนาดแอพเล็กลง
  • บน iOS เปลี่ยนมาใช้ Metal engine เร็วขึ้น 50% (อุปกรณ์ไหนไม่รองรับ ยังใช้ OpenGL เหมือนเดิม)
  • อัพเดต TextTheme ให้รับกับสเปค Material Design ปี 2018, โค้ดเก่าไม่มีปัญหา
  • ปรับปรุงเรื่อง Accessibility และการรองรับภาษาต่างประเทศ โดยเฉพาะภาษาเกาหลี
  • ใกล้ได้ใช้ Dart DevTools ตัวใหม่แล้ว เย้!
  • Hot Reload ทำงานได้ดีขึ้น
  • โปรเจค Android ปรับมาใช้ AndroidX โดยสมบูรณ์
  • ถ้าทดสอบแอพแล้ว crash (พัง) จะมีขึ้นแนวทางมาให้ส่ง bug

Widget ใหม่

NavigationRail

DatePicker

Text Selection เมนูใหม่

อันนี้ทำให้ปุ่มใหญ่และยาวขึ้นทำให้เลือกกดได้ง่าย

สำหรับ Android
สำหรับ iOS

Animation Package ใหม่

มีการปรับให้รองรับ สเปคของ Motion ใน Material Design ใหม่ด้วยนะ

ตัวอย่างของ Container Transforms จาก Animations Package

รองรับ Google Fonts

นักพัฒนาสามารถเอา Google Fonts มาใช้ใน Flutter ได้ง่ายขึ้น ดูรายละเอียดเพิ่มเติมที่นี่

ติดตามอัพเดตดีๆ แบบเดียวกัน ได้ตามช่องทางต่อไปนี้

เริ่มเรียน Google Flutter กับโค้ชพลได้เลย ด้านล่าง

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

อ้างอิง – Flutter Medium

Posted on Leave a comment

Dart: วิธีหาข้อมูลที่ต้องการตัวแรกจาก List

ภาษา Dart วันละนิดกับโค้ชพล

นี่เป็นหนึ่งในซีรี่ส์ภาษา Dart วันละนิดกับโค้ชพล สามารถดูทั้งหมดได้ที่นี่จ้า

จากการใช้งาน List ในการค้นหาข้อมูลที่ต้องการโดยใช้ .where() method บางคนอาจจะสังเกตเห็นว่ามีกลุ่ม method ที่อยู่ในกลุ่มเดียวกับ .where() อยู่อีกหลายตัวเลย

รอบนี้เราจะมาดูการใช้งาน .firstWhere() ที่จะเลือกข้อมูลที่พบตัวแรกออกมาใช้งานกันครับ

.firstWhere(): ขอตัวแรกที่เจอใน List ออกมาหน่อยซิ๊!

ซึ่งการทำแบบนี้จะทำให้เราสามารถได้ข้อมูลตัวแรกที่ต้องการออกมาใช้งานเลย ไม่เหมือนกับ .where() ธรรมดาที่เราจะได้ออกมาเป็นค่า Iterable ที่มีหลายจำนวน

class News {
  String title;
  String category;
  String url;
  
  News({this.title, this.category, this.url});
  
  @override 
  String toString(){
    return '(title: ${this.title}, category: ${this.category})';
  }
}


void main() {
  // สร้าง List ที่มี object ที่สร้างจาก News class อยู่ 3 ตัว
  List<News> news = [
    News(title: 'ภาษา Dart วันนี้ของเสนอ List', category: 'เคล็ดลับ'),
    News(title: 'เริ่มเรียน Flutter ออนไลน์ได้แล้ววันนี้', category: 'ประกาศ'),
    News(title: 'Adobe XD รองรับ Flutter แล้ว', category: 'ประกาศ'),
  ];
  // เทียบหาเฉพาะค่า category ที่ตรงกับประกาศ ซึ่ง .firstWhere() จะทำให้เราได้ News object มาใช้งานเลย
  var result = news.firstWhere((test) => test.category == 'ประกาศ');
  
  print(result);
  // (title: เริ่มเรียน Flutter ออนไลน์ได้แล้ววันนี้, category: ประกาศ)
}

ใช้กับอะไรหน่ะหรือ เช่น

  • ข่าวแรกในกลุ่มข่าวประเภทเดียวกัน
  • สินค้าชิ้นแรกในกลุ่มสินค้าประเภทเดียวกัน
  • พนักงานคนแรกในทีมพนักงาน

ติดตามเทคนิคแบบนี้ได้ผ่านช่องทางด้านล่าง

หรือจะเริ่มเรียน Dart และ Flutter กับโค้ชพลได้ด้านล่างเช่นกันครับ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

Posted on Leave a comment

Dart: มาหาข้อมูลเฉพาะตัวที่ต้องการใน List กัน

ไม่ว่าจะเคยเรียนวิธีการใช้งานมาจากเว็บของ Dart, คลิปที่โค้ชพลสอนบน Youtube หรือในคอร์สเรียนออนไลน์ภาษา Dart และ Google Flutter ตัวแปร List ก็น่าจะตอบโจทย์ของเราเป็นอย่างดี

แต่ถ้าเรามีข้อมูลเก็บไว้ใน List เป็นจำนวนมาก และต้องการแสดงเฉพาะข้อมูลที่ค้นหาล่ะ?

List มีอะไรช่วยเราได้ไหม?​ หรือต้อง For loop วนไป? มาดูกันเลย

แนะนำ List.where ไว้ตามหาสิ่งที่ต้องการ

List นั้นมีการเตรียม method ต่างๆ ไว้ให้พวกเราใช้งานจัดการข้อมูล ซึ่งหนึ่งในนั้นก็น่าจะเป็น .where ที่เอาไว้ทำการเลือกข้อมูลที่ต้องการออกมาจากทั้งหมดที่อยู่ใน List

เช่น การเลือกเฉพาะค่าที่มากกว่า 5 จากที่มีอยู่ใน List ทั้งหมด

List numberCollection = [0,1,2,3,4,5,6,7,8,9,10];
  
var result = numberCollection.where((test) => test > 5);
  
print(result);
// ผลลัพธ์ (6, 7, 8, 9, 10)

การแปลงผลลัพธ์การค้นหา ให้อยู่ในรูปแบบตัวแปร List

และในส่วนสุดท้าย คำสั่ง .where พวกนี้จะคืนค่ากลับมาเป็น Data Type ที่ชื่อ Iterable เสมอ ถ้ายังไงเราก็ต้องการผลลัพธ์การค้นหา เอาไปใช้แบบ List แน่ๆ ก็สามารถใช้ function ชื่อ .toList() นี้ตบท้ายครับ

List companies;
List resultOfSearch = companies.where().toList();

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

Posted on Leave a comment

Dart: รู้จักกับ dynamic type ดิ้นได้

ภาษา Dart วันละนิดกับโค้ชพล

นี่เป็นหนึ่งในซีรี่ส์ภาษา Dart วันละนิดกับโค้ชพล สามารถดูทั้งหมดได้ที่นี่จ้า

ภาษา Dart เป็นภาษาที่เรื่องของ Data type (ชนิดของค่าตัวแปร) นั้นเป็นทางเลือก อาจจะทำให้คนที่มาจากภาษาที่ซีเรียสเรื่อง Data Type นั้นงุนงงได้ ซึ่งนั่นเป็นที่มาของ Data Type ที่ชื่อ dynamic นั่นเอง

มาดูกันดีกว่าว่าใช้งานยังไง

การประกาศตัวแปร

การประกาศตัวแปรดั้งเดิมในภาษา Dart จะมีส่วนที่คล้าย JavaScript มาก นั่นคือใช้คีย์เวิร์ด var เป็นตัวประกาศ ดังนั้น จะไม่มีการกำหนด Data Type โดยตรงในตัวแปร

var username = "Teerasej";
var company = "Nextflow";
var rating = 4.8;
var available = true;

แต่ถ้าเกิดเราต้องการกำหนดชนิดของตัวแปรภาษา Dart โดยตรง ก็สามารถทำได้เช่นกัน

String username = "Teerasej";
String company = "Nextflow";
double rating = 4.8;
bool available = true;

ซึ่งหากเราเลือกใช้วิธีแรก (ใช้ var) และยังไม่มีการกำหนดค่าลงไปในตัวแปรดังกล่าว Dart จะมองว่าตัวแปรนี้มี data type เป็น dynamic นั่นเอง

var whatIsThis;

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

Posted on Leave a comment

Dart: การสร้าง Named constructor method

ภาษา Dart วันละนิดกับโค้ชพล

นี่เป็นหนึ่งในซีรี่ส์ภาษา Dart วันละนิดกับโค้ชพล สามารถดูทั้งหมดได้ที่นี่จ้า

สวัสดีครับ Dart วันละนิด วันนี้เราจะมาดูวิธีการสร้าง constructor method แบบตั้งชื่อกันนะครับ

สำหรับคนที่สร้าง Class เป็นแล้ว จะจำได้ว่าเราสามารถสร้าง function ที่เรียกอีกชื่อว่า Constructor method ได้

class Company {
    String name;
    String address;

    Company() {
    }
}

แต่ถ้าใช้ Flutter บ่อยๆ จะเห็นว่า นอกจากการสร้าง object จาก Class มาใช้งานแล้ว เรายังสามารถเรียกใช้ constructor method ได้โดยตรงจาก Class อีกด้วย

เช่น การสร้าง ListView อันโด่งดัง

ListView.builder()

หรือการแสดงภาพจาก Internet

Image.network()

พวกนี้คือ constructor method เหมือนกัน แต่เราเรียกว่า Constructor method แบบตั้งชื่อ (Named Constructor Method) นั่นเอง

วิธีสร้าง Named Constructor Method

การสร้าง Constructor Method แบบตั้งชื่อนั้น สามารถทำได้ โดยการเติมชื่อ method ตามหลัง Constructor ครับ

class Company {
    String name;
    String address;

    Company() {
    }
    
    Company.name(this.name);
    Company.address(this.address);
}

เวลาเรียกใช้ ก็สามารถทำได้แบบนี้ครับ

var nextflow = Company.name('Nextflow');
var apple = Company.address('Infinite loop');

ซึ่งนั่นหมายความว่าเราสามารถประยุกต์ใช้ในการสร้าง Object ของ class นั้นในรูปแบบที่หลากหลายได้ครับ

Posted on Leave a comment

Google Flutter: วิธีแก้ปัญหา CocoaPods installed but not working

สำหรับคนที่ใช้ macOS อาจจะเจอปัญหาตามด้านล่างนี้ ในการอัพเดตมาใช้ Flutter SDK เวอร์ชั่นล่าสุดนะครับ พลเองก็เจอเหมือนกัน

หากรัน flutter doctor จะเจอปัญหาดังนี้

[!] Xcode - develop for iOS and macOS (Xcode 11.4.1)
    ✗ CocoaPods installed but not working.
        You appear to have CocoaPods installed but it is not working.
        This can happen if the version of Ruby that CocoaPods was installed with is different from the one being used
        to invoke it.
        This can usually be fixed by re-installing CocoaPods. For more info, see
        https://github.com/flutter/flutter/issues/14293.
      To re-install CocoaPods, run:
        sudo gem install cocoapods

ปลุกปล้ำกับมันอยู่นานมาก โดยไล่ตาม StackOverflow 1, 2, 3 มาจบที่วิธีการแก้ด้านล่างนี้ครับ

อย่างแรกรันคำสั่ง 2 ตัวด้านล่างนี้ก่อน

sudo gem install -n /usr/local/bin cocoapods
brew unlink cocoapods && brew link cocoapods

จากนั้นให้รันคำสั่งนี้ปิดท้าย

rvmsudo gem install cocoapods

จากนั้นเช็ค ด้วย flutter doctor จะเห็นว่าข้อความเตือนหายไปแล้วจ้า

[✓] Xcode - develop for iOS and macOS (Xcode 11.4.1)

ติดตามวิธีแก้ปัญหาดีๆ แบบนี้ผ่านช่องทางต่อไปนี้ และเริ่มต้นเรียนรู้แบบเข้าใจง่ายด้านล่างครับ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

เปิดอบรมสร้าง Cross Platform Mobile Application ด้วย Ionic Framework

เหมาะสำหรับคนทำเว็บ, เริ่มต้น JavaScript ES6 และ Angular เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

โปรหน้าฝน! เรียนรอบสด รับคอร์สออนไลน์มูลค่ากว่า 5800 บาทฟรี!