Это крошечная структура с большей частью кода лесов (с некоторыми хорошими утилитами и подготовленным исходным кодом), необходимой для запуска нового приложения Android.
Да, Android Studio может создать для вас проект, но есть не хватает деталей, которые я всегда в конечном итоге добавляю к каждому отдельному проекту, который я создаю. Этот крошечный фреймворк (я бы сказал, все еще код лесов) направлена на то, чтобы решить эту проблему, сделав легко и быстро для создания проекта Android с фундаментальными строительными блоками. Проверьте раздел TODO ниже для получения дополнительной информации об эволюции и прогрессе.
Свобода. Он использует стандартные инструменты, но организованные таким образом, что облегчает разработку Android. Вы можете рефакторировать или изменить что -либо, кроме идеи, чтобы иметь надежную отправную точку. Вся проводка сделана для вас с гибкостью изменения в соответствии с вашими потребностями.
Kotlin DSL по умолчанию в Gradle Build System Leve.BaseActivity и BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr ), организованные по аспектам:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts файл)DEBUGRELEASEDEVINTERNALPUBLICLiveData и ViewModel поскольку некоторые инженеры могут использовать другие подходы на уровне пользовательского интерфейса, такие как MVI, MVP и т. Д../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppВ то время, когда мы находимся на очень ранней стадии. Но мы верим в Sofware Evolution, верно? Так что следите за обновлениями и проверьте как разделы « Как внести свой вклад» и «Списки» .
com.fernandocejas.sample по умолчанию. Допустим, вы хотите написать тесты (и вы всегда должны делать), как уже упоминалось, есть 3 класса, которые вступают в игру, и здесь примеры их использования:
UnitTest.kt : базовый класс модуля, который настройка макет для вас (вы используете только аннотацию @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 : базовый класс интеграции, который настройка макет для вас (вы используете только аннотацию @Mockk ). Вы можете использовать эти классы, когда они являются компонентами Android. Он подкреплен Robolectric. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : тестовый базовый класс пользовательского интерфейса, который настраивает эспрессо для вас class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity включает в себя простую автономную структуру флагов функций с очень простым API, сгенерированным во время компиляции. Если вам нужна дополнительная информация, обратитесь к введенному запросу на вытяжение. (TODO: добавить больше документации)
Пример его использования:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity или io.android.trinity . Здесь ничего не заложено, и все может измениться и развиваться в зависимости от работы сообщества и требований. Поэтому, если вы хотите внести свой вклад, не стесняйтесь открыть проблему и обозначить ее должным образом: ошибка , улучшение и т. Д. Или отправьте PR. Пожалуйста, как с хорошим описанием намерения, чтобы облегчить обзор
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.
