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

牛读一周年 重新起航

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

    按惯例先放下载地址:牛读 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,阅读知乎内容,页面会截断。
    点开 t/369718 这个帖子,100%闪退。
    开发者头条点进去说没有找到相关内容,第三方被阻止了?
    liteneo
        6
    liteneo  
    OP
       2017-06-20 11:08:34 +08:00
    @BoiledEgg 知乎页面的内容截断问题是已知的 bug,暂时没时间修复,开发者头条也有问题?这个我要看看了,因为我没有安卓机,不太好测试,感谢您的反馈
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6063 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:05 PVG 11:05 LAX 20:05 JFK 23:05
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86