Foursquare Android版LBS定位应用

Android 版 Foursquare 的源码,真的挺值得一看。LBS 做得蛮成熟,签到、地理围栏、地图集成全都有,关键是代码还挺干净,架构也清晰。MVP 模式跑得稳,配合 Retrofit 和 Gson,网络层写得又清爽又省心。用的是 Google Maps API,配上 LocationServices,定位功能响应也快,Geofencing 那块可以学到不少。

UI 这块也没偷懒,RecyclerView用得到位,动画过渡也做得挺顺滑,体验上档次。数据存储方面,有SQLite+Room撑场子,再加上OkHttp做缓存,离线体验也不差。哦对了,权限也规矩,Android 6.0 之后的运行时权限管控考虑得比较到位。

异步方面,如果你还在用AsyncTask,可以看看它怎么混合用Coroutines搞定线程切换,UI 不卡顿,体验自然好。测试这块也有料,JUnitEspressoMockito都上了,不管是写单测还是集成测,套路都有。还有国际化、多语言支持这些细节也没拉下,适配不同屏幕也做得比较细。

如果你正准备撸一个 LBS 类的 App,或者想搞懂 Android 架构设计的细节,Foursquare 这份源码不妨拿来看一看。顺带附上一些相关资源,像MVPRetrofitKotlin项目的实战示例,也挺适合一起啃:

如果你对地图定位、网络求、权限这些模块还不熟,源码配着这些文章看会更有感觉。

rar 文件大小:1.5MB