当您在Android Studio中启动全新的应用程序时,您将陷入一个准项目,该项目可能只有一个空的Activity。
如果您要建立超出“你好,世界!”,特别是如果您打算遵循使用MVVM之类的一些体系结构最佳实践时,每个项目中包含的基本Android库都会很快遇到一些限制。
在创建了一些基本的入门应用程序之后,我想我将分享我认为是添加到您的Android项目中的最佳“第一步”依赖项。
TL;DR - app/build.gradle
在我详细介绍之前,这里是基本的依存关系我为上一个入门应用程序整理的清单。
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.31"
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.core:core-ktx:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
// enable ViewModelProviders
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
// enable TextInputLayout
implementation 'com.google.android.material:material:1.0.0'
testImplementation 'junit:junit:4.12'
// enable Mocking with Mockito
testImplementation 'org.mockito:mockito-core:2.19.0'
// enable InstantTaskExecutorRule
testImplementation 'androidx.arch.core:core-testing:2.0.1'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
// non-deprecated AndroidJUnit4
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
}
我评论的行是我添加到Android Studio 3.4中基本的Android空白活动入门应用程序中的行。
让我们仔细看看这些库是什么以及我们为什么需要它们。
Prod Code
的实作关键字指定您实际的,正在运行的生产代码中的依赖项。
Lifecycle Extensions
Enable some handy extensions for Android Lifecycle components. Namely, the ability to use ViewModelProviders
.
implementation "androidx.lifecycle:lifecycle-extensions:2.0.0"
Any Android project needs an architectural pattern to follow. Google recommends using MVVM with the Android ViewModel. ViewModelProviders
enables you to quickly setup ViewModel
s in your Activities and Fragments in a Google-approved way.
Material
You can get by without many of the Material Design components, but it's easier to use them. They support some very useful UI elements that Android users are used to seeing.
implementation 'com.google.android.material:material:1.0.0'
For me, this library allowed me to use TextInputLayout
for my text fields. This enables built in error fields, animated hints, and a Material-first design that I wanted in my app.
Unit Tests
使用测试实施指定单元测试的依赖关系。 默认情况下包含JUnit。
Mockito
The included ExampleUnitŤest
in any Android beginner project doesn't use Mockito to test. However, as projects grow, you'll quickly realize the benefits of a full-fledged mocking library.
testImplementation 'org.mockito:mockito-core:2.19.0'
Mockito使您可以使用MockitoJUnitRunner并在测试中模拟数据和函数调用。 它确实有助于减少样板,并在单元测试中专注于正确的功能。
Lifecycle Testing
如果您做对了,并且将MVVM与Android Architecture Components配合使用,那么您可能需要测试您的视图模型和实时数据。
testImplementation 'androidx.arch.core:core-testing:2.0.1'
核心测试库使您可以测试实时数据在您的JUnit测试中,使用InstrumentationTestRegistry规则。
/**
* Enables Architecture Components testing in JUnit tests.
* (Include this at the top of your Unit Test class body.)
*/
@get:Rule
var task = InstantTaskExecutorRule()
UI Testing
的androidTestImplementation关键字指的是UI / Instrumentation测试依赖项。
Android JUnit
虽然您不需要使用AndroidJUnit4,此依赖项包括最新的,不建议使用的版本。
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
What's next?
希望本指南能帮助您确定几乎所有Android项目都需要的一些基本依赖项。
对于下一个Android项目中探索无限可能所需要的依赖关系,我们不可能一一列举。 接下来要取决于您。
This article is republished from my blog, AJ.dev - read it there.
所有评论(0)