V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
liteneo
V2EX  ›  分享创造

牛读一周年 重新起航

  •  
  •   liteneo · 2017-05-19 11:56:11 +08:00 · 2742 次点击
    这是一个创建于 2774 天前的主题,其中的信息可能已经有所发展或是发生改变。

    按惯例先放下载地址:牛读 v2.0.0 http://reader.liteneo.com/ 同时支持 iOS 以及 Android,欢迎品尝

    之前一直想着跟着 React Native 的 Release 节奏,每一两个月发一个版本,但是这次却等了四个多月,一方面是要等某些我想要的特性被支持,一些严重的八阿哥被修复,另外一个原因就是这次更新我几乎重写了绝大部分代码逻辑

    从用户的角度看,这次更新几乎没有大的更新,只有几处 UI 的更新,比如知乎日报详情页的视差效果以及集成了微信分享,但是对我来讲,这是一次脱胎换骨的更新

    1. dva, 之前的版本没有使用任何 redux、mobx 之类的状态管理工具,因为我觉得整个 App 的逻辑并不复杂,但是事实并非如此,里面各种 ref 的使用使整个流程变得异常复杂,后来经过在 redux 和 mobx 中间纠结,最后选择了抱 redux 大腿,用过 redux 的应该都知道 redux 相对繁琐的写法,所以我选择了 dva,一个封装了 redux + redux-saga 的状态管理库,然后就开始了漫长的重构之旅,dva的体验非常棒,简化了 redux 的写法,以及与 rudx-saga 的集成,现在我将绝大部分逻辑从组件里移到了model里,整个流程清晰多了

    2. react-navigation, 在重构的过程中,RN 先是移除了 NavigationExperimental,接着 depreciated 了一直以来的官方推荐的导航组件Navigator, 转而推荐使用react-navigation,牛读最开始也是用的Navigator,后来因为NavigationExperimental支持原生驱动动画,性能好太多,就切到了NavigationExperimental,这个过程基本无痛,现在为了为以后做准备,于是切换到react-navigation,这真的是件很痛苦的事,一方面是使用方式完全不一样,但最主要的原因是这个库本身问题太多,在重构的过程中,我一直都在反馈问题,提交 PR,终于把他打磨的满足我的需求了(但是对于其他一些场景,他依然还有很多问题没有解决),现在牛读里所有的转场动画都是用 react-navigation 实现的,包括设置界面的旋转

    我把 dva + react-navigation 的使用提炼了一个 react-native-dva-starter,我会持续把我认为的 dva 和 react-navigation 在 React Native 中的最佳实践加进去,有兴趣的可以关注下

    目前牛读的安卓版还有两个已知的问题

    1. 部分文章显示不全被截断,这个是因为 React Native 的一个问题引起的
    2. 设置界面选择关闭某些模块后会白屏,这个可以通过重启来解决

    主要是我手上没有安卓手机,没办法测试,再就是精力实在有限,因为完全是利用业余时间开发,这次重写耗费了我太多时间,但是我还是花费了很多时间去适配安卓版本,就是想证明 React Native 也可以做出体验很好的安卓应用,目前除了因为阿婆的专利问题 Android 的 ScrollView 不支持 overScroll,其他的效果跟 iOS 上完全一致

    6 条回复    2017-06-20 11:08:34 +08:00
    Elven
        1
    Elven  
       2017-05-19 12:53:03 +08:00 via iPhone
    为啥把 mobx 可怜巴巴的丢在那里 0.0
    smallpath
        2
    smallpath  
       2017-05-19 13:04:07 +08:00
    升到 0.43.3 发现内联 Image 的宽高神特么是反过来的, 升到 0.44 发现 facebook 直接把 Navigator 删了。。。。。。。。

    升了六七次 RN,没有一次升级能让我直接跑起来的
    liteneo
        3
    liteneo  
    OP
       2017-05-19 13:05:11 +08:00
    @Elven 因为 mobx 也是个很好的选择啊,而且可能是更好的选择,只是我选择了 redux 而已,mobx 的黑魔法能帮你省很多事,而且性能会更好,尤其是重复渲染的问题
    mysticzt123
        4
    mysticzt123  
       2017-05-19 21:19:22 +08:00
    卧槽 牛神你怎么也玩 v2ex
    BoiledEgg
        5
    BoiledEgg  
       2017-06-20 11:03:59 +08:00
    最新更新的 2.1.0,小米 5,阅读知乎内容,页面会截断。
    点开 https://www.v2ex.com/t/369718 这个帖子,100%闪退。
    开发者头条点进去说没有找到相关内容,第三方被阻止了?
    liteneo
        6
    liteneo  
    OP
       2017-06-20 11:08:34 +08:00
    @BoiledEgg 知乎页面的内容截断问题是已知的 bug,暂时没时间修复,开发者头条也有问题?这个我要看看了,因为我没有安卓机,不太好测试,感谢您的反馈
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   898 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:42 · PVG 04:42 · LAX 12:42 · JFK 15:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.