Amper คือเครื่องมือการกำหนดค่าและสร้างโปรเจ็กต์ เป้าหมายคือการมอบประสบการณ์ผู้ใช้ที่ยอดเยี่ยมและราบรื่นและการสนับสนุน IDE เราเชื่อว่าสามารถทำได้โดย:
ให้ DSL การกำหนดค่าที่เปิดเผยซึ่งเป็นมิตรกับนักพัฒนาและ IDE เพื่อลดความซับซ้อนไม่เพียงแต่การตั้งค่าเริ่มต้นเท่านั้น แต่ยังปรับปรุงการบำรุงรักษาและให้ IDE ช่วยเหลือในการกำหนดค่าอัตโนมัติได้อย่างน่าเชื่อถือ
การรวมชุดเครื่องมือและส่วนขยายที่เข้ากันได้ที่คัดสรรมาอย่างดี เพื่อรองรับสถานการณ์ส่วนใหญ่โดยไม่จำเป็นต้องค้นหาปลั๊กอินที่เข้ากันได้
เลือกจุดเพิ่มขยายอย่างระมัดระวัง - เพื่อรักษาโมเดลจิตโดยรวมและ UX ของการกำหนดค่าให้สอดคล้องกัน และเพื่อหลีกเลี่ยงการเรียกใช้โค้ดจากบุคคลที่สามโดยไม่คาดคิด
โดยพื้นฐานแล้ว เรามุ่งหวังที่จะบรรลุประสบการณ์ที่ได้รับการทดสอบอย่างดีและมีความคิดมาอย่างดี เช่นเดียวกับ JetBrains IDE
ขณะนี้เรากำลังพิจารณาแง่มุมต่างๆ รวมถึงการกำหนดค่าโครงการสำหรับการสร้าง บรรจุภัณฑ์ การเผยแพร่ และอื่นๆ อย่างไรก็ตาม ในขั้นตอนปัจจุบัน จุดเน้นหลักอยู่ที่การกำหนดค่าโครงการสำหรับการสร้าง แม้ว่ากรณีการใช้งานปัจจุบันคือ Kotlin และ Kotlin Multiplatform แต่ Amper ยังรองรับ Java และ Swift ด้วย (ตามข้อกำหนดสำหรับหลายแพลตฟอร์ม) อย่างไรก็ตาม วิธีการกำหนดค่าเดียวกันนี้อาจใช้ได้กับกลุ่มภาษาและกลุ่มเทคโนโลยีอื่นๆ ในอนาคต
Amper มีอยู่เป็นเครื่องมือสร้างแบบสแตนด์อโลนรวมถึงปลั๊กอิน Gradle สำหรับโปรเจ็กต์ที่ใช้ Gradle ที่มีอยู่ ทั้งสองเวอร์ชันมีรูปแบบการกำหนดค่าที่เป็นหนึ่งเดียว ใช้งานง่าย และประกาศได้
คุณสมบัติที่รองรับ:
การสร้างและรันแอปพลิเคชัน JVM, Android, iOS, Linux และ macOS
การสร้างไลบรารี่ Multiplatform ของ Kotlin
กำลังดำเนินการทดสอบ
การผสมโค้ด Kotlin, Java และ Swift
ความช่วยเหลือด้านโค้ดสำหรับไฟล์โมดูลใน IntelliJ IDEA และ Fleet
โครงการหลายโมดูล
การใช้การเขียนหลายแพลตฟอร์ม
การใช้เขียนทรัพยากรหลายแพลตฟอร์ม*
การทำงานร่วมกันของ Gradle รวมถึงการรวมโมดูล Amper และ Gradle ไว้ในโปรเจ็กต์เดียว*
บูรณาการกับแคตตาล็อกเวอร์ชัน Gradle*
เค้าโครงโปรเจ็กต์ที่เข้ากันได้กับ Gradle เพื่อการโยกย้ายที่ราบรื่นของโปรเจ็กต์ Gradle ที่มีอยู่*
* เฉพาะในโครงการที่ใช้ Gradle เท่านั้น
ทิศทางในอนาคต:
รองรับสถานการณ์และการกำหนดค่า Kotlin และ Kotlin Multiplatform เพิ่มเติม
ประเภทผลิตภัณฑ์และแพลตฟอร์มเพิ่มเติม เช่น watchOS, Windows เป็นต้น
ประเภทการทดสอบเฉพาะแพลตฟอร์ม รวมถึงการทดสอบที่ใช้อุปกรณ์ Android
รองรับการพึ่งพาแบบเนทีฟ เช่น CocoaPods, Swift Package Manager
บรรจุภัณฑ์และการตีพิมพ์
การสนับสนุนรูปแบบบิวด์
ความสามารถในการขยาย
เพื่อการเริ่มต้นอย่างรวดเร็ว:
คำแนะนำในการตั้งค่าและการใช้งาน
บทช่วยสอน
เอกสารประกอบ
ตัวอย่างโครงการ
คู่มือการโยกย้าย Gradle
Amper ใช้ YouTrack เพื่อติดตามปัญหา สร้างปัญหาใหม่ที่นั่นเพื่อรายงานปัญหาหรือส่งแนวคิด
ก่อนที่จะรายงานปัญหา โปรดตรวจสอบคำถามที่พบบ่อย
คุณยังสามารถเข้าร่วมช่อง Slack เพื่อสนทนาหรือแบ่งปันความคิดเห็นของคุณโดยใช้แบบฟอร์มคำติชม
มีหลายวิธีในการลองใช้ Amper:
ใน IntelliJ IDEA EAP ล่าสุด สำหรับโครงการ JVM และ Android (คำแนะนำ)
ใน JetBrains Fleet ล่าสุดสำหรับโครงการ JVM, Android และ Multiplatform (คำแนะนำ)
การใช้ Amper แบบสแตนด์อโลนจากบรรทัดคำสั่ง
การใช้ Gradle-Based Amper จากบรรทัดคำสั่งเพื่อสร้างโปรเจ็กต์ Amper ที่ใช้ Gradle
นี่คือ JVM ขั้นพื้นฐาน "Hello, World!" โครงการ:
ไฟล์ main.kt
และ MyTest.kt
เป็นเพียงไฟล์ Kotlin ทั่วไปที่ไม่มีอะไรพิเศษ ส่วนที่น่าสนใจคือ module.yaml
ซึ่งเป็นไฟล์คอนฟิกูเรชันโมดูล Amper สำหรับโครงสร้างโครงการข้างต้น มันจะเป็นดังนี้:
# สร้างผลิตภัณฑ์แอปพลิเคชัน JVM: jvm/app
แค่นั้นแหละ. ชุดเครื่องมือ Kotlin และ Java เฟรมเวิร์กการทดสอบ และฟังก์ชันการทำงานที่จำเป็นอื่นๆ ได้รับการกำหนดค่าและพร้อมใช้งานทันทีที่แกะกล่อง คุณสามารถสร้าง รัน เขียนและรันการทดสอบ และอื่นๆ อีกมากมาย หากต้องการข้อมูลโดยละเอียดเพิ่มเติม โปรดดูตัวอย่างแบบเต็ม
ตอนนี้ มาดูโปรเจ็กต์ Compose Multiplatform ด้วยแอป Android, iOS และเดสก์ท็อป JVM โดยมีโครงสร้างโปรเจ็กต์ต่อไปนี้ใน Fleet:
สังเกตว่าโฟลเดอร์ src/
มีโค้ด Kotlin และ Swift อยู่ด้วยกันอย่างไร แน่นอนว่ามันอาจเป็น Kotlin และ Java ก็ได้ อีกแง่มุมที่ควรเน้นคือโมดูลที่ใช้ร่วมกันซึ่งมีโค้ดทั่วไปในโฟลเดอร์ src
และโฟลเดอร์โค้ดเฉพาะแพลตฟอร์ม src@ios
และ src@android
(เรียนรู้เพิ่มเติมเกี่ยวกับเค้าโครงโปรเจ็กต์)
นี่คือลักษณะของไฟล์ ios-app/module.yaml
:
# สร้างผลิตภัณฑ์แอปพลิเคชัน iOS: ios/app# ขึ้นอยู่กับโมดูลไลบรารีที่ใช้ร่วมกัน: การอ้างอิง: - ../sharedsettings: # เปิดใช้งานเฟรมเวิร์กเขียนหลายแพลตฟอร์ม เขียน: เปิดใช้งานแล้ว
สิ่งนี้ค่อนข้างตรงไปตรงมา: มันกำหนดแอปพลิเคชัน iOS ที่มีการพึ่งพาโมดูลที่ใช้ร่วมกันและเปิดใช้งานเฟรมเวิร์ก Compose Multiplatform ตัวอย่างที่น่าสนใจกว่านี้คือ shared/module.yaml
:
# สร้างไลบรารีที่ใช้ร่วมกันสำหรับแพลตฟอร์ม JVM, Android และ iOS:product: type: แพลตฟอร์ม lib: [jvm, android, iosArm64, iosSimulatorArm64, iosX64]# การพึ่งพาการเขียนที่ใช้ร่วมกัน: การพึ่งพา: - $compose.foundation: ส่งออกแล้ว - $compose.material3: ส่งออก # การพึ่งพาเฉพาะ Android เท่านั้น dependencies@android: # การรวมเฉพาะ Android กับ Compose - androidx.activity:activity-compose:1.7.2: ส่งออกแล้ว - androidx.appcompat:appcompat:1.6.1: ส่งออก # การพึ่งพาเฉพาะ iOS ที่มีการพึ่งพา CocoaPod (ยังไม่ได้ใช้งาน) dependencies@ios: - พ็อด: เวอร์ชัน 'Alamofire': '~> 2.0.1'settings: # เปิดใช้งาน Kotlin การทำให้เป็นอนุกรม kotlin: การทำให้เป็นอนุกรม: json # เปิดใช้งานกรอบการเขียนหลายแพลตฟอร์มการเขียน: เปิดใช้งาน
มีสองสิ่งที่ควรค่าแก่การกล่าวถึง ขั้นแรก ให้สังเกตการขึ้นต่อกันเฉพาะแพลตฟอร์ม: ส่วนที่มีตัวระบุ @<platform>
ตัวระบุแพลตฟอร์มสามารถใช้ได้ทั้งในไฟล์ Manifest และในเค้าโครงไฟล์ด้วย ตัวระบุจะจัดระเบียบโค้ด การขึ้นต่อกัน และการตั้งค่าสำหรับแพลตฟอร์มใดแพลตฟอร์มหนึ่ง ประการที่สอง การขึ้นต่อกัน: ส่วนไม่เพียงอนุญาตการขึ้นต่อกันของ Kotlin และ Maven เท่านั้น แต่ยังรวมถึงตัวจัดการแพ็คเกจเฉพาะแพลตฟอร์มด้วย เช่น CocoaPods, Swift Package Manager และอื่น ๆ
โดยปกติแล้ว ตัวอย่างเหล่านี้จะแสดงเฉพาะชุดคุณสมบัติของ Amper ที่จำกัดเท่านั้น หากต้องการรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับการออกแบบและฟังก์ชันการทำงาน โปรดดูเอกสารประกอบ บทช่วยสอน และโปรเจ็กต์ตัวอย่าง
ตรวจสอบโครงการตัวอย่างของเราเหล่านี้:
JVM "สวัสดีชาวโลก!" (แบบสแตนด์อโลนแบบ Gradle)
เขียนหลายแพลตฟอร์ม (สแตนด์อโลน, แบบ Gradle)
เขียนบน iOS (สแตนด์อโลน, แบบ Gradle), Android (แบบสแตนด์อโลน, แบบ Gradle) และเดสก์ท็อป (แบบสแตนด์อโลน, แบบ Gradle)
เทมเพลตแอป Kotlin Multiplatform พร้อม Compose UI ที่ใช้ร่วมกันและ Android และ iOS UI แบบเนทีฟ
Gradle ทำงานร่วมกันใน Amper ที่ใช้ Gradle
และตัวอย่างแบบสแตนด์อโลนและแบบ Gradle อื่น ๆ