The introduction to Universal Windows Platform Community Toolkit (ภาคภาษาไทย)

บทนำ

อย่างที่หลาย ๆ ท่านทราบกันว่า หนึ่งในแกนกลางหลักสำคัญของ Windows 10 นั่นก็คือ แอปพลิเคชันบนแพลตฟอร์ม Universal Windows Platform (หรือ UWP) ที่อยู่บน Windows Store ซึ่งทำให้นักพัฒนาลดเวลาการพัฒนาแอปพลิเคชันบนหลากหลายอุปกรณ์ในแพลตฟอร์มของ Windows 10 ลงไปอย่างมาก

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

แน่นอนว่าไมโครซอฟท์เองก็ไม่ได้เพิกเฉยเกี่ยวกับปัญหานี้ และนี่จึงเป็นที่มาของโครงการ Universal Windows Platform Community Toolkit ที่เป็นการเปิดโอกาสให้นักพัฒนาเข้ามามีส่วนร่วมในการพัฒนาระบบเบื้องหลังของ UWP

ซึ่งตัว UWP Community Toolkit นั้นมีเป้าหมายสำคัญอยู่ 3 อย่างด้วยกัน ประกอบด้วย

  • ลดขั้นตอนการพัฒนาแอปพลิเคชันบน UWP ด้วยเครื่องมือที่มีอยู่แล้วในชุดการพัฒนานี้ หน้าที่ของนักพัฒนาเหลือเพียงแค่นำเข้าโครงการนี้ผ่าน NuGet บน Visual Studio เท่านั้น
  • เปิดซอร์สโค้ดบน GitHub ผ่านอนุสัญญาของสถาบันเทคโนโลยีแมสซาชูเซตส์ (หรือ MIT) ซึ่งก็แปลว่านักพัฒนาสามารถเข้ามาร่วมพัฒนา และใช้งานโค้ดจากโครงการนี้ได้โดยไม่ต้องจ่ายเงินให้กับทางไมโครซอฟท์แม้แต่สตางค์แดงเดียว
  • การกำหนดแนวทางของ UWP SDK ในอนาคตจากเสียงของนักพัฒนา (อธิบายง่าย ๆ ก็คือโครงการนี้ เปรียบเสมือน Windows Insiders ในโลกของนักพัฒนานั่นเอง)

สำหรับโครงการนี้นั้นสามารถนำโค้ดต่าง ๆ ภายในโครงการนี้ไปใช้กับโครงการแอปพลิเคชันที่พัฒนาบนพื้นฐานของ UWP ในภาษา C# และ VB.NET ได้ทันที โดยแอปพลิเคชันที่เขียนร่วมกับโครงการนี้ จะใช้งานได้ก็ต่อเมื่ออุปกรณ์ที่รัน Windows 10 นั้นใช้เฟิร์มแวร์ November Update (รหัส 10586) ขึ้นไปแล้วเท่านั้น และในเครื่องที่ใช้ในการพัฒนาแอป จะต้องติดตั้ง Visual Studio 2015 Update 3 พร้อมติดตั้ง Windows 10 SDK เป็นที่เรียบร้อยแล้ว


ข้อดีและ API พื้นฐานของ UWP Community Toolkit

UWP Community Toolkit นั้นออกแบบมาเพื่อให้นักพัฒนาต่าง ๆ ลดเวลาที่ใช้ในการพัฒนาแอปพลิเคชันลงไปได้มากพอสมควร อย่างเช่น จากเดิมการเขียนแอปเพื่อรองรับการเชื่อมต่อทวิตเตอร์ จำเป็นต้องเขียนโค้ด REST API ที่ทางทวิตเตอร์กำหนดไว้ เปลี่ยนเป็นการเขียนโค้ดที่ผ่านการเรียก REST API ของทวิตเตอร์บน UWP Community Toolkit

ผลที่ได้ นอกจากจะช่วยลดเวลาในการพัฒนาแอปพลิเคชันแล้ว ยังทำให้โค้ดที่รันผ่าน API ตัวนี้สะอาดตาขึ้น รวมถึงช่วยลดโอกาสการเกิดบั๊กไม่พึงประสงค์จากากรเขียนโค้ดเองได้มากพอสมควรเลยทีเดียว ซึ่งตัว UWP Community Toolkit นั้นมี API ต่าง ๆ ที่พร้อมให้นักพัฒนาใช้งานมากกว่า 23 ตัว ครอบคลุมทั้งในส่วนของ frontend และ backend โดยประกอบด้วยฟีเจอร์ในหมวดต่าง ๆ ดังต่อไปนี้

uwp-community-toolkit-overview
ลิสต์รายชื่อ API บน UWP Community Toolkit
  • การควบคุม ประกอบด้วย
    • การแสดงผลแบบตารางที่ปรับตามสภาพขนาดหน้าจอ
    • มุมมองรายชื่อที่มาพร้อมกับฟังก์ชันเลื่อนลงเพื่อรีเฟรช
    • ปุ่มเมนูด้านบนซ้าย (หรือปุ่ม hamburger)
    • เมนูเลือกตามระยะ (เช่น เลือกตามระยะเวลา, เลือกตามระยะระหว่างเปอร์เซ็นต์)
    • การแสดงผลภาพในแบบต่าง ๆ
    • การกำหนดตัวอักษรที่หัวข้อแต่ละหน้า
    • ตัวแสดงการปรับระดับในรูปแบบหน้าปัดอัตราเร่งของรถ
    • ตัวเลือกที่สามารถใช้คำสั่งปัดซ้ายหรือขวาได้
    • ไทล์ที่สามารถเปลี่ยนการแสดงผลได้ (คล้าย ๆ กับสไลด์โชว์)
  • การแจ้งเตือน ประกอบด้วย
    • Live tile
    • ป้ายแจ้งเตือน
  • ตัวช่วยด้านแอนิเมชัน ประกอบด้วย
    • แอนิเมชันเลือนหายไป (fade animation)
    • แอนิเมชันเบลอ (blur animation)
    • แอนิเมชันย่อขยาย (scale animation)
    • แอนิเมชันชดเชยสี (offset animation)
    • แอนิเมชันหมุน (rotate animation)
  • ตัวช่วยด้านบริการ ประกอบด้วย
    • ตัวเชื่อมต่อและบริการของ Bing
    • ตัวเชื่อมต่อและบริการของ Facebook
    • ตัวเชื่อมต่อและบริการของ Twitter
  •  ตัวช่วยด้านโค้ด ประกอบด้วย
    • ตัวช่วยด้านสี
    • ตัวช่วยด้านการเชื่อมต่อ
    • ตัวช่วยด้านการเรียกไฟล์
    • ตัวช่วยด้านการสตรีมข้อมูลออนไลน์

สำหรับใครที่อยากจะเห็นภาพว่าตัว UWP Community Toolkit มีเครื่องมืออะไรบ้าง สามารถดาวน์โหลดและดูเทมเพลตแอปตัวอย่างได้ที่ Windows Store ซึ่งจะมีตัวจำลองสถานการณ์ต่าง ๆ และมีโค้ดให้ทดลองแก้ได้ทันที

UWP Community Toolkit App UWP Community Toolkit App


เริ่มต้นใช้งาน UWP Community Toolkit

การเริ่มต้นเปิดใช้งาน UWP Community Toolkit นั้นไม่มีอะไรยุ่งยากซับซ้อนอย่างที่หลายคนคิด เพราะนักพัฒนาไม่จำเป็นต้องดาวน์โหลดซอร์สโค้ดเหล่านี้มาเพื่อใช้งาน โดยขั้นตอนต่าง ๆ มีดังนี้

ขั้นตอนแรก เปิด Visual Studio 2015 (ย้ำอีกรอบว่าต้องเป็นเวอร์ชัน Update 3 ขึ้นไปเท่านั้น)

image4

ขั้นที่สอง สร้างโครงการใหม่ (สำหรับคนที่มีโครงการอยู่แล้ว สามารถข้ามไปข้อที่ 4 ได้เลย) โดยมีวิธีดังนี้

  • เลือกไปที่ File => New => Project (หรือกด CTRL + Shift + N บนคีย์บอร์ด)
  • เลือกที่ Templates => Visual C# หรือ Visual Basic => Windows => Universal

image5ขั้นที่ 3 สำหรับหน้าที่ให้เลือกเวอร์ชั่นของ Windows 10 ให้เลือกตรง Target Version และ Minimum Version ให้เป็น Windows 10 (10.0; Build 10568) หรือ Windows 10 Anniversary Edition (10.0; Build 14393) หรือใหม่กว่าเท่านั้น

image6

ขั้นที่ 4 ตรงบริเวณ Solution Explorer คลิกขวาตรงชื่อของโครงการที่เราได้สร้างและตั้งชื่อไว้ (ในที่นี้คือ UWPCommunityToolkitDemo) กด Manage NuGet Packages…

image7

ขั้นที่ 5 กดที่ Browse หาคำว่า Microsoft.Toolkit.UWP แล้วเลือกติดตั้งตัวที่ต้องการใช้ (ในกรณีนี้จะติดตั้งตัว Microsoft.Toolkit.UWP ซึ่งครอบคลุมฟีเจอร์ทุกตัวของ UWP Community Toolkit แต่ในกรณีที่ทำแอปสำหรับลง Windows Store แนะนำว่าให้ติดตั้งเป็นรายตัวจะดีกว่า)

image8

ขั้นที่ 6 เข้าไปที่หน้าไฟล์ XAML (สำหรับเอฟเฟกต์เบื้องหน้า) หรือไฟล์ C# (สำหรับโครงสร้างเบื้องหลัง)

  • สำหรับการแทรกในไฟล์ XAML (.xaml) ให้เพิ่มโค้ดดังต่อไปนี้ภายในแท็ก <Page> ตามโค้ดดังต่อไปนี้

xmlns:controls="using-Microsoft.Toolkit.Uwp.UI.Controls"

  • สำหรับการแทรกในไฟล์ C# (.cs) ให้เปิดการเรียกใช้ชุดคำสั่ง UWP Community Toolkit ผ่านการเขียน using Microsoft.Toolkit.Uwp; ก่อนตัว object (หรือก่อนบรรทัดที่เขียนว่า Namespace) ตัวแรก

uwp

ขั้นสุดท้าย เริ่มโค้ดได้ทันที โดยจะก็อบโค้ดมาจากตัวแอปตัวอย่าง หรือจะเขียนใหม่ทั้งหมดโดยอ้างอิงจาก documentation บน Windows Dev Center ก็สามารถทำได้ทั้งคู่


การรายงานปัญหาและการมีส่วนร่วมกับนักพัฒนา

microsoft-loves-open-source

Universal Windows Platform Community Toolkit ไม่ได้เป็นแค่เครื่องมือที่ออกแบบมาเพื่อความสะดวกสบายและลดการเกิดปัญหาระหว่างการพัฒนาแอปพลิเคชันบน Universal Windows Platform เท่านั้น แต่ยังเป็นเครื่องมือที่ทำขึ้นมาเพื่อให้นักพัฒนาต่าง ๆ มีส่วนร่วมเกี่ยวกับอนาคตของแพลตฟอร์มนี้ในฝั่งของนักพัฒนาอีกด้วย

และเนื่องด้วยโครงการนี้เป็นโครงการที่ไมโครซอฟท์เปิดซอร์สโค้ดให้นักพัฒนาต่าง ๆ เข้ามาแก้ไขและปรับปรุงให้โครงการนี้ดีขึ้นได้ (แนวทางเดียวกันกับ Office UI Fabric, .NET Core และ Project Islandwood นั่นแหละครับ) ทำให้นักพัฒนาสามารถ fork โครงการจาก GitHub มาเป็นโครงการแยกส่วนตัวได้ทันที

และเมื่อเราเห็นว่าโค้ดเหล่านี้มีช่องโหว่อันตราย หรือมีบั๊กที่ทำให้ไม่สามารถใช้งานได้ เราสามารถนำโครงการที่เราแยกส่วนตัวนั้นมาแก้ไข ทดสอบ และนำขึ้นโครงการผ่านการ pull request เพื่อให้ไมโครซอฟท์ได้พิจารณาในการผนวกโค้ดที่แก้ไขปัญหาเหล่านี้เพื่อทำให้ตัวชุดนักพัฒนาสมบูรณ์แบบยิ่งขึ้น

อย่างไรก็ดี ไมโครซอฟท์เองก็เล็งเห็นว่า ยังมีนักพัฒนาบางส่วนที่อยากได้ API เพิ่มเติม หรือเครื่องมือที่ให้มายังมีไม่พอใช้ ด้วยเหตุนี้ไมโครซอฟท์เองจึงเปิดหน้า UWP Community Toolkit’s UserVoice ขึ้นมา เพื่อให้นักพัฒนาต่าง ๆ สามารถเสนอ API ใหม่ ๆ หรือสิ่งที่อยากให้เพิ่มเข้าไปในโครงการนี้ นี่จึงเป็นหนึ่งในโครงการที่ทำมาเพื่อนักพัฒนาโดยเฉพาะ และยังเป็นหนึ่งในแรงผลักดันให้นักพัฒนาเข้ามาพัฒนาแอปพลิเคชันบนแพลตฟอร์มนี้มากขึ้นนั่นเอง


สรุป: เมื่อนักพัฒนากลายเป็นศูนย์กลางของการพัฒนาระบบ

จากบทความนี้ จะเห็นได้ว่า Universal Windows Platform Community Toolkit นั้น นอกเหนือไปจากการเป็นเครื่องมือที่ช่วยอำนวยความสะดวกในการพัฒนาแล้ว ยังเป็น “แพลตฟอร์ม” ที่ไมโครซอฟท์ตั้งใจทำงานร่วมกันกับนักพัฒนาตัวจริงเพื่อปรับปรุงให้แพลตฟอร์มนี้เป็นแพลตฟอร์มที่แข็งแกร่งขึ้น และที่สำคัญที่สุดคือ การที่ให้นักพัฒนาเป็นจุดศูนย์กลางของการพัฒนานั้น สะท้อนแนวทางของไมโครซอฟท์ในฝั่งของนักพัฒนาที่เปลี่ยนไปโดยสิ้นเชิงด้วยนั่นเอง

ณ เวลานี้ เริ่มมีแอปจำนวนหนึ่งที่ใช้เครื่องมือนี้ในการพัฒนาแอปพลิเคชันแล้ว อย่างเช่น แอป MyTube! ที่นำเอฟเฟกต์เบลอเข้าไปอยู่ในส่วนวิดีโอเวลาไล่หาวิดีโอใหม่ ๆ ซึ่งถือว่าเป็นการเริ่มนำไปใช้ได้ค่อนข้างเร็ว เพราะเครื่องมือนี้มีอายุเพียงแค่ 2 เดือนเท่านั้น!

ในครั้งต่อไป จะมาพูดถึงการพัฒนาบนโค้ดจริง ๆ โดยเริ่มจากการพัฒนาฝั่ง frontend ก่อนครับ

แหล่งข้อมูลสำหรับการอ้างอิงในบทความนี้

Discover more from Be1con's Blog

Subscribe now to keep reading and get access to the full archive.

Continue reading