Este es un marco pequeño con gran parte del código de andamio (con algunas utilidades agradables y código fuente preparado) requerido para iniciar una nueva aplicación de Android.
Sí, Android Studio podría crear un proyecto para usted, pero hay piezas faltantes, que siempre termino agregando a cada proyecto que creo. Este pequeño marco (diría que todavía el código de andamios) tiene como objetivo resolver esto haciendo fácil y rápido para crear un proyecto de Android con los bloques de construcción fundamentales. Consulte la sección TODO a continuación para obtener más información sobre la evolución y el progreso.
Libertad. Utiliza herramientas estándar pero organizadas de tal manera que facilite el desarrollo de Android. Puede refactorizar o cambiar cualquier cosa, pero la idea es tener un punto de partida robusto. Todo el cableado se realiza por usted con la flexibilidad de ser modificado de acuerdo con sus necesidades.
Kotlin DSL de forma predeterminada en la LEVE del sistema de construcción de Gradle.BaseActivity y BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr ) organizados por aspectos:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts archivo)DEBUGRELEASEDEVINTERNALPUBLICLiveData y ViewModel ya que algunos ingenieros pueden usar otros enfoques a nivel de interfaz de usuario como MVI, MVP, etc../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppEn ese momento, hay un par de pasos manuales involucrados ya que estamos en una etapa muy temprana. Pero creemos en la evolución de Sofware, ¿verdad? Así que estén atentos y verifique tanto cómo contribuir como las secciones de la lista de tareas .
com.fernandocejas.sample de forma predeterminada. Digamos que desea escribir pruebas (y siempre debe hacerlo), como se menciona que hay 3 clases que entran en juego y aquí ejemplos de su uso:
UnitTest.kt : clase de base de prueba unitaria que se burla de la configuración para usted (solo usa la anotación @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 : clase base de prueba de integración que configuran los simulacros para usted (solo usa la anotación @Mockk ). Puede usar estas clases cuando son componentes de Android involucrados. Está respaldado por Robolectric. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : clase base de prueba de interfaz de usuario que configuró el espresso para usted class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity incluye un marco de indicadores de características sin conexión simple con una API muy simple generada en el momento de la compilación. Si desea más información, consulte la solicitud de extracción introducida. (TODO: agregue más documentación)
Ejemplo de su uso:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity o io.android.trinity . Nada se establece en piedra aquí y las cosas pueden cambiar y evolucionar según el trabajo y los requisitos de la comunidad. Entonces, si desea contribuir, no dude en abrir un problema y etiquetarlo correctamente: error , mejora , etc. o enviar un PR. Ambos con buenas descripciones de la intención, para facilitar la revisión.
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.
