Dies ist ein winziges Framework mit einem Großteil des Gerüstcodes (mit einigen schönen Dienstprogrammen und vorbereiteten Quellcode), die für eine neue Android -Anwendung erforderlich sind.
Ja, Android Studio kann ein Projekt für Sie erstellen, aber es fehlen Teile, die ich immer zu jedem einzelnen Projekt hinzufüge, das ich erstelle. Dieser winzige Rahmen (ich würde sagen, immer noch Gerüstcode) soll dies lösen, indem es einfach und schnell erleichtert, um ein Android -Projekt mit den grundlegenden Bausteinen zu erstellen. Weitere Informationen zu Evolution und Fortschritt finden Sie im folgenden Abschnitt TODO .
Freiheit. Es verwendet Standardwerkzeuge, aber organisiert so, dass die Entwicklung von Android die Entwicklung von Android erleichtert. Sie können alles umarbeiten oder ändern, aber die Idee ist, einen robusten Ausgangspunkt zu haben. Die gesamte Verkabelung erfolgt für Sie mit der Flexibilität, gemäß Ihren Anforderungen geändert zu werden.
Kotlin DSL standardmäßig bei Gradle Build System Leve.BaseActivity und BaseFragments .UnitTest , AndroidTest , AcceptanceTest .buildScr Ordner), die nach Aspekten organisiert sind:compilation.gradle.ktsinfrastructure.gradle.ktsquality.gradle.ktsvariants.gradle.ktsDependencies.ktvariants.gradle.kts -Datei prüfen)DEBUGRELEASEDEVINTERNALPUBLICLiveData und ViewModel -Bibliotheken, da einige Ingenieure möglicherweise andere Ansätze auf UI -Ebene wie MVI, MVP usw. verwenden../gradlew runStaticAnalysis./gradlew runTestCoverage./gradlew runUnitTests./gradlew runAcceptanceTests./gradlew compileApp./gradlew runAppZu dieser Zeit sind einige manuelle Schritte involviert, da wir in einem sehr frühen Stadium sind. Aber wir glauben an Sofware Evolution, oder? Bleiben Sie also dran und überprüfen Sie sowohl die Abschnitte "Wie man einen Beitrag leisten" als auch die TODO -Liste .
com.fernandocejas.sample standardmäßig. Angenommen, Sie möchten Tests schreiben (und Sie sollten es immer tun), wie bereits erwähnt, gibt es 3 Klassen, die ins Spiel kommen, und hier Beispiele für ihre Verwendung:
UnitTest.kt : Unit -Test -Basisklasse, die sich für Sie einsetzt (Sie verwenden nur die @Mockk Annotation) 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 : Integrationstest -Basisklasse, die sich für Sie einsetzt (Sie verwenden nur die @Mockk -Annotation). Sie können diesen Klassen verwenden, wenn es sich um Android -Komponenten handelt. Es wird von Robolectric unterstützt. class YourTestClass : AndroidTest () {
@Mockk prival val yourMock
@Test
fun `given something, when something happens, then do something` () {
TODO ()
}AcceptanceTest.kt : UI -Testbasisklasse, die Espresso für Sie einstellt class MainActivityTest : AcceptanceTest ( MainActivity : :class.java) {
@Test
fun checkToolBarTest () {
onView(withId( R .id.toolbar)).check(matches(isDisplayed()))
}
}Android-Trinity enthält ein einfaches Framework für Offline-Features-Flags mit einer sehr einfachen API, die zur Kompilierungszeit erzeugt wird. Wenn Sie weitere Informationen wünschen, lesen Sie die eingeführte Pull -Anfrage. (TODO: Fügen Sie weitere Dokumentation hinzu)
Beispiel seiner Verwendung:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity oder io.android.trinity . Hier ist nichts in Stein gemeißelt und die Dinge können sich anhand der Community -Arbeit und den Anforderungen ändern und weiterentwickeln. Wenn Sie also einen Beitrag leisten möchten, können Sie ein Problem frei eröffnen und es ordnungsgemäß beschriften: Fehler , Verbesserung usw. oder senden Sie eine PR. Bitte beide mit guten Beschreibungen der Absicht, um die Überprüfung zu erleichtern
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.
