平安金融科技移动技术周报(第三十七期)
@author ASCE1885的 Github 微博 CSDN 知乎
Photo by Marsel van Oosten
本期导读:本期原创专题前端和后端分别带来一篇文章;Android 篇关注热修复,瘦身,安全等方面;iOS 篇可重点关注基于 UIWebView 的富文本编辑器实践;React Native 篇今后将会不断分享国外的一些精品文章,与时俱进;技术人生篇关注协作和成长。
原创专题
1)webpack 不适合多页面应用?你写的插件还不够多 @曾文富(运营服务组)
webpack不适合多页面应用?想必你听过很多这样的论断,也看到过gulp+webpack结合使用的方式,这不过是无奈之举,因为目前webpack可用的插件实在太少,自己写起来门槛又太高,相比之下,gulp要灵活自如不少
插件才是webpack的灵魂,用它就用它的灵魂,跳出自己的思维舒适区吧。
2)Spring Bean生命周期 @陈维新(产品服务组)
Spring的ioc容器功能非常强大,负责Spring的Bean的创建和管理等功能。而Spring 的bean是整个Spring应用中很重要的一部分,了解Spring Bean的生命周期对我们了解整个spring框架会有很大的帮助。
Android开发
1)谈谈移动应用的安全性实践 @Glow
本文将从用户注册流程出发,逐步介绍我们在提高数据安全性方面采用的一些策略方法,供读者参考。下面将从 Android 和 服务端 两部分来进行讲解。
2)微信Tinker的一切都在这里,包括源码(一) @shwenzhang
最近半年以来,Android热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架。Tinker在最近也顺利完成了公司的审核,并非常荣幸的成为github.com/Tencent上第一个正式公开的项目。对热补丁技术本身,还是对使用者来说都是如此。我希望通过分享微信在这历程中的思考与经验,能帮助大家更容易的决定是否在自己的项目中使用热补丁技术,以及选择什么样方案。
3)唤醒APP的那些事 @zyl04401
移动互联时代,很多互联网服务都会同时具备网站以及移动客户端,很多人认为APP的能帮助建立更稳固的用户关系,于是经常会接到各种从浏览器、webview、短信、甚至是在其他APP中唤醒APP的运营需求。
4)Android热更新方案Robust @吴坤 张梦 定旭 晓阳
从去年开始,Android平台出现了一些优秀的热更新方案,主要可以分为两类:一类是基于multidex的热更新框架,包括Nuwa、Tinker等;另一类就是native hook方案,如阿里开源的Andfix和Dexposed。这样客户端也有了实时修复线上问题的可能。但经过调研之后,我们发现上述方案或多或少都有一些问题,基于native hook的方案:需要针对dalvik虚拟机和art虚拟机做适配,需要考虑指令集的兼容问题,需要native代码支持,兼容性上会有一定的影响;基于Multidex的方案,需要反射更改DexElements,改变Dex的加载顺序,这使得patch需要在下次启动时才能生效,实时性就受到了影响,同时这种方案在android N [speed-profile]编译模式下可能会有问题,可以参考Android N混合编译与对热补丁影响解析
5)App瘦身最佳实践 @天之界线2010
业务方和开发都希望app尽量的小,本文会给出多个实用性的技巧来帮助开发者进行app的瘦身工作。瘦身和减负虽好,但需要注意瘦身对于项目可维护性的影响,建议根据自身的项目进行技巧的选取。
iOS开发
1)基于 UIWebView 的富文本编辑器实践 @zach
实现富文本编辑器有两个基本思路:
- 基于 Native 实现:比如 CoreText 或者 TextKit
- 基于 UIWebView 实现
2)iOS组件化方案 @mrpeak
最近在思考团队扩张及项目数量增加的情况下,如何持续保障团队高效产出的问题,很自然的想到了组件化这个话题。重翻了前段时间iOS开发圈关于组件化的讨论,这里做下梳理和自己的思考。
3)MDCC 2016 演讲 PPT
- iOS 篇
- Android 篇
React Native
1)React 技术栈系列教程 @阮一峰
阮一峰的 React 系列教程,它们都针对初学者,尽量通俗易懂,帮大家节省一些看文档的时间,让你快速上手。
2)You Might Not Need Redux @Dan Abramov
People often choose Redux before they need it. “What if our app doesn’t scale without it?” Later, developers frown at the indirection Redux introduced to their code. “Why do I have to touch three files to get a simple feature working?” Why indeed!
3)Better Cross-Platform React Native Components @Nick Wientge
React Native gives JavaScript developers amazing tools to build truly native mobile apps for both iOS and Android with a single code base. However it falls short of providing developers with the tools to create polished, platform-specific user interfaces, instead leaving that up to the individual developer or wider development community to provide the solutions.
技术人生
1)技术Leader的多维度能力及成长路径 @孤独与似水
在多年的‘技术管理’工作中不断地遇到很多已经或者即将转型为‘技术管理者’的同事,他们都表达了一些类似的困惑:如何成功转型?我不想丢掉技术,如何在不丢掉技术的同时还能提升管理能力!以下是我自己在这个过程中经历困惑和挣扎后的一些个人想法,分享给大家。
2)公司增长:关于工程师的跨组协作 @朱赟
经历的两家公司,在职期间都是以很快速度在各方面增长。而和类似经历的朋友聊天,大家都会有些这样的感触:刚来的时候,大家似乎都能彼此认识。而如今,公司看到一个人,有时候都不能够确定是同事还是访客了。组也是如此。你刚加入一个组的时候,也许所有的工程师一起吃饭,一桌子就坐下了。可是后来,一起聚餐的可能性几乎为零,因为哪怕一半人缺席,也得坐好几桌。坐一起,除了知道对方的名字,可能根本没有任何的交集。
3)10%,和那背后的 90% @朱赟
每个公司代码库里最核心的那几个数据模型,或者说那几个 Class,直接相关的代码,可能都有成千上万行。我也曾经遇到人问我:“我觉得这个 XX 类不就是用来做什么什么的吗?怎么代码量这么大?这么复杂?”
欢迎关注我们团队的技术公众号