هذا هو إطار عمل صغير مع جزء كبير من رمز السقالات (مع بعض الأدوات المساعدة الرائعة ورمز المصدر المعدة) المطلوب لبدء تطبيق Android جديد.
نعم ، قد يقوم Android Studio بإنشاء مشروع لك ، ولكن هناك أجزاء مفقودة ، والتي ينتهي بها الأمر دائمًا إلى إضافتها إلى كل مشروع أقوم بإنشائه. يهدف هذا الإطار الصغير (أود أن أقول لا يزال رمز السقالات) إلى حل هذا من خلال جعل مشروع Android سهلاً وسريعًا لإنشاء مشروع 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في الوقت الحالي ، هناك خطوتين يدويتين متضمنتين لأننا في مرحلة مبكرة جدًا. لكننا نؤمن بتطور البرامج الألياف أليس كذلك؟ لذا ترقبوا وتفقد كل من أقسام كيفية المساهمة وقائمة TODO .
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 إطارًا بسيطًا لعلامات الميزات في وضع عدم الاتصال مع واجهة برمجة تطبيقات بسيطة للغاية تم إنشاؤها في وقت الترجمة. إذا كنت تريد المزيد من المعلومات ، راجع طلب السحب المقدم. (تودو: أضف المزيد من الوثائق)
مثال على استخدامه:
Flag . Hello whenActivated { displayGreeting( R .string.hello) }quality.gradle.kts .quality.gradle.kts . ./gradlew setupProject io.android-trinity أو io.android.trinity . لم يتم تعيين أي شيء في الحجر هنا ويمكن للأشياء أن تتغير وتتطور بناءً على عمل المجتمع والمتطلبات. لذلك إذا كنت ترغب في المساهمة ، فلا تتردد في فتح مشكلة وتسميةها بشكل صحيح: الأخطاء ، والتحسين ، وما إلى ذلك .. أو إرسال العلاقات العامة. يرجى كلاهما مع وصف جيد للنية ، من أجل تسهيل المراجعة
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.
