Jetpack Compose สำหรับเดสก์ท็อปเพิ่มเลเยอร์ Swing และการรองรับ Apple Silicon

JetBrains ได้เปิดตัว Jetpack Compose เวอร์ชันใหม่สำหรับเดสก์ท็อป ซึ่งเป็นเฟรมเวิร์กการพัฒนา UI ข้ามแพลตฟอร์มแบบโอเพ่นซอร์ส

หากคุณทำงานด้านการพัฒนาใดๆ คุณคงเคยได้ยินชื่อ JetBrains มาก่อน พวกเขาเป็นบริษัทที่อยู่เบื้องหลังชุด IDE ขนาดใหญ่ซึ่งรวมถึง IntelliJ (ฐานสำหรับ Android Studio), CLion, PhpStorm และอื่นๆ อีกมากมาย พวกเขายังเป็นคนทำ คอตลินซึ่งเป็นภาษาโปรแกรมข้ามแพลตฟอร์มที่ได้รับความนิยมอย่างมหาศาล

และ JetBrains ก็กลับมาอีกครั้ง เมื่อไม่กี่ปีที่ผ่านมา Google ได้เปิดตัวเครื่องมือเค้าโครงใหม่สำหรับ Android ที่เรียกว่า Jetpack Compose มันผ่านไปแล้ว การเปลี่ยนแปลงที่สำคัญค่อนข้างน้อยตั้งแต่นั้นมาแต่กลับกลายเป็นทางเลือกที่มีความสามารถ (แม้ว่าจะยังค่อนข้างไม่เสถียร) แทนเค้าโครง XML แบบคลาสสิกของ Android

Jetpack Compose เกี่ยวข้องกับ JetBrains อย่างไร ประการหนึ่งมันเขียนด้วย Kotlin แต่ JetBrains ยังได้ทำงานอย่างเงียบ ๆ ในการย้ายการเขียนไปยังพื้นที่เดสก์ท็อป เปิดเผยสู่สาธารณะในฐานะตัวอย่างสำหรับนักพัฒนาในช่วงแรกๆ และตอนนี้ JetBrains ก็พร้อมที่จะประกาศอย่างเป็นทางการแล้วว่ามีอยู่จริง

Jetpack เขียนคืออะไร?

ฉันพูดถึงมันเล็กน้อยในการแนะนำ แต่ฉันคิดว่ามันสมควรได้รับคำอธิบายเพิ่มเติม หากคุณเคยพัฒนาบน Android มาก่อน คุณอาจคุ้นเคยกับวิธีการทำงานของเลย์เอาต์ ขั้นแรก คุณออกแบบเลย์เอาต์ของคุณในไฟล์ XML จากนั้นคุณโต้ตอบกับเลย์เอาต์นั้นจาก Java หรือ Kotlin แม้ว่าจะใช้งานได้ แต่ก็ล้าสมัยไปเล็กน้อย และการแบ่งเค้าโครงตามภาษาต่างๆ อาจเป็นเรื่องยากที่จะจัดการ

อีกทางเลือกหนึ่งคือ Google เริ่มพัฒนา Jetpack Compose Compose เป็นเอ็นจิ้นเลย์เอาต์สำหรับ Android ที่สร้างขึ้นบน Kotlin เค้าโครงและโค้ดลอจิกทั้งหมดของคุณรวมอยู่ในที่เดียว ซึ่งทำให้การโต้ตอบง่ายขึ้นมาก นอกจากนี้ยังมีการประกาศ แทนที่จะเป็นรูปแบบที่จำเป็นของเค้าโครง XML

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

Jetpack เขียนสำหรับเดสก์ท็อป

ดังนั้น Compose จึงเป็นทางเลือกเค้าโครงที่ดีสำหรับแอป Android ทั่วไป แต่มันไม่ใช่ (ปกติ) ข้ามแพลตฟอร์ม นั่นคือสิ่งที่ JetBrains เข้ามา บริษัทได้ย้าย Jetpack Compose ไปยังพื้นที่เดสก์ท็อปโดยรองรับ Windows, Linux และ macOS (ทั้ง Intel และ ARM)

แม้ว่าจะมีเอ็นจิ้นเลย์เอาต์อื่น ๆ ที่มีอยู่สำหรับเดสก์ท็อป เช่น Electron, JavaFX และ UWP แต่ตอนนี้ก็ยังยุ่งอยู่เล็กน้อย บางตัวไม่ใช่ข้ามแพลตฟอร์ม ดังนั้นจึงใช้งานได้กับระบบปฏิบัติการเดียวเท่านั้น ส่วนอื่นๆ นั้นเป็นแพลตฟอร์มข้ามแพลตฟอร์มในทางเทคนิค แต่ต้องใช้การทำงานจำนวนมากในการเผยแพร่ และถึงกระนั้น ยังมีอีกหลายคนที่ลำบากในการทำงานด้วย เช่น JavaFX

ในทางกลับกัน Jetpack Compose สำหรับเดสก์ท็อปนั้นค่อนข้างใช้งานง่าย รองรับการปรับขนาดการแสดงผล มีสไตล์ในตัว และ (เกือบ) ข้ามแพลตฟอร์มได้อย่างสมบูรณ์ แม้ว่าคุณจะไม่สามารถคอมไพล์สำหรับการแจกแจงทั้งหมดจากระบบปฏิบัติการเดียวได้ แต่ตัวโค้ดเองก็สามารถพกพาได้อย่างสมบูรณ์ เช่นเดียวกับ Android แอปแบบแพ็กเกจนั้นใช้ Java แม้ว่าผู้ใช้จะไม่จำเป็นต้องติดตั้ง JDK เพื่อใช้งานก็ตาม

ความเข้ากันได้ข้าม

เนื่องจาก Compose สำหรับเดสก์ท็อปยังใหม่อยู่ จึงขาดคุณสมบัติบางอย่างไป เพื่อช่วยให้นักพัฒนาแก้ไขข้อจำกัดเหล่านี้ Compose สำหรับเดสก์ท็อปสามารถทำงานร่วมกับเอนจิ้นเค้าโครง Java ที่ได้รับความนิยมมากกว่าสองตัว ได้แก่ JavaFX และ Swing หากคุณมีแอปเดสก์ท็อปที่พัฒนาในกลไกหนึ่ง (หรือทั้งสองอย่าง) คุณสามารถเริ่มเปลี่ยนไปใช้ Compose ในขณะที่ยังคงรักษาโค้ดเบสปัจจุบันของคุณไว้ได้

แอนดรอยด์ + เดสก์ท็อป

จะทำอย่างไรถ้าคุณต้องการนำแอป Compose Android ของคุณมาไว้บนเดสก์ท็อป คุณก็ทำแบบนั้นได้เช่นกัน องค์ประกอบ UI ของแอปของคุณสามารถแชร์ระหว่าง Android และเดสก์ท็อปได้อย่างง่ายดาย คุณจะไม่สามารถแบ่งปันทุกสิ่งได้ แต่จะทำให้การพัฒนาง่ายขึ้นอย่างแน่นอน

การสนับสนุนแอปเปิ้ลซิลิคอน

ฉันได้กล่าวไปแล้วข้างต้น แต่ฉันจะพูดถึงมันอีกครั้ง ที่ Apple Silicon Mac ใหม่ ค่อนข้างน่าทึ่ง แต่โปรเซสเซอร์นั้นใช้สถาปัตยกรรม ARM CPU ซึ่งหมายความว่าแอป macOS จำนวนมากกำลังทำงานผ่านตัวแปล Rosetta 2 x86 แม้ว่า Apple จะทำงานได้ดีกับการแปลนั้น แต่โปรแกรม ARM ดั้งเดิมก็ยังทำงานได้ดีกว่า

Jetpack Compose สำหรับเดสก์ท็อปรองรับ Apple Silicon โดยกำเนิด นั่นหมายความว่าคุณจะไม่ต้องกังวลเกี่ยวกับประสิทธิภาพที่ลดลงจากการแปลหรือเกี่ยวกับการสนับสนุนในอนาคตเมื่อ Apple หยุดให้บริการ

ฟังก์ชั่นการทำงาน

เป็นเรื่องดีและดีที่ JetBrains ได้สร้างเครื่องมือเค้าโครงใหม่สำหรับเดสก์ท็อป แต่ใครจะบอกว่ามันดีกว่าที่เรามีตอนนี้

ฉัน.

ฉันใช้บิลด์ล่าสุดที่มีอยู่ในขณะที่เขียนสิ่งนี้ (0.2.0-build132) เพื่อสร้างแอปผู้ให้สิทธิ์อย่างง่ายสำหรับ SystemUI Tuner เนื่องจากฉันไม่คุ้นเคยกับการเขียนและการออกแบบการประกาศ จึงเป็นเรื่องยากสำหรับฉันมากกว่าแอปเค้าโครง XML เล็กน้อย แต่ฉันทำได้ และใช้งานง่ายกว่า JavaFX มาก

แม้ว่าการรองรับธีม (เช่น โหมดมืด) ยังคงไม่ค่อยดีนัก แต่ก็ค่อนข้างง่ายที่จะสร้างเลย์เอาต์แบบอินเทอร์แอคทีฟ และนอกเหนือจากการกะพริบเล็กน้อยเมื่อปรับขนาดหน้าต่าง ทุกอย่างทำงานได้ดี

หากคุณต้องการตรวจสอบแอป สามารถดูซอร์สโค้ดได้ที่ GitHub. เพียงนำเข้าด้วย IntelliJ หรือ Android Studio และควรจะพร้อมใช้งาน


โดยส่วนตัวแล้ว ฉันค่อนข้างตื่นเต้นกับ Jetpack Composer สำหรับเดสก์ท็อป ฉันไม่รู้ด้วยซ้ำว่าเคยมีมาก่อน แต่มันก็เป็นเครื่องมือเค้าโครงเดสก์ท็อปที่ฉันเลือกอยู่แล้ว คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับ Jetpack Compose สำหรับเว็บไซต์เดสก์ท็อป หรือ บน GitHub.

คุณคิดอย่างไรเกี่ยวกับเรื่องนี้? มันคุ้มค่าที่จะลองดูและอาจใช้แทนเฟรมเวิร์กอื่น ๆ ที่มีอยู่หรือไม่? แจ้งให้เราทราบ!

เครดิตภาพเด่น: JetBrains บน GitHub