ProjectX Android面试项目模板

安卓开发的面试小项目不知道从哪下手?ProjectX可以说是个挺合适的起点。它不整花活,就是把一套主流技术栈串起来,KotlinDagger2RxJava这些全都打包好了,架构也清晰,拿来就能跑,改改就能用。

Kotlin 的 Kotlin,语法简洁不啰嗦,空安全、扩展函数这些也挺香。用它写业务代码清爽多了,在ProjectX里就是主力语言。看起来舒服,改起来也省事。

RxJava异步还是能打的。像网络求、数据库 IO 啥的,配合LiveData那套,UI 更新又快又安全。你要是之前写 callback 写到头秃,用 RxJava 绝对舒服多了。

Dagger2的注入配好了,像ApiServiceRepository这些都不用手动 new。模块化做得还不错,测试起来也方便。搭个测试用例,改几行配置就能上。

再说ViewModel + LiveData,是 Android 官方推的组合。一个管数据,一个管通知更新,状态管理适合 UI 层。你要是做复杂点的表单、列表,状态来回切,靠它俩能省不少事。

ViewState也别忽略。多人写 UI 状态老是 if else 乱飞,其实把 UI 状态抽象成一坨东西,比如LoadingSuccessError三种,用一个sealed class管起来,一目了然。

ProjectX挺适合用来练手或者赶项目的底稿。如果你想熟悉现代 Android 架构,或者临时要交个面试项目,它能帮你省下不少搭框架的时间。

延伸阅读也可以看看这些:

如果你平时项目里也用这几样,可以顺手看看ProjectX的用法,说不定能给你点启发。

zip
ProjectX-master.zip 预估大小:79个文件
folder
ProjectX-master 文件夹
file
gradlew 5KB
file
settings.gradle 15B
folder
art 文件夹
file
app_ architecture.jpeg 314KB
file
app_screenshot.png 1.11MB
folder
buildSrc 文件夹
file
build.gradle.kts 60B
folder
src 文件夹
folder
main 文件夹
folder
java 文件夹
folder
co 文件夹
folder
icanteach 文件夹
folder
projectx 文件夹
folder
buildsrc 文件夹
file
Dependencies.kt 2KB
file
Versions.kt 687B
file
Configs.kt 635B
file
Plugins.kt 273B
file
Classpaths.kt 323B
folder
gradle 文件夹
folder
wrapper 文件夹
file
gradle-wrapper.properties 232B
file
gradle-wrapper.jar 53KB
file
LICENSE.md 1KB
file
README.md 2KB
file
gradlew.bat 2KB
file
gradle.properties 1KB
file
.gitignore 530B
folder
app 文件夹
folder
src 文件夹
folder
androidTest 文件夹
folder
java 文件夹
folder
co 文件夹
folder
icanteach 文件夹
folder
projectx 文件夹
file
ExampleInstrumentedTest.kt 630B
folder
test 文件夹
folder
java 文件夹
folder
co 文件夹
folder
icanteach 文件夹
file
RxImmediateSchedulerRule.kt 1KB
folder
projectx 文件夹
file
PopularTVShowsFeedItemViewStateTest.kt 2KB
file
PopularTvShowsTestSuite.kt 301B
file
PopularTVShowsFeedViewStateTest.kt 2KB
file
PopularTVShowsViewModelTest.kt 4KB
folder
main 文件夹
file
AndroidManifest.xml 822B
folder
res 文件夹
folder
mipmap-hdpi 文件夹
file
ic_launcher.png 3KB
file
ic_launcher_round.png 5KB
folder
mipmap-xxxhdpi 文件夹
file
ic_launcher.png 9KB
file
ic_launcher_round.png 15KB
folder
mipmap-xhdpi 文件夹
file
ic_launcher.png 4KB
file
ic_launcher_round.png 7KB
folder
mipmap-anydpi-v26 文件夹
file
ic_launcher.xml 270B
file
ic_launcher_round.xml 270B
folder
mipmap-mdpi 文件夹
file
ic_launcher.png 2KB
file
ic_launcher_round.png 3KB
folder
drawable 文件夹
file
ic_launcher_background.xml 5KB
folder
layout 文件夹
file
item_popular_tv_shows_feed.xml 3KB
file
activity_main.xml 2KB
folder
drawable-v24 文件夹
file
ic_launcher_foreground.xml 2KB
folder
values 文件夹
file
colors.xml 259B
file
strings.xml 126B
file
styles.xml 525B
file
dimens.xml 154B
folder
mipmap-xxhdpi 文件夹
file
ic_launcher.png 6KB
file
ic_launcher_round.png 10KB
folder
java 文件夹
folder
co 文件夹
folder
icanteach 文件夹
folder
projectx 文件夹
folder
common 文件夹
file
Mapper.kt 92B
file
ImageBindingAdapter.kt 622B
file
ReactiveViewModel.kt 449B
file
EndlessScrollListener.kt 2KB
file
Resource.kt 722B
folder
di 文件夹
folder
module 文件夹
file
ActivityBuilderModule.kt 477B
file
ViewModelModule.kt 665B
file
DataModule.kt 188B
folder
key 文件夹
file
ViewModelKey.kt 355B
folder
component 文件夹
file
AppComponent.kt 899B
folder
scope 文件夹
file
ActivityScope.kt 160B
file
ViewModelFactory.kt 1021B
file
Extensions.kt 2KB
folder
ui 文件夹
folder
populartvshows 文件夹
file
PopularTVShowsViewModel.kt 2KB
file
PopularTVShowsFeedAdapter.kt 2KB
folder
model 文件夹
file
PopularTvShows.kt 79B
file
PopularTvShowItem.kt 157B
file
PopularTvShowActivityModule.kt 300B
file
PopularTvShowMapper.kt 706B
file
PopularTVShowsStatusViewState.kt 354B
file
FetchPopularTvShowUseCase.kt 791B
file
PopularTVShowsFeedItemViewState.kt 327B
file
MainActivity.kt 3KB
folder
data 文件夹
file
NetworkModule.kt 1KB
file
RequestInterceptor.kt 703B
file
InterviewRestInterface.kt 335B
folder
feed 文件夹
file
MoviesRemoteDataSource.kt 296B
file
MoviesRepository.kt 727B
folder
response 文件夹
file
PopularTVShowItemResponse.kt 306B
file
PopularTVShowsResponse.kt 212B
file
InterviewApplication.kt 765B
file
.gitignore 12B
file
build.gradle 2KB
file
proguard-rules.pro 751B
file
build.gradle 543B
...
zip 文件大小:1.48MB