SnappyShopper:关于显示数据并允许用户与其交互的应用程序的[面试]技术测试-源码

上传者: 42110070 | 上传时间: 2021-03-03 12:16:25 | 文件大小: 205KB | 文件类型: ZIP
活泼的购物者 我尝试做一些额外的任务,例如:跟踪requestOrder ,删除了Search按钮等。我还认为,以底页快速显示喜欢的球员会很棒。 这种方法不是很优雅,但是当在收藏夹中添加或删除播放器时,我设法使两个列表保持同步。 ![搜索功能](images / no results.png) :triangular_ruler: 建筑学 该项目是用Kotlin编写的,并使用MVVM。 后台任务(网络操作和磁盘上的读/写)由协程处理。 通过存储库模式访问数据,并手动注入依赖项。 将Retrofit 2与GsonConverterFactory结合使用时,将自动解析GsonConverterFactory 。 使用ConstraintLayout和CoordinatorLayout & CardView设计布局以处理底部工作表。 我在Gradle中指定了API URL,这样每种构建类型都可以拥有自己的API。

文件下载

资源详情

[{"title":"( 75 个子文件 205KB ) SnappyShopper:关于显示数据并允许用户与其交互的应用程序的[面试]技术测试-源码","children":[{"title":"SnappyShopper-master","children":[{"title":"gradlew.bat <span style='color:#111;'> 2.13KB </span>","children":null,"spread":false},{"title":"gradlew <span style='color:#111;'> 5.17KB </span>","children":null,"spread":false},{"title":"images","children":[{"title":"no results.png <span style='color:#111;'> 7.55KB </span>","children":null,"spread":false},{"title":"search.png <span style='color:#111;'> 23.25KB </span>","children":null,"spread":false},{"title":"favs.png <span style='color:#111;'> 9.78KB </span>","children":null,"spread":false}],"spread":true},{"title":"gradle.properties <span style='color:#111;'> 1.16KB </span>","children":null,"spread":false},{"title":"readme.md <span style='color:#111;'> 1.50KB </span>","children":null,"spread":false},{"title":"app","children":[{"title":"proguard-rules.pro <span style='color:#111;'> 750B </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"io","children":[{"title":"github","children":[{"title":"jonzarate","children":[{"title":"snappyshopper","children":[{"title":"ExampleUnitTest.kt <span style='color:#111;'> 357B </span>","children":null,"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"androidTest","children":[{"title":"java","children":[{"title":"io","children":[{"title":"github","children":[{"title":"jonzarate","children":[{"title":"snappyshopper","children":[{"title":"ExampleInstrumentedTest.kt <span style='color:#111;'> 693B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"res","children":[{"title":"mipmap-xxxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 10.40KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 16.18KB </span>","children":null,"spread":false}],"spread":true},{"title":"drawable","children":[{"title":"ic_line.xml <span style='color:#111;'> 145B </span>","children":null,"spread":false},{"title":"ic_fav_full.xml <span style='color:#111;'> 438B </span>","children":null,"spread":false},{"title":"ic_fav_emtpy.xml <span style='color:#111;'> 618B </span>","children":null,"spread":false},{"title":"ic_launcher_background.xml <span style='color:#111;'> 5.47KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-hdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 3.51KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 5.21KB </span>","children":null,"spread":false}],"spread":false},{"title":"drawable-v24","children":[{"title":"ic_launcher_foreground.xml <span style='color:#111;'> 1.66KB </span>","children":null,"spread":false}],"spread":false},{"title":"values","children":[{"title":"colors.xml <span style='color:#111;'> 340B </span>","children":null,"spread":false},{"title":"themes.xml <span style='color:#111;'> 837B </span>","children":null,"spread":false},{"title":"strings.xml <span style='color:#111;'> 1010B </span>","children":null,"spread":false}],"spread":false},{"title":"values-night","children":[{"title":"themes.xml <span style='color:#111;'> 837B </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xxhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 7.72KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 11.59KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-mdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 2.57KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 3.31KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-xhdpi","children":[{"title":"ic_launcher.png <span style='color:#111;'> 4.81KB </span>","children":null,"spread":false},{"title":"ic_launcher_round.png <span style='color:#111;'> 7.30KB </span>","children":null,"spread":false}],"spread":false},{"title":"mipmap-anydpi-v26","children":[{"title":"ic_launcher_round.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false},{"title":"ic_launcher.xml <span style='color:#111;'> 272B </span>","children":null,"spread":false}],"spread":false},{"title":"layout","children":[{"title":"viewholder_team.xml <span style='color:#111;'> 1.37KB </span>","children":null,"spread":false},{"title":"viewholder_no_results_found.xml <span style='color:#111;'> 910B </span>","children":null,"spread":false},{"title":"activity_main.xml <span style='color:#111;'> 3.90KB </span>","children":null,"spread":false},{"title":"viewholder_player.xml <span style='color:#111;'> 1.86KB </span>","children":null,"spread":false},{"title":"viewholder_load_more.xml <span style='color:#111;'> 1.39KB </span>","children":null,"spread":false},{"title":"viewholder_header.xml <span style='color:#111;'> 841B </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"java","children":[{"title":"io","children":[{"title":"github","children":[{"title":"jonzarate","children":[{"title":"snappyshopper","children":[{"title":"SnappyShopperApp.kt <span style='color:#111;'> 287B </span>","children":null,"spread":false},{"title":"viewmodel","children":[{"title":"MainViewModel.kt <span style='color:#111;'> 6.45KB </span>","children":null,"spread":false}],"spread":false},{"title":"model","children":[{"title":"data","children":[{"title":"Team.kt <span style='color:#111;'> 153B </span>","children":null,"spread":false},{"title":"Player.kt <span style='color:#111;'> 463B </span>","children":null,"spread":false},{"title":"SearchResultData.kt <span style='color:#111;'> 430B </span>","children":null,"spread":false},{"title":"SearchResponse.kt <span style='color:#111;'> 112B </span>","children":null,"spread":false},{"title":"SearchResult.kt <span style='color:#111;'> 252B </span>","children":null,"spread":false}],"spread":false},{"title":"net","children":[{"title":"FootballApi.kt <span style='color:#111;'> 929B </span>","children":null,"spread":false},{"title":"Retrofit.kt <span style='color:#111;'> 428B </span>","children":null,"spread":false}],"spread":false},{"title":"local","children":[{"title":"Room.kt <span style='color:#111;'> 370B </span>","children":null,"spread":false},{"title":"FootballDao.kt <span style='color:#111;'> 493B </span>","children":null,"spread":false},{"title":"AppDatabase.kt <span style='color:#111;'> 321B </span>","children":null,"spread":false}],"spread":false},{"title":"repo","children":[{"title":"FootballRepository.kt <span style='color:#111;'> 1.21KB </span>","children":null,"spread":false}],"spread":false}],"spread":false},{"title":"view","children":[{"title":"search","children":[{"title":"SearchAdapterListener.kt <span style='color:#111;'> 246B </span>","children":null,"spread":false},{"title":"SearchAdapter.kt <span style='color:#111;'> 4.41KB </span>","children":null,"spread":false},{"title":"SearchViewHolder.kt <span style='color:#111;'> 2.32KB </span>","children":null,"spread":false}],"spread":false},{"title":"fav","children":[{"title":"FavViewHolder.kt <span style='color:#111;'> 1.29KB </span>","children":null,"spread":false},{"title":"FavAdapterListener.kt <span style='color:#111;'> 183B </span>","children":null,"spread":false},{"title":"FavAdapter.kt <span style='color:#111;'> 1.26KB </span>","children":null,"spread":false}],"spread":false},{"title":"MainActivity.kt <span style='color:#111;'> 3.34KB </span>","children":null,"spread":false},{"title":"MainViewModelFactory.kt <span style='color:#111;'> 475B </span>","children":null,"spread":false}],"spread":false},{"title":"Injector.kt <span style='color:#111;'> 1011B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true},{"title":"AndroidManifest.xml <span style='color:#111;'> 896B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 6B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 2.46KB </span>","children":null,"spread":false}],"spread":true},{"title":"gradle","children":[{"title":"wrapper","children":[{"title":"gradle-wrapper.jar <span style='color:#111;'> 53.06KB </span>","children":null,"spread":false},{"title":"gradle-wrapper.properties <span style='color:#111;'> 230B </span>","children":null,"spread":false}],"spread":true}],"spread":true},{"title":".idea","children":[{"title":"gradle.xml <span style='color:#111;'> 859B </span>","children":null,"spread":false},{"title":"misc.xml <span style='color:#111;'> 372B </span>","children":null,"spread":false},{"title":"jarRepositories.xml <span style='color:#111;'> 1.03KB </span>","children":null,"spread":false},{"title":"vcs.xml <span style='color:#111;'> 180B </span>","children":null,"spread":false},{"title":".name <span style='color:#111;'> 14B </span>","children":null,"spread":false},{"title":"dictionaries","children":[{"title":"JonZarate.xml <span style='color:#111;'> 150B </span>","children":null,"spread":false}],"spread":false},{"title":"compiler.xml <span style='color:#111;'> 170B </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 47B </span>","children":null,"spread":false}],"spread":true},{"title":".gitignore <span style='color:#111;'> 225B </span>","children":null,"spread":false},{"title":"settings.gradle <span style='color:#111;'> 50B </span>","children":null,"spread":false},{"title":"build.gradle <span style='color:#111;'> 642B </span>","children":null,"spread":false}],"spread":false}],"spread":true}]

评论信息

免责申明

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