ChrisKyle's Blog

学有所思,思有所悟,悟有所行。

  前几篇博文介绍了项目的net层、data层、domain层,简述了它们是如何维系M层的,本文开始讲解项目的View层和Presenter层。至于为什么会采用MVP模式而不是MVC模式,本文针对MVP模式稍作讲解,首先要了解MVP是什么,用它能给项目带来什么收益。MVP(model-view-presener)是从经典的模式MVC(model-view-controller)衍变而来,它们的基本思想有相通的地方:Controller/...

发布 0 条评论

  本篇简述下项目的domain层,domain层在项目中担负的职责是处理presentation层下发的数据存取过程。因为data层仅是对数据存取并不包含对数据进一步处理工作,所以对数据处理应是项目的业务逻辑层职责。   在domain层,不关心数据的来源,只需定义Repository接口然后data层实现该接口实现即可,先看项目中FeedRepository的定义: interface FeedRepository { fun g...

发布 0 条评论

  通过上篇博客的简述可知,获取网络数据只需通过net层的Connector接口获取Retrofit对象,然后用其创建对应的Service对象即可发起网络请求,但是data层处理的数据不仅有网络数据,也有本地数据,其次本地数据存取又可分Sqlite存取和SharedPreferences存取等,这些存取过程都需要在data层处理,同时应尽可能的对依赖层保持低耦合。基于以上考虑,所以在data层中将数据存取抽出DataStore接口,实现...

发布 0 条评论

  有很多业内同学对软件工程半知半解,具体表现在开完产品需求会议之后,照着产品经理给的需求文档就开始进入编码阶段,这类开发人员中不乏技术水平不错的,但最终工程效率却是比较低下,这种不专业软件开发方法该如何避免,我在本系列博客中会尽自己所能做讲解。 ​ 本系列文章开篇也简单介绍了该项目的缘由,那么android工程如何有条不紊的进行呢? 必须要制定计划,监控计划并实施计划。虽然是一个人在做ikan产品,但是我深知计划的重要性,所以最开...

发布 0 条评论

  数月前在微信朋友圈发现有同学在做“微影”,就是分享一些最近上映的国内外影视剧,并收取一定金额的红包作为回报。我当时就萌生一个想法:微信分享形式有很大的局限性,如果做成独立的应用更有利于在目标用户群中传播。为了实现自己的想法,作为产品的“始作俑者”肯定要有分析产品,拆分需求及技术选型等环节,盲目实施使不得,那么产品提供哪些功能,面向什么用户,必须要先确定下来,经过一番思考后得出的产品需求总结:提供在线播放影视剧、下载影视剧,影视剧点评...

发布 0 条评论