Il s'agit de minuscules framework avec une grande partie du code d'échafaudage (avec de beaux utilitaires et du code source préparé) requis pour démarrer une nouvelle application Android.
Oui, Android Studio pourrait créer un projet pour vous, mais il manque des pièces, que je finis toujours par ajouter à chaque projet que je crée. Ce petit cadre (je dirais que le code d'échafaudage) vise à résoudre ce problème en rendant facile et rapide pour créer un projet Android avec les blocs de construction fondamentaux. Vérifiez la section TODO ci-dessous pour plus d'informations sur l'évolution et les progrès.
Liberté. Il utilise des outils standard mais organisé de manière à faciliter le développement d'Android. Vous pouvez refacter ou changer quoi que ce soit, mais l'idée est d'avoir un point de départ robuste. Tout le câblage est fait pour vous avec la flexibilité d'être modifié en fonction de vos besoins.
Kotlin DSL par défaut à Gradle Build System Leve.BaseActivity et BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr ) organisé par des aspects:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts fichier)DEBUGRELEASEDEVINTERNALPUBLICLiveData et ViewModel car certains ingénieurs peuvent utiliser d'autres approches au niveau de l'interface utilisateur comme MVI, MVP, etc../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppÀ l'époque, il y a quelques étapes manuelles impliquées car nous sommes à un stade très précoce. Mais nous croyons à l'évolution des logiciels, non? Alors restez à l'écoute et vérifiez les sections de la liste des listes et des tâches .
com.fernandocejas.sample par défaut. Disons que vous voulez écrire des tests (et vous devriez toujours le faire), comme mentionné, il y a 3 classes qui entrent en jeu et ici des exemples de leur utilisation:
UnitTest.kt : Classe de base de test d'unité qui configure des simulations pour vous (vous n'utilisez que l'annotation @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 : classe de base de test d'intégration qui configure des simulations pour vous (vous n'utilisez que l'annotation @Mockk ). Vous pouvez utiliser ces classes lorsque ce sont des composants Android impliqués. Il est sauvegardé par Robolectric. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : Classe de base de test UI qui configure l'espresso pour vous class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity comprend un cadre de drapeaux de fonctions hors ligne simple avec une API très simple générée au moment de la compilation. Si vous souhaitez plus d'informations, reportez-vous à la demande de traction introduite. (Todo: ajouter plus de documentation)
Exemple de son utilisation:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity ou io.android.trinity . Rien n'est réglé ici et les choses peuvent changer et évoluer en fonction du travail et des exigences communautaires. Donc, si vous souhaitez contribuer, n'hésitez pas à ouvrir un problème et à l'étiqueter correctement: bug , amélioration , etc. ou envoyer un PR. Veuillez les deux avec de bonnes descriptions de l'intention, afin de faciliter l'examen
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.
