平安金融科技移动技术周报(第二十二期)
@author ASCE1885的 Github 微博 CSDN 知乎
本期导读:本期原创专题带来 React Native 系列教程的第一弹,敬请关注后续连载;Android 篇既有增量升级方案的介绍,也有 Android Studio 的奇技淫巧,更有关于 Retrofit 的较全面介绍;iOS 篇带来 CocoaPods 实现模块化的实践以及两篇关于 Swift 语言的讨论。React Native 篇可关注 F8 App 源码的简单解析,以及两篇 ES6 的文章;使用 Sublime Text 的同学可以关注技术纵横篇的《如何优雅地使用Sublime Text3》一文。
原创专题
1)我的 React Native 技能树点亮计划 の Javascript 模块管理器 npm @ASCE1885(应用架构组)
本文主要介绍 Javascript 模块管理器 npm 的基本用法,涵盖了 React Native 开发中所需要掌握的三部分:
- package.json 的文件结构
- npm 的模块管理
- npm scripts
Android开发
1)全民K歌增量升级方案 @paulzeng
本文主要介绍一种增量升级方案。用户在升级版本时,不需要下载完整的安装包,只需下载增加的部分即可体验新版本完整功能,即节约用户流量,也减少服务器流量,并解决了多渠道问题,值得尝试。
2)神奇的Android Studio Template @鸿洋
本文介绍了如何在 Android Studio 中引入开源的组件模板,从而实现快速的组件集成开发。
3)应用首页Activity的单例实现 @verneli
目前有一部分android APP需要这样一种场景,即应用需要保留一个应用首页主Activity,其它子Activity永远在主Activity之上,跳转到子Activity之后,不管以哪种方式跳转,最终都可以返回到主Activity,这种场景有点类似主桌面的概念。
4)深入浅出 Retrofit,这么牛逼的框架你们还不来看看? @ 霍丙乾
Android 开发中,从原生的 HttpUrlConnection 到经典的 Apache 的 HttpClient,再到对前面这些网络基础框架的封装,比如 Volley、Async Http Client,Http 相关开源框架的选择还是很多的,其中由著名的 Square 公司开源的 Retrofit 更是以其简易的接口配置、强大的扩展支持、优雅的代码结构受到大家的追捧。
5)探究Behavior的真实面目 @zjutkz
v7包下的组件类似CoordinatorLayout推出也有一段时间了,大家使用的时候应该会体会到其中很多的便利,今天这篇文章带大家来了解一个比较重要的ui组件——Behavior。从字面意思上就可以看出它的作用,就是用来规定某些组件的行为的,那它到底是什么,又该怎么用呢?看完这篇文章希望大家会有自己的收获~
iOS开发
1)使用 CocoaPods 模块化iOS应用 @MarkLin
为你的移动应用选择正确的架构是一件相当大的事情,这会对你的工作流程造成影响,陷入面对的问题,可能是一笔巨大财富也可能是一个巨大负担。
2)Swift 语言的设计错误 @王垠
在『编程的智慧』一文中,我分析和肯定了 Swift 语言的 optional type 设计,但这并不等于 Swift 语言的整体设计是完美没有问题的。其实 Swift 1.0 刚出来的时候,我就发现它的 array 可变性设计存在严重的错误。Swift 2.0 修正了这个问题,然而他们的修正方法却没有击中要害,所以导致了其它的问题。这个错误一直延续到今天。
3)Swift的响应式编程革命 @韩婷
响应式编程掀起了Swift的革命,那么它的背后是什么呢?Rx的神秘面具下又是什么呢?最近ReactiveX / RxSwift项目参与者Junior Bontognali在他的博客上发表了一篇文章The Reactive Revolution of Swift,介绍了自己对响应式编程原理的理解,帮助我们掀开了响应式编程和Rx的神秘面纱,本文便是由该文翻译整理而来。
React Native
1)Facebook F8 App ReactNative项目源码分析 @offbye
- 初体验
- 服务器端
- Android 端
- JS 篇
2)ReactNative动画研究与实践 @Tw93
ReactNative中有3个地方可以使用动画,如下所示。此篇文章主要是讲Animated相关的内容,平时动画中用得最多的也是它,其他两个通过文档可以很容易的使用。
- 用于创建更精细的交互控制的动画Animated;
- 用于全局的布局动画LayoutAnimation;
- 用于构建Navigator不同页面切换的动画;
3)六个漂亮的 ES6 技巧 @十年踪迹
在这篇文章里,作者演示了 6 种 ES6 新特性的使用技巧。在每个段落的末尾,指出它们在电子书 Exploring ES6 中的出处(你可以在线免费阅读这本书)。
4)ES6模块加载:比你想象的还要复杂 @NangeGao
让模块的正式定义成为原生语言的一部分,是ES6让人久等的特性之一。近年来,JavaScript开发者为了完成代码组织管理,不得不在RequireJS、AMD和 CommonJS等权宜的模块规范里做出选择。如果以后模块定义可以正式成为JavaScript语言的组成部分,开发者就会消除一大块心病。现阶段,关于模块如何加载,确实有很多让人困惑的地方。正如文中提到,造成困惑的一部分原因是没有可以原生加载ES6模块的引擎。同时,我希望可以通过这篇文章澄清一些困惑。
5)使用React Native来撰写跨平台的App @李建盛
React Native 是一个 JavaScript 的框架,用来撰写实时的、可原生呈现 iOS 和 Android 的应用。其是基于 React的,而 React 是 Facebook 的用于构建用户界面的 JavaScript 库,但是这里不是给浏览器解释的,而是为移动平台。换句话说:如果你是一名 web 开发者,你可以使用熟悉的框架和单一的 JavaScript 代码库,即 React Native来撰写清晰的、高效的移动应用。
技术纵横
1)BAT解密(二):聊聊业务如何驱动技术发展 @李运华
在《BAT解密(一):聊聊技术发展的驱动力》一文中,我们详细阐述了对于服务类的业务来说,业务发展是技术发展的驱动力。那接下来我们就看看业务究竟是如何驱动技术发展的。互联网业务千差万别,但由于他们具有“规模决定一切”的相同点,其发展路径也基本上是一致的。互联网业务发展一般分为几个时期:初创期、快速发展期、竞争期、成熟期。
2)硅谷没有产品经理 @陈尔东
在国内,产品经理是非常核心的角色,然而在硅谷,工程师才是灵魂,拥有产品设计的决策权。谷歌的比例大概是1比8,一个产品经理配8个工程师。Facebook在200个工程师的时候,只有不到10个产品经理。
3)如何优雅地使用Sublime Text3 @杨琼璞
Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受。相比于难于上手的Vim,浮肿沉重的Eclipse,VS,即便体积轻巧迅速启动的Editplus、Notepad++,在SublimeText面前大略显失色,无疑这款性感无比的编辑器是Coding和Writing最佳的选择,没有之一。
欢迎关注我们团队的技术公众号