Ini adalah kerangka kerja kecil dengan banyak kode perancah (dengan beberapa utilitas yang bagus dan kode sumber yang disiapkan) yang diperlukan untuk memulai aplikasi Android baru.
Ya, Android Studio mungkin membuat proyek untuk Anda, tetapi ada bagian yang hilang, yang selalu saya tambahkan ke setiap proyek yang saya buat. Kerangka kerja kecil ini (saya akan mengatakan kode perancah yang masih perancah) bertujuan untuk menyelesaikannya dengan memudahkan dan cepat untuk membuat proyek Android dengan blok bangunan mendasar. Periksa bagian Todo di bawah ini untuk informasi lebih lanjut tentang evolusi dan kemajuan.
Kebebasan. Ini menggunakan alat standar tetapi diatur sedemikian rupa sehingga memfasilitasi pengembangan Android. Anda dapat refactor atau mengubah apa pun kecuali idenya adalah memiliki titik awal yang kuat. Semua kabel dilakukan untuk Anda dengan fleksibilitas dimodifikasi sesuai dengan kebutuhan Anda.
Kotlin DSL Secara default di leve Build System Leve.BaseActivity dan BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr ) yang disusun oleh aspek:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts file)DEBUGRELEASEDEVINTERNALPUBLICLiveData dan ViewModel karena beberapa insinyur mungkin menggunakan pendekatan lain di tingkat UI seperti MVI, MVP, dll../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppPada saat itu ada beberapa langkah manual yang terlibat karena kita berada pada tahap yang sangat awal. Tapi kami percaya pada evolusi sofware kan? Jadi tetaplah disini dan periksa bagian yang berkontribusi dan todo .
com.fernandocejas.sample secara default. Katakanlah Anda ingin menulis tes (dan Anda harus selalu melakukannya), seperti yang disebutkan ada 3 kelas yang ikut bermain dan di sini contoh penggunaannya:
UnitTest.kt : unit test base class yang mengatur mocks untuk Anda (Anda hanya menggunakan anotasi @Mockk ) class FeatureFlagTest : UnitTest () {
@Mockk prival val yourMock
@Test
fun `given a feature flag, when it is activated, then executes given logic block` () {
val activeFlag = ActiveFeatureFlag ()
val fakeNavigator = mockk< Navigator >(relaxed = true )
activeFlag whenActivated {
fakeNavigator.doSomething()
fakeNavigator.navigateToActiveFeature()
fakeNavigator.doSomething()
}
verify(exactly = 1 ) { fakeNavigator.navigateToActiveFeature() }
verify(exactly = 2 ) { fakeNavigator.doSomething() }
}AndroidTest.kt : Kelas dasar uji integrasi yang mengatur mocks untuk Anda (Anda hanya menggunakan anotasi @Mockk ). Anda mungkin menggunakan kelas ini ketika mereka adalah komponen Android yang terlibat. Itu didukung oleh robolectric. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : UI Test Base Class yang mengatur espresso untuk Anda class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity mencakup kerangka bendera fitur offline sederhana dengan API yang sangat sederhana yang dihasilkan pada waktu kompilasi. Jika Anda menginginkan informasi lebih lanjut, lihat permintaan tarik yang diperkenalkan. (TODO: Tambahkan lebih banyak dokumentasi)
Contoh penggunaannya:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity atau io.android.trinity . Tidak ada yang ditetapkan di sini dan hal -hal dapat berubah dan berkembang berdasarkan pekerjaan dan persyaratan masyarakat. Jadi, jika Anda ingin berkontribusi, jangan ragu untuk membuka masalah dan memberi label dengan benar: bug , peningkatan , dll. Atau kirim PR. Mohon keduanya dengan deskripsi niat yang baik, untuk memfasilitasi peninjauan
Copyright 2021 Fernando Cejas
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
