一个简单的 APP 实现

1,656 阅读3分钟
原文链接: www.jianshu.com

实现这个APP是我自己对于一些常用框架的熟悉过程和应用过程。

这是一个基于mvp的模式开发的APP。其实现的效果如下:

image

image

这篇文字不是讲解是如何实现,因为我相信如果你想,那么实现它只是时间问题,无关你是否聪明。(作者表示 最近智商被压制☹☹☹☹☹,本来就笨)
我只讲实现该项目的一些难点:

1.合理使用单例模式,这会使你的应用程序更加完善和减少内存的使用。在数据库操作中,使用单例模式将是你非常好的选择。当然,这一切随之需求变化而变化。合理使用现成的模式,比如装饰者模式等会使你的编程更加有效和实用。这将更加符合现实开发的需求。如果不会,那就必须来一弹了。

2.字符串的连接操作:
第一反应是不是“+”,小儿科的东西,运算符操作多么方便。但是这并不是说效率第一。当运用到及其多的字符串操作的时候,我觉得应该想你推荐:
StringBuilder 这个类了。这个类同样是来自Java,但其在字符串拼接上回更具有优势。如果不信,你可以试试。

3.GreenDao 是一款特别有名的数据库操作库。在Android中,由于它是在编译中注入而不是反射注入的关系,操作速度回比其他的数据库更加迅速。
如果你用过,是不是很酸爽,没用的朋友可以试试。但中间有个问题:
但你使用

@ Property(nameInDb = "Title")

该注解的时候,greenDao 会默认将bean的字符当成数据库字段的。如果用这个就是指定字段。但千万记住好像 你用了@id 这后并不会创建这个字段的数据库字段,当你用@ Property 时 ,这时候要在@id的下面加@Property。这是我尝试了许久的。

4.SurfaceView 并不适合作为loadview,这句话并不肯定,因为我没有尝试过其他情况,在我的APP中我用了SurfaceView这个作为loagdview,中间会有些UI不同协同的情况。我并没有舍弃这个控件。正如前面所提的这是个学习的demo,更多的是学到点什么,不是吗?

5.关于textview 的跑马灯实现,作者是参考了网上的教程自己写的一个view,并不是在xml中实现。因为在XML中设置并没有看到其中的效果。

6.关于AlertDialog 的设置和适配屏幕的问题。AlertDialog这个自身是会带有背景的,如果你想用有圆角的背景,那么请在代码中设置AlertDialog没背景或者用

dialog.getWindow().setBackgroundDrawableResource(R.drawable.writerinfo);

进行设置AlertDialog 的背景。这个适配其实比较麻烦的操作。另外DialogFragment其实是替代Dialog的一个很好的类。

这个APP使用的框架有:

  • 著名的网络框架 retrofit2 自然包括okhttp等
  • 数据库操作 GreenDao Sql 语句很容易产生错误,如果你是大神请忽略
    *butterknife 框架 减少你写findviewbyid onclick 等重复代码
    这个demo并不是十分清晰的MVP模式样板。
    近期不会进行更新该app ,没实现加载更多,rxjava 没用上。。。。。 = ̄ω ̄=
    感谢gank.io的api
    好了,没什么想说的了。
    最后来个github传送门
    期望给个star 鼓励一下(有问题可以私信 或邮箱)