完整代码Gitee地址:kotlin-demo: 10天Kotlin开发计划
总结篇:mvvm请求框架
经过前面基础学习,我们要如何运用到实际开发当中,
这里整理出了一套MVVM框架,先看看实际效果图:
项目结构
MVVM + Kotlin + ViewModel + Retrofit + RxJava
项目引用库
/* viewmodel*/
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0'
/* 网络访问 */
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
/* retrofit2 */
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'
/* 异步任务 */
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.19'
/* 刷新 */
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.2.0-alpha01'
/* 圆角图片 */
implementation 'de.hdodenhof:circleimageview:2.2.0'
/* 图片显示 */
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
请求接口
登录:https://api.github.com/user
列表:https://api.github.com/users/{username}/repos?&page=1&per_page=30&sort=updated
@GET("user")
fun fetchUserOwner(@Header("Authorization") authorization: String): Observable<UserInfo>
@GET("users/{username}/repos?")
fun queryRepos(@Path("username") username: String,
@Query("page") pageIndex: Int,
@Query("per_page") perPage: Int,
@Query("sort") sort: String): Observable<Repos>
未完待续...
项目会继续优化下去,喜欢的点个❤️吧。