Jetpack Compose Battle เป็นงานแข่งขันที่จะให้นักพัฒนาแอนดรอยด์ในประเทศไทยแข่งกันสร้าง UI ด้วย Jetpack Compose ที่เป็น UI Framework ตัวใหม่ล่าสุดทางทีมแอนดรอยด์
- TBD
- อันดับที่ 1 Android Mini Collectible @Work Series - Tech Support / IT / Engineer
- อันดับที่ 2 Android Mini Collectible @Work Series - Developer / Coder / Cyber Security
- อันดับที่ 3 หนังสือ The Team That Built the Android Operating System ของ Chet Haase
- อันดับที่ 4 หุ่นยนต์ไขลาน Android Wind-up
นอกจากนี้ผู้เข้าแข่งขันในรอบสุดท้ายทุกท่านจะได้รับของสมนาคุณจากบริษัท MuvMi อีกด้วย
- ผู้เข้าแข่งขันจะต้องสร้าง UI ด้วย Jetpack Compose ที่ Fork จาก Repository นี้เท่านั้น
- TBD
- TBD
- สามารถสร้าง Composable Function เพิ่มในไฟล์ดังกล่าวได้ตามใจชอบ ขอแค่ห้ามแก้ไขข้อมูลใน
@Preview
ที่อยู่ในไฟล์ดังกล่าวก็พอ - ห้ามใช้รูปภาพจากภายนอก ให้ใช้รูปที่เตรียมไว้ในโปรเจคนี้เท่านั้น โดยจะอยู่ที่
<project>/common/src/main/res
- ชื่อไฟล์รูปภาพทั้งหมดให้ดูชื่อจากใน Figma และเรียกใช้งานผ่าน Android Resource ได้เลย
- ค่าต่าง ๆ เช่น ขนาด ฟอนต์ ความหนาของตัวอักษรไม่ต้องสร้างขึ้นมาเอง ให้ดูจากใน Figma และเรียกใช้งานผ่าน
MaterialTheme
ได้เลย ยกตัวอย่างเช่นMaterialTheme.typography.headlineMedium.fontSize
เป็นต้น - ค่าสีที่ใช้ใน UI ไม่ต้องสร้างขึ้นมาเอง ให้ดูจากใน Figma และเรียกใช้งานผ่าน
MaterialTheme
ได้เลย เช่นMaterialTheme.colors.primary
เป็นต้น - คะแนนจะถูกคำนวณจากการรัน Snapshot Testing ด้วย Paparazzi โดยผู้เข้าแข่งขันสามารถทดสอบได้ด้วยการใช้คำสั่ง
./gradlew :screenshot-test:verifyPaparazziDebug
เผื่อดูผลลัพธ์ได้ก่อนส่งโจทย์- โดยผลลัพธ์ที่ได้จะอยู่ใน
<project>/screenshot-test/diff/
ที่จะบอกผลต่างของภาพที่ได้จากโค้ดเทียบกับภาพที่ถูกต้อง - ค่าที่ได้จากผลของ Snapshot Testing จะมีค่าเป็น % เมื่อเทียบกับภาพต้นฉบับ
- ถ้าที่ได้มีค่าเท่ากับ 0 แปลว่าผลลัพธ์ถูกต้องแบบ 100%
- โดยผลลัพธ์ที่ได้จะอยู่ใน
- ภาพต้นฉบับที่ใช้เปรียบเทียบใน Snapshot Testing จะอยู่ใน
/screenshot-test/src/test/snapshots/images
(ห้ามแก้ไข)
- Android Studio Hedgehog 2023.1.1 Patch 1 (Latest Stable)
- Embedded JDK (JBR 17.0.7)
Jetpack Compose Battle is a competition challenging Android developers in Thailand to create UIs using Jetpack Compose, the latest UI framework from the Android team.
- TBD
- 1st Place: Android Mini Collectible @Work Series - Tech Support / IT / Engineer
- 2nd Place: Android Mini Collectible @Work Series - Developer / Coder / Cyber Security
- 3rd Place: "The Team That Built the Android Operating System" book by Chet Haase
- 4th Place: Android Wind-up Robot
Additionally, all finalists will receive special gifts from MuvMi.
- Participants must create UIs with Jetpack Compose by forking from this repository only.
- TBD
- TBD
- Composable functions can be added as desired, but refrain from modifying data in
@Preview
in those files. - Do not use external images; use those prepared in the project located at
<project>/common/src/main/res
. - All image file names should match those in Figma and be accessed through Android Resource.
- Various values like size, font, and text thickness can be derived from Figma and accessed through
MaterialTheme
. For example:MaterialTheme.typography.headlineMedium.fontSize
- UI color values can be obtained from Figma and accessed through
MaterialTheme
. For example:MaterialTheme.colors.primary
- Scores will be calculated through Snapshot Testing with Paparazzi. Competitors can test using
./gradlew :screenshot-test:verifyPaparazziDebug
before submission.- Results will be in
<project>/screenshot-test/diff/
, indicating differences from the correct images. - Snapshot Testing results are presented as percentages comparing with the original images.
- A result of 0 means 100% accuracy.
- Results will be in
- Original images for Snapshot Testing are in
/screenshot-test/src/test/snapshots/images
(do not modify).
- Android Studio Hedgehog 2023.1.1 Patch 1 (Latest Stable)
- Embedded JDK (JBR 17.0.7)