coolweatherjetpack:酷欧天气的Jetpack版本实现,采用了MVVM架构

上传者: 42134537 | 上传时间: 2021-05-29 00:06:25 | 文件大小: 933KB | 文件类型: ZIP
酷欧天气Jetpack版 酷欧天气的Jetpack版本实现,采用了MVVM架构。 这里我先给出一张酷欧天气Jetpack版的架构设计图,这张图是模仿Google Codelabs的Sunshine项目画出来的。拥有良好架构设计的项目都是可以用简洁清晰的架构图表示出来的,而一个杂乱无章没有架构设计的项目则很难用架构图表示出来。 上述架构图可能一开始看你会找不着重点,其实这张架构图非常清晰,我来带大家解读一下。 首先我们通过这张架构图成功将程序分为了若干层。 绿色部分表示的是UI控制层,这部分就是我们平时写的Activity和Fragment。 蓝色部分表示的是ViewModel层,ViewModel用于持有和UI元素相关的数据,以保证这些数据在屏幕旋转时不会丢失,以及负责和仓库之间进行通讯。 黄色部分表示的是仓库层,仓库层要做的工作是自主判断接口请求的数据应该是从数据库中读取还是从网络中获取

文件下载

资源详情

[{"title":"( 77 个子文件 933KB ) coolweatherjetpack:酷欧天气的Jetpack版本实现,采用了MVVM架构","children":[{"title":"coolweatherjetpack-master","children":[{"title":".gitignore <span style='color:#111;'> 1009B </span>","children":null,"spread":false},{"title":"app","children":[{"title":".gitignore <span style='color:#111;'> 7B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 1.77KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"androidTest","children":[{"title":"java","children":[{"title":"com","children":[{"title":"coolweather","children":[{"title":"coolweatherjetpack","children":[{"title":"ExampleInstrumentedTest.kt <span style='color:#111;'> 656B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"AndroidManifest.xml <span style='color:#111;'> 1.01KB </span>","children":null,"spread":false},{"title":"res","children":[{"title":"mipmap-xhdpi","children":[{"title":"logo.png <span style='color:#111;'> 41.64KB </span>","children":null,"spread":false}],"spread":true},{"title":"mipmap-mdpi","children":[{"title":"logo.png <span style='color:#111;'> 41.64KB </span>","children":null,"spread":false}],"spread":true},{"title":"layout","children":[{"title":"simple_item.xml <span style='color:#111;'> 892B </span>","children":null,"spread":false},{"title":"now.xml <span style='color:#111;'> 1.11KB </span>","children":null,"spread":false},{"title":"choose_area.xml <span style='color:#111;'> 1.68KB </span>","children":null,"spread":false},{"title":"suggestion.xml <span style='color:#111;'> 1.74KB </span>","children":null,"spread":false},{"title":"activity_weather.xml <span style='color:#111;'> 3.04KB </span>","children":null,"spread":false},{"title":"activity_main.xml <span style='color:#111;'> 244B </span>","children":null,"spread":false},{"title":"forecast.xml <span style='color:#111;'> 1.08KB </span>","children":null,"spread":false},{"title":"forecast_item.xml <span style='color:#111;'> 1.86KB </span>","children":null,"spread":false},{"title":"title.xml <span style='color:#111;'> 1.52KB </span>","children":null,"spread":false},{"title":"aqi.xml <span style='color:#111;'> 3.57KB </span>","children":null,"spread":false}],"spread":true},{"title":"mipmap-xxhdpi","children":[{"title":"logo.png <span style='color:#111;'> 41.64KB </span>","children":null,"spread":false}],"spread":true},{"title":"drawable","children":[{"title":"ic_launcher_background.xml <span style='color:#111;'> 4.77KB </span>","children":null,"spread":false}],"spread":false},{"title":"xml","children":[{"title":"network_security_config.xml <span style='color:#111;'> 252B </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'> 1.92KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-hdpi","children":[{"title":"logo.png <span style='color:#111;'> 41.64KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxxhdpi","children":[{"title":"logo.png <span style='color:#111;'> 41.64KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-xxhdpi","children":[{"title":"ic_home.png <span style='color:#111;'> 310B </span>","children":null,"spread":false},{"title":"ic_back.png <span style='color:#111;'> 191B </span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"strings.xml <span style='color:#111;'> 81B </span>","children":null,"spread":false},{"title":"colors.xml <span style='color:#111;'> 208B </span>","children":null,"spread":false},{"title":"styles.xml <span style='color:#111;'> 381B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"assets","children":[{"title":"litepal.xml <span style='color:#111;'> 399B </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"coolweather","children":[{"title":"coolweatherjetpack","children":[{"title":"data","children":[{"title":"Resource.kt <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"model","children":[{"title":"weather","children":[{"title":"Forecast.kt <span style='color:#111;'> 447B </span>","children":null,"spread":false},{"title":"Basic.kt <span style='color:#111;'> 398B </span>","children":null,"spread":false},{"title":"Weather.kt <span style='color:#111;'> 357B </span>","children":null,"spread":false},{"title":"AQI.kt <span style='color:#111;'> 184B </span>","children":null,"spread":false},{"title":"Now.kt <span style='color:#111;'> 356B </span>","children":null,"spread":false},{"title":"Suggestion.kt <span style='color:#111;'> 542B </span>","children":null,"spread":false},{"title":"HeWeather.kt <span style='color:#111;'> 207B </span>","children":null,"spread":false}],"spread":false},{"title":"place","children":[{"title":"City.kt <span style='color:#111;'> 322B </span>","children":null,"spread":false},{"title":"Province.kt <span style='color:#111;'> 310B </span>","children":null,"spread":false},{"title":"County.kt <span style='color:#111;'> 333B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"WeatherRepository.kt <span style='color:#111;'> 1.99KB </span>","children":null,"spread":false},{"title":"db","children":[{"title":"CoolWeatherDatabase.kt <span style='color:#111;'> 449B </span>","children":null,"spread":false},{"title":"PlaceDao.kt <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"WeatherDao.kt <span style='color:#111;'> 1.43KB </span>","children":null,"spread":false}],"spread":false},{"title":"network","children":[{"title":"api","children":[{"title":"PlaceService.kt <span style='color:#111;'> 711B </span>","children":null,"spread":false},{"title":"WeatherService.kt <span style='color:#111;'> 396B </span>","children":null,"spread":false}],"spread":false},{"title":"ServiceCreator.kt <span style='color:#111;'> 715B </span>","children":null,"spread":false},{"title":"CoolWeatherNetwork.kt <span style='color:#111;'> 2.05KB </span>","children":null,"spread":false}],"spread":false},{"title":"PlaceRepository.kt <span style='color:#111;'> 1.77KB </span>","children":null,"spread":false}],"spread":false},{"title":"ui","children":[{"title":"MainViewModel.kt <span style='color:#111;'> 288B </span>","children":null,"spread":false},{"title":"area","children":[{"title":"ChooseAreaFragment.kt <span style='color:#111;'> 4.21KB </span>","children":null,"spread":false},{"title":"ChooseAreaModelFactory.kt <span style='color:#111;'> 469B </span>","children":null,"spread":false},{"title":"ChooseAreaViewModel.kt <span style='color:#111;'> 3.45KB </span>","children":null,"spread":false},{"title":"ChooseAreaAdapter.kt <span style='color:#111;'> 985B </span>","children":null,"spread":false}],"spread":false},{"title":"MainActivity.kt <span style='color:#111;'> 1.07KB </span>","children":null,"spread":false},{"title":"weather","children":[{"title":"WeatherModelFactory.kt <span style='color:#111;'> 470B </span>","children":null,"spread":false},{"title":"WeatherViewModel.kt <span style='color:#111;'> 2.09KB </span>","children":null,"spread":false},{"title":"WeatherActivity.kt <span style='color:#111;'> 1.72KB </span>","children":null,"spread":false}],"spread":false},{"title":"MainModelFactory.kt <span style='color:#111;'> 456B </span>","children":null,"spread":false}],"spread":false},{"title":"util","children":[{"title":"InjectorUtil.kt <span style='color:#111;'> 1.05KB </span>","children":null,"spread":false},{"title":"BindingAdapters.kt <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"CoolWeatherExecutors.kt <span style='color:#111;'> 556B </span>","children":null,"spread":false}],"spread":false},{"title":"CoolWeatherApplication.kt <span style='color:#111;'> 449B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"coolweather","children":[{"title":"coolweatherjetpack","children":[{"title":"ExampleUnitTest.kt <span style='color:#111;'> 359B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"proguard-rules.pro <span style='color:#111;'> 751B </span>","children":null,"spread":false}],"spread":true},{"title":"images","children":[{"title":"architecture.jpg <span style='color:#111;'> 171.64KB </span>","children":null,"spread":false},{"title":"Screenshot_1.png <span style='color:#111;'> 468.08KB </span>","children":null,"spread":false},{"title":"Screenshot_2.png <span style='color:#111;'> 46.73KB </span>","children":null,"spread":false}],"spread":true},{"title":"settings.gradle <span style='color:#111;'> 15B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 644B </span>","children":null,"spread":false},{"title":"gradlew <span style='color:#111;'> 5.17KB </span>","children":null,"spread":false},{"title":"LICENSE <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 3.29KB </span>","children":null,"spread":false},{"title":"gradlew.bat <span style='color:#111;'> 2.13KB </span>","children":null,"spread":false},{"title":"gradle.properties <span style='color:#111;'> 870B </span>","children":null,"spread":false},{"title":"gradle","children":[{"title":"wrapper","children":[{"title":"gradle-wrapper.properties <span style='color:#111;'> 232B </span>","children":null,"spread":false},{"title":"gradle-wrapper.jar <span style='color:#111;'> 53.06KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":false}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明