美文网首页免费
《云阅2.0》一款同时看玩安卓和干货集中营资讯的App

《云阅2.0》一款同时看玩安卓和干货集中营资讯的App

作者: Jinbeen | 来源:发表于2018-11-06 21:47 被阅读229次
    CloudReader.png

    一、云阅2.0

    《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目
    在云阅发布第一版之后,大约经过了近两年的时间,不断的更新迭代,现在已经完成了2.0,相比第一版它改变了很多:

    最新截图

    1、新增功能

    • 玩安卓完整模块(首页、知识体系、导航数据、收藏文章和网址)
    • 糗事百科段子内容
    • webview 新增分享,复制,刷新,浏览器打开,添加到收藏功能
    • 侧边栏新增 账号登录、我的收藏、退出应用功能
    • 增加Room的使用

    2、优化&修复

    • 网络请求升级到Retrofit2.x,稳定运行
    • 保存图片优化
    • webview大幅完善,具体详见WebViewStudy
    • 解决应用退出后台,点击图标重新启动问题
    • 升级gradle到3.0以上
    • Andoird性能优化 - 布局优化
    • 修复可能存在的内存泄漏问题

    具体见更新日志-云阅

    二、交流

    期间有很多人提了很多Issues,有很多表示喜欢的,说已经使用了一年多了,很感谢。还有指出问题的,比如提到说MVVM架构不规范及内存泄漏问题,还有一部分请教问题的,尽量解决大家的问题,同时提升自己,但有些时候由于自己本身工作的原因,没有多余的时间解决问题还请大家多见谅。

    关于MVVM架构的问题之前和大家说了,是我理解的有点偏差,可能大部分的架构是MVP - databinding,也有比较典型的MVVM - datadinding,比如登录页面LoginActivity。感觉MVVM有些情况并没有很好的解决日常开发的问题。对于MVC,MVP,MVVM,我们都应该理解它们的含义,并在具体的情况使用合适的架构,比如一个简单的页面就没太大的必要去写MVVM,那样只会多一些class文件,也许一个MVC就解决的很好。

    因为我平时也是用这个软件来看一些技术的动态,随着干货集中营更新的不频繁,玩安卓也越来越完善后,便实现了玩安卓的大部分功能,没有实现的只有少部分接口了,比如TODO,搜索部分,搜索后期也会完善,TODO因为平时自己用奇妙清单觉得很好用,感觉再写一个用处不大,之后要做的话就是结合文章一起做了,比如看到一篇好文章想什么时间来学就添加一个TODO,不过这是之后的事了。

    三、2.0 之后的计划

    如果应用中使用到的Api(玩安卓、干货集中营和豆瓣开放Api)可以继续使用的话,以后的样式ui基本就是这样子了,期间也会加一些实用的功能,如监控剪切板的内容打开链接等。我会一直维护这个项目,有什么问题可以随时交流,但今后的重心可能不会于此。

    此应用虽然基础的UI是仿网易云音乐界面,但是具体的一些细节,如电影部分和玩安卓的主页面等都是花了很长时间慢慢调试才达到这样相对美观的效果,其中包含文字颜色,图标及一些图片的选择。这对于一个业余的开发者来讲很耗时间,其中参考了ui设计网站里的一部分设计图,可以说考虑ui方面的展示比写代多码付出了几倍的时间。

    不久后可能会出一款全栈的App,并自己设计UI,而不是使用其他软件的UI,仿xxx系列只是初期的阶段,正如模仿刘德华,张学友之类的,模仿始终是模仿,活在其他人的影子之下,最终实现一款完全属于自己的App才是我们的目标。

    四、最后

    如果大家感兴趣可以前往下载:https://fir.im/cloudreader
    有什么问题可以随时交流:

    相关文章

      网友评论

      • c34cdda8e285:楼主你写的APP真的是太好了,我已经读的差不多读完了。但是唯一有一个比较遗憾的地方,就是没有Kotlin版0 0,现在Google推出的所有新的库,如Jetpack里的库,DataBinding,LiveData,Room以及ViewModel都是以Kotlin为主的。所以我现在也在努力把楼主整个项目转成Kotlin,不过内容真的太多了哈哈,希望楼主也能出个Kotlin版本的。
        Jinbeen:@Sweet_8b05 哈哈,你可以看一下最新的LoginActivity 和 OneFragment 还有 TreeFragment,我在慢慢修正,之前写的有问题
        c34cdda8e285:楼主,我在仔细阅读你的APP框架之后发现了一个惊天秘密 0 0 。那就是:你这是个纯正的MVP框架啊,你的Navigator接口就是MVP中的IView,然后Fragment(即IView的实现类)继承IView接口,再在Fragment中创建ViewModel(实际是Presenter),而Presenter中持有View(通过Navigator这个接口)和Model,只不过Presenter省去了IPresenter接口。MVP中最典型的就是View和Presenter互相持有引用,你这种就是最典型的MVP架构。MVVM中View持有ViewModel的引用,而ViewModel是不持有View的,然后通过Databinding,利用声明式函数${ },在ViewModel中直接修改XML(Google的android-architecture-todo-mvvm-databinding),而不是把数据传回给View,你这里的Databinding相当于只是代替了findViewById()。
        Jinbeen:@Sweet_8b05 kotlin版本的就不是这个应用了,可能会新写一个,正在打算呢

      本文标题:《云阅2.0》一款同时看玩安卓和干货集中营资讯的App

      本文链接:https://www.haomeiwen.com/subject/bbvitqtx.html