Dart + Flutter is?
สวัสดีครับ ผม “กิ๊ก” คนเดิม วันนี้เราจะมาพูดถึง Dart กับ Flutter กัน
ต้องบอกก่อนว่า ผมไม่เคยเขียน native apps มาก่อน งานของผมส่วนใหญ่มักจะประชุม แล้วก็ทำ backend ด้วย Java และ Frontend ดัวย React… แล้วจู่ ๆ ก็มี Flutter เข้ามาเริ่มบูม โดยที่ข้อดี เด็ด ๆ ของ Flutter ก็คือ มันเขียนให้ออกได้ cross platform ทั้ง android และ iOS ซึ่งนั่นทำให้ผมรู้สึกอยากรู้อยากลองขึ้นมา
Dart
Dart เป็นภาษา Programming ตัวนึงซึ่ง เหล่า Developers ที่ Google และ ที่อื่น ๆ ใช้ เพื่อสร้าง applications ที่มีคุณภาพสูง
Designed by Lars Bak and Kasper Lund
Developed by Google
First appeared: 2011 หรือเมื่อ 6 ปีที่แล้ว แต่เพิ่งจะ release เมื่อ 2017 นี่เอง หลังจากนั้นก็เริ่มมีการ release version อื่น ๆ มากขึ้น
Productive
Dart มี syntax ที่ค่อนข้างเคลียร์ไม่ซับซ้อน เหมาะสำหรับพัฒนา web app, android และ iOS
Fast
Dart ช่วยเพิ่มประสิทธิภาพในการรวบรวมข้อมูล เพื่อให้ได้ประสิทธิภาพสูง และ คุณสามารถเริ่มต้นได้อย่างรวดเร็วทั้งงานบนมือถือ และ บนเว็บไซต์
Portable
Dart compiles ARM และ x86 code ทำให้ source ที่เขียนจาก Dart สามารถรันแบบ natively บน android, iOS และ อื่น ๆ ได้ สำหรับ web apps Dart จะเปลี่ยนเป็น JS ให้ด้วย
Approachable
Dart language มีไวยากรณ์ คล้าย ๆ กับพวก C++, C# หรือ Java ถ้าคุณพอจะมีความรู้ภาษาที่กล่าวมาข้างต้นอยู่แล้วหละก็ คุณจะใช้เวลาในการเรียนรู้ Dart ไม่นาน
ตัวอย่างการเขียนโปรแกรมบนภาษา Dart
// Define a function.
printInteger(int aNumber) {
print(‘The number is $aNumber.’); // Print to console.
}// This is where the app starts executing.
main() {
var number = 42; // Declare and initialize a variable.
printInteger(number); // Call a function.
}
การประกาศตัวแปร
String name = ‘Gique’; // type เป็น String
dynamic name = ‘Gique’; // type เป็น Object
int lineCount; // ถ้าเราไม่ assign ค่าใน int default จะเป็น null
นอกจากนี้ พวกไวยากรณ์ หรือ โครงสร้างภาษาต่าง ๆ ท่านสามารถ ไปดูต่อได้ที่ language-tour
Platform
Dart มีอยู่ด้วยกัน 3 Platform ใหญ่ ๆ
— Flutter สำหรับเขียน mobile app ใช้รันได้ทั้ง iOS และ Android
— Web สำหรับเขียน web application
— Server สำหรับเขียนฝั่ง Server side
ซึ่งในบทความนี้ เราจะลงไปกันที่ Flutter
Flutter
Flutter เป็น mobile app SDK ตัวนึงของ Google ที่เอาไว้สร้าง Interfaces ที่มีคุณภาพสูงบน iOS และ Android โดยการที่เราจะพัฒนา Applications นั้น ปัจจุบัน Flutter รองรับ 3 OS ใหญ่ของโลก ทั้ง Windows, OSX และ Linux
Flutter มีอะไรกันบ้าง
— Hot Reload
เค้าเคลมว่าสามารถ reload app ของคุณได้เร็วระดับมิลลิเซกเลยทีเดียว คำว่า reload ในที่นี้คือ reload เฉพาะจุดที่คุณแก้นะครับ ไม่ใช่การ reload ใหม่ทั้ง app (ถ้าเคยเขียน react มาก่อน มันก็คือ react-hot-loader นั่นแหละ)
— Expressive and Flexible UI
มี UI ที่มีความยืดหยุ่น เน้นไปที่ประสบการณ์ของผู้ใช้งานแบบเดิม โดยมีการแบ่ง Layer ซึ่งจะเข้ามาช่วยการปรับแต่ง UI ได้อย่างสมบูรณ์ และ มีการตอบสนองที่รวดเร็ว
— Modern, reactive framework
สร้าง UI ได้อย่างง่ายดาย ด้วย reactive framework, rich set platform, layout และ เครื่องมือพื้นฐานอื่น ๆ อีกมากมาย
— Native Performance
Flutter ได้รวบรวม widget โดยเอาความแตกต่างของ Platform ที่สำคัญต่าง ๆ ทั้ง scrolling, navigation, icons และ fonts เพื่อให้มีประสิทธิภาพการทำงานได้แบบ full native app ทั้ง iOS และ Android ซึ่งท่านสามารถเข้าไปเลือกใช้ เลือกชม widget ได้จาก ที่นี่
— Access native features and SDKs
ทำให้ applications ของคุณมีชีวิตชีวา ด้วย platform APIs, 3rd party SDKs และ native code
Flutter สามารถ reuse code เดิมที่มีอยู่แล้วของคุณได้ทั้ง Java, Swift หรือ ObjectiveC และ สามารถเข้าถึง native features SDKs บน iOS และ Android (อันนี้ไม่ชัวร์ ว่ามัน reuse ได้ระดับไหนนะครับ ยังไม่เคยเขียน ฮ่า ๆ)
Architectural overview: platform channels
Get Started: Install
การ Install Flutter “ไม่ง่าย” นักสำหรับมือใหม่นะครับ เรียกได้ว่ามือใหม่ อาจจะท้อจนเลิกไปเองเลยหละ 55
ด้วยความที่มันยาว เอาไว้ blog หน้า ผมจะมาเขียนต่อถึงการ HELLO WORLD with Flutter ทั้ง Android และ iOS นะครับ ส่วนเนื้อหาในบทความนี้ หากผิดพลาดประการใด ต้องขออภัยมา ณ ที่นี้ด้วยครับ