Esta é uma pequena estrutura com grande parte do código de andaime (com alguns utilitários agradáveis e código -fonte preparado) necessário para iniciar um novo aplicativo Android.
Sim, o Android Studio pode criar um projeto para você, mas faltam peças, o que eu sempre acabo adicionando a todos os projetos que eu criar. Essa pequena estrutura (eu diria que ainda tem o código de andaimes) visa resolver isso, facilitando e rápido o projeto Android com os blocos de construção fundamentais. Verifique a seção TODO abaixo para obter mais informações sobre a evolução e o progresso.
Liberdade. Ele usa ferramentas padrão, mas organizado de tal maneira que facilite o desenvolvimento do Android. Você pode refatorar ou alterar qualquer coisa, exceto a idéia é ter um ponto de partida robusto. Toda a fiação é feita para você com a flexibilidade de ser modificado de acordo com suas necessidades.
Kotlin DSL Por padrão no Gradle Build System Leve.BaseActivity e BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr ) organizados por aspectos:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts )DEBUGRELEASEDEVINTERNALPUBLICLiveData e ViewModel pois alguns engenheiros podem usar outras abordagens no nível da interface do usuário, como MVI, MVP, etc../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppNa época, existem algumas etapas manuais envolvidas, pois estamos em um estágio muito inicial. Mas acreditamos na evolução do software, certo? Portanto, fique atento e verifique as seções de como contribuir e de listas de TODO .
com.fernandocejas.sample por padrão. Digamos que você queira escrever testes (e você sempre deve fazer), como mencionado, há três classes que entram em jogo e aqui exemplos de seu uso:
UnitTest.kt : classe base de teste de unidade, que configura zombar para você (você usa apenas a anotação @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 : Integration Test Base Class, que configura zombar para você (você usa apenas a anotação @Mockk ). Você pode usar essas classes quando elas são componentes do Android envolvidos. É apoiado pelo robolétrico. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : Teste da interface do usuário Classe Base que configure Espresso para você class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}O Android-Trinity inclui uma estrutura simples de sinalizadores offline com uma API muito simples gerada no momento da compilação. Se você deseja mais informações, consulte a solicitação de tração introduzida. (TODO: Adicione mais documentação)
Exemplo de seu uso:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity ou io.android.trinity . Nada é definido em pedra aqui e as coisas podem mudar e evoluir com base no trabalho e requisitos da comunidade. Portanto, se você deseja contribuir, sinta -se à vontade para abrir um problema e rotulá -lo corretamente: bug , aprimoramento , etc. ou envie um pr. Por favor, ambos com boas descrições da intenção, a fim de facilitar a revisão
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.
