V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wyndamlion
V2EX  ›  Android

最近学习了下 MVVM,总结一下个人认为的最佳实践。

  •  1
     
  •   wyndamlion · 2018-05-14 16:25:02 +08:00 · 13653 次点击
    这是一个创建于 2384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近学习了下 MVVM,总结一下个人认为的最佳实践。接口使用 V2EX 的抓取的接口,做了部分功能。mvvm 使用的技术是 RxJava+DataBinding,网络请求 Retrofit,图片加载库 Glide,UI 设计仿 android 版知乎。

    接口从知乎上找的,地址在这里: https://github.com/djyde/V2EX-API

    我的这个项目地址在这里: https://github.com/onlynight/V2EX

    如果可能的话希望能够拿到 V2EX 的其他接口,想做一个非官方客户端练练手。github 项目地址里有 app 的预览。

    第 1 条附言  ·  2018-05-15 09:27:49 +08:00
    经验取自 android 官方的框架,站在巨人肩上省去重复造轮子。项目地址: https://github.com/googlesamples/android-architecture,使用的是 mvvm-rxjava 分支: https://github.com/googlesamples/android-architecture/tree/dev-todo-mvvm-rxjava。目前是 dev 状态,有些时间没更新了。

    只用了 DataBinding 的基础功能,并没有使用高级功能,不想污染 xml ;也没有使用官方提供的 LiveData 这样的工具。个人觉得 xml 被污染了很难受,所有多了一步在 view 中 setValue 的操作。基本是使用 Rx 的响应式方式对数据更新从而更新界面。


    以上都是我个人总结的最佳实践,希望大家能相互交流学习。
    10 条回复    2018-05-15 13:35:27 +08:00
    fortunezhang
        1
    fortunezhang  
       2018-05-14 16:29:02 +08:00
    感觉.idea 应该 ignore 掉。
    wyndamlion
        2
    wyndamlion  
    OP
       2018-05-14 16:33:07 +08:00
    @fortunezhang 哈哈哈,好的,多谢指点
    wyndamlion
        3
    wyndamlion  
    OP
       2018-05-14 16:43:50 +08:00
    只用了 DataBinding 的基础功能,并没有使用高级功能,不想污染 xml ;也没有使用官方提供的 LiveData 这样的工具。个人觉得 xml 被污染了很难受,所有多了一步在 view 中 setValue 的操作。基本是使用 Rx 的响应式方式对数据更新从而更新界面。
    lookforsex
        4
    lookforsex  
       2018-05-14 16:47:38 +08:00 via iPhone
    如果加上 KOTLIN 的加持,我觉得代码会更漂亮
    wyndamlion
        5
    wyndamlion  
    OP
       2018-05-14 16:57:38 +08:00
    @lookforsex 后面单独开个分支来做 kotlin 的版本,多谢分享。
    DeweyReed
        6
    DeweyReed  
       2018-05-14 17:19:51 +08:00
    apk 可以放到 Release 里,不然 Github 一直发邮件提醒你。
    LiveData 和 ViewModel 都成官方推荐了,处理横竖屏也省事儿。
    wyndamlion
        7
    wyndamlion  
    OP
       2018-05-14 17:44:35 +08:00
    @DeweyReed 闭门造车啊,不太了解现在流行什么,我去研究下。
    shangshicc
        8
    shangshicc  
       2018-05-14 18:42:17 +08:00
    建议可以参考 Google 官方架构 demo:https://github.com/googlesamples/android-architecture
    wyndamlion
        9
    wyndamlion  
    OP
       2018-05-14 22:23:55 +08:00
    @shangshicc 基础的框架类似于 RxJava-todo 分支,加了些 databinding,使用 lambda 表达式精简代码。
    vivili
        10
    vivili  
       2018-05-15 13:35:26 +08:00
    这个玩意,早在三四年前,那时候写.net WPF 的时候就用过,现在想想过往云烟,没卵用
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   936 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:10 · PVG 06:10 · LAX 14:10 · JFK 17:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.