โปรดทราบว่าโครงการนี้ไม่ได้รับการดูแลอีกต่อไป
แอพตัวอย่าง Android พร้อมสถาปัตยกรรม MVP
ตัวอย่างโครงการที่แสดงภาพบางส่วนจาก Dribble API แสดงให้เห็นถึงสิ่งดีๆที่คุณสามารถทำได้กับห้องสมุดที่ทันสมัยและเครื่องมือใน Android ทุกวันนี้
อย่างที่มีคนพูดใน Reddit: "มันไม่ได้ออกแบบมามากเกินไปมันเป็นเพียงตึกระฟ้าที่ไม่มีส่วนตึกระฟ้าเพียงแค่ฐานราก :)"

เพิ่มเติมใหม่ล่าสุด:
- อัพเกรดปลั๊กอิน Android Gradle เป็น v3.0.1
- เพิ่มการสนับสนุนสำหรับช้อน ดู https://github.com/square/spoon สำหรับรายละเอียดเพิ่มเติม เพิ่มปลั๊กอิน Gradle สำหรับมัน หนึ่งสามารถเรียกใช้การทดสอบด้วย 'Gradlew Spoon' จากนั้นเปิดรายงานที่สร้างขึ้นในไดเรกทอรี 'Build/Spoon'
- เพิ่มภาพหน้าจอจับในขณะที่ใช้การทดสอบเอสเพรสโซ่ใน Firebase
- เพิ่มความครอบคลุมการทดสอบสำหรับการทดสอบหน่วยในเซิร์ฟเวอร์ TeamCity CI
- เพิ่มตัวอย่างการอนุญาตรันไทม์ ใช้ไลบรารี PermissionsDispatcher ดูคลาส RuntimePermissionsActivity (https://github.com/permissions-dispatcher/permissionsDispatcher)
- ปรับโครงสร้างการพึ่งพาเล็กน้อยตรวจสอบไฟล์ build.gradle และการอ้างอิงไฟล์ gradle
- เพิ่มการสนับสนุนสำหรับ Dagger Android Bindings (Dagger v2.11)
- เพิ่มไลบรารีแฟชั่นอัตโนมัติลูกพี่ลูกน้องเล็ก ๆ ของ Auto-Value (https://github.com/google/auto/tree/master/factory) ลงในโครงการเพื่อช่วยในการฉีดดาบช่วย (โพสต์นี้อธิบายได้ค่อนข้างดี: https://stackoverflow.com/questions/22799407/looking-for-an-example-for-dagger-assisted-injection)
- เพิ่มการทดสอบเอสเพรสโซ่โดยใช้ไลบรารี okreplay (https://github.com/airbnb/okreplay) ที่บันทึกและเล่นซ้ำการตอบสนองของเซิร์ฟเวอร์ ดู com.example.features.dashboard.view.mainactivityokreplayespressotest สำหรับรายละเอียดเพิ่มเติม
- เพิ่มการสนับสนุนสำหรับการทดสอบคลาวด์ Firebase (firebase.google.com/docs/test-lab/) ผ่าน TeamCity! ตอนนี้ทุกการร้องขอการดึง/ การสร้าง/ ปล่อยทุกคืนใช้บริการเพื่อเรียกใช้การทดสอบเอสเพรสโซ่ ดู ustanotherandroidapp_runespressotestsinfirebase.xml สำหรับรายละเอียดเพิ่มเติม
- เพิ่มการสนับสนุนสำหรับ Burst Library (https://github.com/square/burst) สำหรับการทดสอบหน่วย parametrized (ดู com.example.util.stringutilstest สำหรับรายละเอียดเพิ่มเติม)
- เพิ่มแอพทางลัด! แบบคงที่ไดนามิกและไดนามิกที่ใช้ผ่านทาง https://github.com/matthiasrobbers/shortbread Library! สำหรับรายละเอียดโปรดตรวจสอบด้านล่างของคลาสแอพ, การประกาศ @shortcut และไฟล์ทางลัด xml
- เพิ่มการตรวจสอบผ้าสำลีที่กำหนดเองอีก 2 รายการ (ตรวจสอบคลาส NonmaterialColorSDetector และ DirectMaterialPalettecolorusageTector)
- เพิ่มการตรวจสอบผ้าสำลีที่กำหนดเองสำหรับสี hardcoded (ตรวจสอบคลาส HardcodedColorSdetector)
- ปลั๊กอิน Gradle เพื่อตรวจสอบขนาด apk และล้มเหลวโดยอัตโนมัติในการสร้างหากขนาด apk เป็นมากกว่าค่าเฉพาะ (ตรวจสอบไฟล์ build.gradle และ gradle.properties สำหรับการกำหนดค่าและ https://github.com/vanniktech/gradle-android-apk-size-plugin
- เพิ่มการสนับสนุนสำหรับสคริปต์ TeamCity CI ที่มุ่งมั่นใน VCS! พวกเขาเขียนใน Kotlin/XML (ตรวจสอบ. TEAMCITY Folder หรืออ่านเพิ่มเติมที่ด้านล่างของไฟล์นี้)
- เพิ่ม Sherlock ลงในโครงการเพื่อให้นักพัฒนา (และ QA) สามารถเข้าถึงข้อยกเว้นที่เกิดขึ้นได้ง่าย (และแบ่งปัน) ผ่านแอพ (ดูคลาสแอพและไฟล์ build.gradle และ https://github.com/ajitsing/sherlock สำหรับโครงการ)
- เพิ่ม traceur ลงในโครงการที่อนุญาตให้แสดง stacktraces ที่มีประโยชน์มากขึ้นด้วย rxjava 2 (ตรวจสอบคลาส Traceurtool และคลาสอื่น ๆ ที่เกี่ยวข้องหรือ https://github.com/t-spoon/traceur สำหรับห้องสมุด)
- เพิ่ม Chuck Library เพื่อดูการโทรเครือข่ายทางโทรศัพท์ ดู https://github.com/jgilfelt/Chuck สำหรับไลบรารีและคลาส NetworkModule สำหรับการดักจับที่เพิ่มเข้ามา
- ปิดการใช้งานแอนิเมชั่นก่อนที่จะทำการทดสอบเอสเพรสโซ่และเปิดใช้งานอีกครั้งในภายหลัง! (ดู Grant_Animation_permission.gradle และ Espressotesthelper Class)
- เพิ่มการกระทำของ Butterknife (ดูคลาส Butterknifeactions)
- รองรับส่วนที่เยาะเย้ยของกราฟกริชของคุณผ่านห้องสมุด Daggermock (ดูคลาส MainActivityTest)
- เพิ่มเค้าโครงข้อ จำกัด ! (ดู Activity_main.xml)
- เพิ่มตัวกำหนดตารางเวลา RXJAVA ที่แจ้งเอสเพรสโซ่ผ่านการนับจำนวนเงินเมื่อหยุดการทดสอบชั่วคราวและรองานอะซิงโครนัสให้เสร็จ (ตรวจสอบ com.example.util.rx.rxidlingscheduler)
- โครงการอัพเกรดเพื่อใช้ Mosby MVP V3 ใหม่ !! ตรวจสอบ https://github.com/sockeqwe/mosby สำหรับรายละเอียดเพิ่มเติม
- เพิ่มการสนับสนุนสำหรับคลาส RXJAVAPLUGINS ซึ่งช่วยให้สามารถเอาชนะ RXJAVA 2 Schedulers ได้อย่างง่ายดายในการทดสอบ ดูวิธีการตั้งค่าของคลาส MainpresenterTest
- เพิ่มความหลากหลายของกระเบื้องการตั้งค่าที่รวดเร็ว ดู https://medium.com/google-developers/quick-settings-tiles-e3c22daf93a8 สำหรับข้อมูลเกี่ยวกับคุณสมบัติและ com.example.features.tiles.passivetileserviceonlytoggle สำหรับการใช้งาน
สารบัญ:
ห้องสมุด:
- rxjava
- กริช 2 พร้อมตัวอย่างของการฉีดช่วยเหลือและโมดูลที่แตกต่างกันขึ้นอยู่กับประเภทการสร้าง ยังรองรับ Android Dagger v2.11
- ติดตั้งเพิ่มเติม 2 และโหมดจำลองเพิ่มเติมสำหรับการดีบักบิ๊ก
- Mosby MVP พร้อมการสนับสนุนสถานะ View (v3!)
- ไม้ซุง
- มูลค่าอัตโนมัติและโรงงานอัตโนมัติ
- ร่อนด้วยเสื้อคลุม
- บัตเตอร์มีน
- assertj สำหรับการยืนยันที่คล่องแคล่ว
- ผ้า (Crashlytics และคำตอบ)
- retrolambda
- สเตทา
- เชย
- Shortbread (https://github.com/matthiasrobbers/shortbread)
- PermissionsDispatcher สำหรับการอนุญาตรันไทม์ (https://github.com/permissions-dispatcher/permissionsDispatcher)
การวิเคราะห์แบบคงที่:
- PMD (https://pmd.github.io/ - ตรวจสอบไฟล์ static_analysis_java.gradle)
- checkstyle (ตรวจสอบไฟล์ static_analysis_java.gradle)
- ผ้าสำลี (ตรวจสอบไฟล์ lint.gradle)
- findbugs (ตรวจสอบไฟล์ static_analysis_java.gradle)
- การครอบคลุมรหัส Jacoco ที่สามารถสร้างรายงานสำหรับการทดสอบหน่วยการทดสอบเอสเพรสโซ่หรือการรวมกันของทั้งสอง
- ชุดของกฎการตรวจสอบ IDE ที่กำหนดเอง
- โมดูลที่มีกฎผ้าสำลีที่กำหนดเองและการทดสอบสำหรับพวกเขา
การทดสอบ:
- เพิ่มการสนับสนุนสำหรับช้อน ดู https://github.com/square/spoon สำหรับรายละเอียดเพิ่มเติม เพิ่มปลั๊กอิน Gradle สำหรับช้อน หนึ่งสามารถเรียกใช้การทดสอบด้วย 'Gradlew Spoon' จากนั้นเปิดรายงานที่สร้างขึ้นในไดเรกทอรี 'Build/Spoon'
- ทดสอบความครอบคลุมที่ทำงานในเซิร์ฟเวอร์ CI ของ TeamCity CI
- การทดสอบเอสเพรสโซ่ที่มีและไม่มีเว็บเซิร์ฟเวอร์จำลอง
- Mock Web Server ทดสอบที่โหลดการตอบสนองจากไฟล์ JSON
- การทดสอบแบบโรโบเลทริก
- การทดสอบหน่วยปกติ
- OK HTTP Interceptor สำหรับการเปลี่ยน URL พื้นฐานในการทดสอบ
- ทรัพยากรที่ไม่ได้ใช้งาน
- การปลดล็อคหน้าจอสำหรับการทดสอบเอสเพรสโซ่ (ตรวจสอบคลาส com.example.util.espressotestrunner)
- รองรับคลาส RXJAVAPLUGINS ซึ่งช่วยให้สามารถเอาชนะ RXJAVA 2 SCHENDULERS ได้อย่างง่ายดายในการทดสอบ (ตรวจสอบคลาส MainPresenterTest)
- รองรับตัวกำหนดตารางเวลา RXJAVA ที่ช่วยในการทดสอบเอสเพรสโซ่และการดำเนินการรหัสแบบอะซิงโครนัส (ตรวจสอบ com.example.util.rx.rxidlingscheduler)
- รองรับส่วนที่เยาะเย้ยของกราฟกริชของคุณผ่านห้องสมุด Daggermock (ดูคลาส MainActivityTest)
- ปิดการใช้งานแอนิเมชั่นก่อนที่จะทำการทดสอบเอสเพรสโซ่และเปิดใช้งานอีกครั้งในภายหลัง! (ดู Grant_Animation_permission.gradle และ Espressotesthelper Class)
- เพิ่ม Sherlock ลงในโครงการเพื่อให้นักพัฒนา (และ QA) สามารถเข้าถึงข้อยกเว้นที่เกิดขึ้นได้ง่าย (และแบ่งปัน) ผ่านแอพ (ดูคลาสแอพและไฟล์ build.gradle และ https://github.com/ajitsing/sherlock สำหรับโครงการ)
- Burst Library (https://github.com/square/burst) สำหรับการทดสอบหน่วย parametrized (ดู com.example.util.stringutilstest สำหรับรายละเอียดเพิ่มเติม)
- เพิ่มการสนับสนุนสำหรับการทดสอบคลาวด์ Firebase (firebase.google.com/docs/test-lab/) ผ่าน TeamCity! ตอนนี้ทุกการร้องขอการดึง/ การสร้าง/ ปล่อยทุกคืนใช้บริการเพื่อเรียกใช้การทดสอบเอสเพรสโซ่ ดู ustanotherandroidapp_runespressotestsinfirebase.xml สำหรับรายละเอียดเพิ่มเติม
- เพิ่มการทดสอบเอสเพรสโซ่โดยใช้ไลบรารี okreplay (https://github.com/airbnb/okreplay) ที่บันทึกและเล่นซ้ำการตอบสนองของเซิร์ฟเวอร์ ดู com.example.features.dashboard.view.mainactivityokreplayespressotest สำหรับรายละเอียดเพิ่มเติม
มุมมองที่เกี่ยวข้อง:
- เพิ่มเค้าโครงข้อ จำกัด ! (ดู Activity_main.xml)
- เพิ่มการกระทำของ Butterknife (ดูคลาส Butterknifeactions)
อื่น:
- ปลั๊กอิน Gradle เพื่อตรวจสอบขนาด apk และล้มเหลวโดยอัตโนมัติในการสร้างหากขนาด apk เป็นมากกว่าค่าเฉพาะ (ตรวจสอบไฟล์ build.gradle และ gradle.properties สำหรับการกำหนดค่าและ https://github.com/vanniktech/gradle-android-apk-size-plugin
- ไอคอนแอพแยกต่างหากตามประเภทการสร้าง
- แหล่งที่มาขั้นสูงบางชุดกำหนดค่าสำหรับการแยกการทดสอบ
- กำลังโหลดการกำหนดค่าโครงการบางส่วนจากไฟล์คุณสมบัติใน Android Manifest และ build.gradle
- โฟลเดอร์ที่ใช้ร่วมกันสำหรับการสร้างหรือการทดสอบบางประเภท
- การกำหนดค่า proguard ที่ใช้งานได้
- Android Studio Annotations ภายนอก (https://www.jetbrains.com/help/idea/2016.3/external-annotations.html)
- คำอธิบายประกอบระดับแพ็คเกจสำหรับ @Nullable และ @nonnull
- Okhttp interceptor สำหรับการเพิ่มโทเค็น Auth Auth ให้กับส่วนหัวได้อย่างง่ายดาย
- โหมดที่เข้มงวด
- ปลั๊กอินเพื่อเผยแพร่แอพบน Playstore
- ปลั๊กอิน DEX นับสำหรับการนับจำนวนวิธีการใน APK
- แยกต้นไม้ตัดไม้ไม้สำหรับ Crashlytics ดู com.example.tools.timber.crashlyticstree
- กระเบื้องการตั้งค่าอย่างรวดเร็ว (ดู com.example.features.tiles.passivetileserviceonlytoggle)
- เพิ่ม traceur ลงในโครงการที่อนุญาตให้แสดง stacktraces ที่มีประโยชน์มากขึ้นด้วย rxjava 2 (ตรวจสอบคลาส Traceurtool และคลาสอื่น ๆ ที่เกี่ยวข้องหรือ https://github.com/t-spoon/traceur สำหรับห้องสมุด)
- แอพลัด! แบบคงที่ไดนามิกและไดนามิกที่ใช้ผ่านทาง https://github.com/matthiasrobbers/shortbread Library! สำหรับรายละเอียดโปรดตรวจสอบด้านล่างของคลาสแอพ, การประกาศ @shortcut และไฟล์ทางลัด xml
.. และสินค้าอื่น ๆ ทุกประเภท!
TeamCity - การรวมอย่างต่อเนื่อง
โครงการได้รับประโยชน์จากคุณสมบัติของ TeamCity ในการจัดเก็บการกำหนดค่าเซิร์ฟเวอร์ CI ใน Kotlin ในระบบควบคุมเวอร์ชัน ดู https://confluence.jetbrains.com/display/tcd10/kotlin+dsl สำหรับรายละเอียดเพิ่มเติม การตั้งค่าสามารถพบได้ภายใต้โฟลเดอร์. teamcity ในโครงการ
สร้างการกำหนดค่า:
มีการกำหนดค่า 3 ครั้ง:
- การกำหนดค่าการสร้าง 'Pull Requests' ซึ่งเรียกใช้ทุกคำขอการดึง ตรวจสอบความถูกต้องของคำขอดึง (โดยปกติสำหรับสาขา 'พัฒนา') QA จะดึง APK ที่เกี่ยวข้องจาก HockeyApp ที่สร้างขึ้นโดยการกำหนดค่าการสร้างนี้เพื่อทดสอบคุณสมบัติ/การแก้ไขด้วยตนเองว่าคำขอดึงแนะนำ งานสร้างนี้:
- ใช้เครื่องมือวิเคราะห์แบบคงที่ทั้งหมด
- รันการทดสอบหน่วยทั้งหมดสำหรับการสร้างทุกประเภท
- ดำเนินการนับวิธีการสำหรับการสร้างทุกประเภท
- ตรวจสอบการทำซ้ำ
- สร้าง apks
- รันการทดสอบเอสเพรสโซทั้งหมดบนคลาวด์ทดสอบ Firebase
- อัปโหลด apks ไปยัง HockeyApp
- อัปเดต GitHub ด้วยสถานะของงาน (ความสำเร็จ/ความล้มเหลว)
- การกำหนดค่าการสร้าง 'Nightly Builds ' ซึ่งถูกกระตุ้นทุกคืนในเวลาเที่ยงคืนของสาขา 'พัฒนา' QA จะดึง APK ที่เกี่ยวข้องจาก HockeyApp ที่สร้างขึ้นโดยการกำหนดค่าการสร้างนี้เพื่อทดสอบการรวมคุณสมบัติของแอพ บิลด์นี้ยังถูกนำไปใช้กับกลุ่ม Alpha Playstore ที่ปิดเพื่อให้ผู้คนทดสอบ งานสร้างนี้:
- รันการทดสอบหน่วยทั้งหมดสำหรับการสร้างทุกประเภท
- ดำเนินการนับวิธีการสำหรับการสร้างทุกประเภท
- ตรวจสอบการทำซ้ำ
- สร้าง apks
- รันการทดสอบเอสเพรสโซทั้งหมดบนคลาวด์ทดสอบ Firebase
- อัปโหลด apks ไปยัง HockeyApp
- อัปโหลด release apk ไปยังช่องอัลฟ่าส่วนตัวใน Playstore
- การกำหนดค่าการสร้าง 'releases' ทริกเกอร์ในทุกสาขาที่ตรงกับชื่อสาขา 'release/*' QA จะดึง APK ที่เกี่ยวข้องจาก HockeyApp เพื่อทำการทดสอบขั้นสุดท้ายก่อนการเปิดตัว บิลด์นี้ยังถูกนำไปใช้กับกลุ่ม Playstore แบบเปิดเพื่อให้ผู้คนทดสอบ งานสร้างนี้:
- ใช้เครื่องมือวิเคราะห์แบบคงที่ทั้งหมด
- รันการทดสอบหน่วยทั้งหมดสำหรับการสร้างทุกประเภท
- ดำเนินการนับวิธีการสำหรับการสร้างทุกประเภท
- ตรวจสอบการทำซ้ำ
- สร้าง apks
- รันการทดสอบเอสเพรสโซทั้งหมดบนคลาวด์ทดสอบ Firebase
- อัปโหลด apks ไปยัง HockeyApp
- อัปโหลด release apk ไปยังช่องเบต้าสาธารณะใน Playstore
รายงาน:
นอกจากนี้ยังมีรายงานทุกประเภท:
- รายงานการวิเคราะห์แบบสแตติกของ CheckStyle แสดงคำเตือนทั้งหมดในโครงการ มักจะรายงานกลับว่างเปล่าเนื่องจากมีนโยบายความอดทนเป็นศูนย์ในโครงการ ในการสร้างที่ล้มเหลวจะระบุปัญหาที่ต้องแก้ไข

- รายงานการทดสอบหน่วยสำหรับการสร้างทุกประเภทแสดงการทดสอบทั้งหมดที่ทำงานพร้อมกับรายละเอียดเพิ่มเติมและ stacktraces หากเกิดข้อผิดพลาด 2 Dashboards หนึ่งคือรายงานการทดสอบที่สร้างขึ้นของ TeamCity และอีกรายงานคือรายงาน Junit4 HTML ดั้งเดิม


- รายงานเคาน์เตอร์ DEX Method สำหรับการสร้างทุกประเภทแสดงจำนวนวิธีสำหรับ APK ทุกตัวพร้อมกับการเจาะลึกการเจาะลึกที่น่าสนใจซึ่งทำให้ง่ายต่อการมองเห็นห้องสมุดที่มีวิธีการมากเกินไป ตามหมายเหตุมักจะเปิดตัวและ QA apks มีวิธีการที่เล็กกว่าในรายงานเหล่านี้เนื่องจาก Proguard กำลังทำงานในประเภทงานสร้างเหล่านี้

- FindBugs รายงานการวิเคราะห์แบบคงที่แสดงคำเตือน FindBugs ทั้งหมดในโครงการ มักจะรายงานกลับว่างเปล่าเนื่องจากมีนโยบายความอดทนเป็นศูนย์ในโครงการ ในการสร้างที่ล้มเหลวจะระบุปัญหาที่ต้องแก้ไข

- รายงานการวิเคราะห์แบบ Lint Static แสดงคำเตือนทั้งหมดในโครงการ มักจะรายงานกลับว่างเปล่าเนื่องจากมีนโยบายความอดทนเป็นศูนย์ในโครงการ ในการสร้างที่ล้มเหลวจะระบุปัญหาที่ต้องแก้ไข

- รายงานการวิเคราะห์แบบคงที่ของ PMD แสดงคำเตือน PMD ทั้งหมดในโครงการ มักจะรายงานกลับว่างเปล่าเนื่องจากมีนโยบายความอดทนเป็นศูนย์ในโครงการ ในการสร้างที่ล้มเหลวจะระบุปัญหาที่ต้องแก้ไข

- ไม่มีรายงานในขณะนี้สำหรับการทดสอบคลาวด์ Firebase คุณจะต้องเข้าไปในบันทึกการสร้างและค้นหา URL ที่ชี้ไปที่ถังเก็บข้อมูลของ Google Cloud ที่บันทึกผลลัพธ์ด้วยการเปลี่ยนแปลงเล็กน้อยเราสามารถใช้ถังเก็บข้อมูลส่วนบุคคล (จ่าย) แล้วดึงผลการทดสอบกลับเข้าสู่ TeamCity บทความนี้สัมผัสสั้น ๆ ในหัวข้อ: http://building.usebutton.com/testing/cloud/android/ci/2016/04/20/teamcity-google-device-cloud/

ปลั๊กอิน TeamCity:
ปลั๊กอิน Teamcity สองสามตัวถูกใช้เพื่อทำให้ชีวิตของฉันง่ายขึ้น:
- 'หมายเลขบิลด์ที่แชร์ขั้นสูง': ดู https://java.nicholaswilliams.net/teamcityplugins/download ปลั๊กอินที่ช่วยให้คุณแชร์เคาน์เตอร์สร้างข้ามการสร้าง เนื่องจากตัวนับนั้นเป็นส่วนหนึ่งของรหัสเวอร์ชันของ APK จึงเป็นการดีที่จะทำให้พวกเขาอยู่ในการซิงค์
- 'ปลั๊กอินการแจ้งเตือน Slack': ดู https://github.com/petegoo/tcslackbuildnotifier ปลั๊กอินที่ช่วยให้คุณสามารถโพสต์สถานะการสร้างไปยัง Slack
- 'Chuck Norris Teamcity Plugin': ดู https://github.com/dbf256/teamcity-chuck-plugin ไม่มากที่จะพูดเกี่ยวกับเรื่องนี้ ;-)
หมายเหตุ:
- ช่องเบต้าสาธารณะ (https://play.google.com/apps/testing/com.justanotherandapp) สามารถแจกจ่าย (ในทางทฤษฎี) ทั่วทั้ง บริษัท สิ่งหนึ่งที่ฉันลองคือการเพิ่มลิงก์ไปยังแท็ก NFC และแขวนไว้บนผนังเพื่อให้ทุกคนสามารถดึงแอพเบต้าได้อย่างรวดเร็ว!
HockeyApp
ฉันใช้ HockeyApp เพื่อบันทึกและ (ในทางทฤษฎี) แจกจ่าย APKS ไปยัง QA หรือผู้มีส่วนได้ส่วนเสีย ดู https://hockeyapp.net สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับผลิตภัณฑ์ นี่คือสิ่งที่ดูเหมือนในแดชบอร์ด HockeyApp:

อย่างที่คุณเห็นมีการสร้างที่แตกต่างกันสำหรับการกำหนดค่า CI Build ที่แตกต่างกันและประเภทงานสร้างทั้งหมด HockeyApp Guys ใจดีพอที่จะให้บัญชีฟรีแก่ฉันเพื่อแสดงให้เห็นถึงการใช้เครื่องมือของพวกเขา
บทวิจารณ์ Playstore ใน Slack
การใช้ทบทวนบอทสำหรับสิ่งนี้ (https://reviewbot.io/?utm_source=github&utm_medium=athkalia-just-another-android-app) ไม่มากที่จะพูดเพียงแค่เครื่องมือง่าย ๆ ที่ทำให้งานเสร็จ เมื่อรีวิวมาดูแบบนี้:

แผนงาน
- อัปเกรดเป็น Gradle เวอร์ชันล่าสุด
- การตรวจสอบลายนิ้วมือ
- ห้องสมุดตัวนำ
ส่ง PRS
โปรดตรวจสอบให้แน่ใจว่าคำสั่ง gradlew check เสร็จสมบูรณ์ก่อนที่จะสร้าง PR คำสั่งนี้เรียกใช้การทดสอบทั้งหมดสำหรับตัวแปรทั้งหมดรวมถึงเครื่องมือการวิเคราะห์แบบคงที่ 4 เครื่องมือ: ผ้าสำลี, Checsktyle, PMD, FindBugs
รายการสิ่งที่ฉันจะไม่เพิ่มอย่าลังเลที่จะมีส่วนร่วมหากคุณชอบสิ่งเหล่านี้!
- เรียกใช้การทดสอบความครอบคลุมในการทดสอบคลาวด์ Firebase ดึงรายงาน (อาจรวมเข้ากับรายงานการทดสอบหน่วยการทดสอบ) และให้การรายงานกลับไปที่เซิร์ฟเวอร์ CI สิ่งนี้จะต้องจ่ายเงินสำหรับถัง S3 และฉันไม่แน่ใจเกี่ยวกับประโยชน์ของการติดตามสิ่งนี้เพื่อความซื่อสัตย์
- ปล่อยออกมาโดยอัตโนมัติมากขึ้นเช่นการติดแท็กการรวมกลับไปพัฒนา ฯลฯ ข้อกำหนดเกี่ยวกับเรื่องนี้เป็นโครงการที่เฉพาะเจาะจงมากและเนื่องจากอาจมีความขัดแย้ง ฯลฯ ไม่คุ้มค่ากับการดำเนินการอัตโนมัติในตอนนี้
- ภาพหน้าจออัตโนมัติผ่านเครื่องมือ "fastlane - screengrab" (https://github.com/fastlane/fastlane/tree/master/screengrab) พวกเขาไม่รองรับหน้าต่างและฉันไม่มี Mac :(
ยินดีต้อนรับคำขอข้อเสนอแนะ/การดึง!
คุณสามารถจับฉันได้ที่ www.sakiskaliakoudas.com