平安金融科技移动技术周报(第三十九期)

平安金融科技移动技术周报(第三十九期)

@author ASCE1885的 Github 微博 CSDN 知乎

平安金融科技移动技术周报(第三十九期)_第1张图片
DPP_0404.jpg-3280.4kB

Photo by ASCE1885

本期导读:本期原创专题带来 android-apt 的最新消息;Android 篇带来五篇技术实践,覆盖了热更新,增量更新,性能优化等主题;iOS 篇也同样带来五篇文章,覆盖了网络优化,应用架构,卡顿监控和 AOP 等主题;React Native 篇可重点关注下 58 同城基于 React Native 的开发实践;技术人数篇带来三篇架构和成长的热文。

原创专题

1)android-apt 即将退出历史舞台 @ASCE1885(移动架构组)

伴随着 Android Gradle 插件 2.2 版本的发布,近期 android-apt 作者在官网发表声明证实了后续将不会继续维护 android-apt,并推荐大家使用 Android 官方插件提供的相同能力。也就是说,大约三年前推出的 android-apt 即将告别开发者,退出历史舞台,Android Gradle 插件提供了名为 annotationProcessor 的功能来完全代替 android-apt

Android开发

1)QFix探索之路—手Q热补丁轻量级方案 @Bugly_Tony

QFix 是手Q团队近期推出的一种新的 Android 热补丁方案,在不影响 app 运行时性能(无需插桩去 preverify)的前提下有效地规避了 dalvik 下"unexpected DEX"的异常,而且还是很轻量级的实现:只需调用一个很简单的方法就能办到。

2)SDK无埋点技术在百分点的探索和实践

本文带来SDK无埋点技术,大家可以了解到SDK无埋点技术是怎么实现的,百分点通过之前的埋点技术怎么演化了这种无埋点技术。我分三个部分来讲一下:

  • 就是讲一下什么是SDK无埋点技术;
  • SDK无埋点技术如何实现?讲一些技术细节;
  • 在实践中遇到的一些坑和解决方法。

3)Android 增量更新完全解析 是增量不是热修复 @张鸿洋

增量更新的流程是:用户手机上安装着某个应用,下载了增量包,手机上的apk和增量包合并形成新的包,然后再次安装(注意这个过程是要重新安装的,当然部分应用市场有root权限你可能感知不到)。

4)Android 性能优化典范(六) @胡凯

这里是Android性能优化典范第 6 季的课程学习笔记,这次一共才 6 个小段落,涉及的内容主要有程序启动时间性能优化的三个方面:优化 activity 的创建过程,优化 Application 对象的启动过程,正确使用启动显屏达到优化程序启动性能的目的。另外还介绍了减少安装包大小的 checklist 以及如何使用 VectorDrawable 来减少安装包的大小。

5)请不要滥用SharedPreference @weishu

SharedPreference是Android上一种非常易用的轻量级存储方式,由于其API及其友好,得到了很多很多开发者的青睐。但是,SharedPreference并不是万能的,如果把它用在不合适的使用场景,那么将会带来灾难性的后果;本文将讲述一些SharedPreference的使用误区。

iOS开发

1)iOS应用架构现状分析 @mrpeak

iOS从2007年诞生至今已有近10年的历史,10年的时间对iOS技术圈来说足够产生相当可观的沉淀,尤其这几年的技术分享氛围无论国内国外都显得异常活跃。本文就iOS架构这一主题,结合开发圈里讨论较多的几种主流方式,再配以博主自己的理解,做下现状分析。给自己做下知识梳理的同时,也期望能引入新的思考。

2)iOS应用UI线程卡顿监控 @MrPeak

iOS设备虽然在硬件和软件层面一直在优化,但还是有不少坑会导致UI线程的卡顿。对于程序员来说,除了增加自身知识储备和养成良好的编程习惯之外,如果能一套机制能自动预报“卡顿”并检测出导致该“卡顿”的代码位置自然更好。本文就可能的实现方案做一些探讨和分析。先贴出最后方案的github地址。

3)深度优化iOS网络模块 @mrpeak

几乎每一个讲究的iOS项目都会有一个「网络模块」,大部分的网络请求都是通过HTTP完成,使用成熟的第三方库诸如AFNetworking很容易搭建一个功能简易的网络模块。但这一模块要优化好却没那么简单,是个旷日持久的工作,笔者根据自己多年的“填坑”经验,总结一下深度优化iOS项目网络模块的方方面面,也给自己做下知识梳理。

4)iOS 如何实现Aspect Oriented Programming (上)(下)

面向切面的程序设计(aspect-oriented programming,AOP,又译作面向方面的程序设计、观点导向编程、剖面导向程序设计)是计算机科学中的一个术语,指一种程序设计范型。该范型以一种称为侧面(aspect,又译作方面)的语言构造为基础,侧面是一种新的模块化机制,用来描述分散在对象)、类)或函数)中的横切关注点(crosscutting concern)。

React Native

1)npm scripts 使用指南 @阮一峰

Node 开发离不开 npm,而脚本功能是 npm 最强大、最常用的功能之一。
本文介绍如何使用 npm 脚本(npm scripts)。

2)基于 React Native 的 58 同城 App 开发实践 @彭飞

React Native 在 iOS 界早就炒得火热了,随着 2015 年底 Android 端推出后,一套代码能运行于双平台上,真正拥有了 Hybrid 框架的所有优势。再加上 Native 的优秀性能,让越来越多的公司在实际项目中一探究竟。58 同城 App 发布模块年代久远,一直计划进行重构以适应日益苛刻的用户体验,这个需求与我们在 React Native 上一探究竟的意愿一碰撞,就产生了 React Native 在 58 App 的开发实践。

3)豆瓣的混合开发框架 -- Rexxar @lincode

混合开发的直白解释是 Native 和 Web 技术都要用。但形式上,应用仍然和浏览器无关,用户还是需要在 App Store 和 Android Market 下载应用。只是在开发时,开发者以 Native 代码为主体,在合适的地方部分使用 Web 技术。比如在 iOS 中的 UIViewController 内放置一个 UIWebview(一个浏览器引擎,只拥有渲染 HTML,CSS 和执行 JavaScript 的核心功能)。这样,部分用户界面就可以在 UIWebView 中使用 Web 技术实现。

4)JavaScript 模块化入门Ⅰ:理解模块 @余博伦

作为一名JS初学者。假如你听到了一些诸如“模块化构建&模块化载入” “Webpack&Browserify” 或者 “AMD&CMD”之类的术语,肯定瞬间就凌乱了。JavaScript的模块化听起来挺深奥,可其实理解它对开发者来说特别实用。在这篇文章里,我会尽量深入浅出地把这些深奥的术语翻译成浅显易懂的人话(加上一些代码示例)。希望你多少能从中学到点东西。

5)JavaScript 模块化入门Ⅱ:模块打包构建 @余博伦

在上一篇教程里我们已经讨论过什么是模块,为什么要使用模块以及多种实现模块化的方式。这次,我们会聊一聊什么是模块打包,为什么要打包模块,模块打包的方式工具,还有它当前在Web开发中的运用。

6)Facebook 发布了新的 Node 模块管理器 Yarn,或取代 npm 客户端 @Zhangjd

在 Facebook 中,我们多年来一直在使用 npm 客户端并取得了成功,但随着代码仓库与团队人数的增长,我们在一致性、安全性以及性能方面遇到了挑战。在尝试解决每个方面的问题后,我们最终决定着手打造一套新的客户端解决方案,以帮助我们更可靠地管理依赖。我们把这个客户端工具称为 Yarn —— 更加快速、可靠、安全的 npm 客户端的替代品。

技术人生

1)好的技术团队不是“需求翻译机”或“架构优化机” @尾尾

一个好的技术团队应该具备哪些特质?一个好的技术团队的leader应该怎样实施管理?技术和业务如何做到完美结合?这是来自天猫技术团队的经验,仅供参考。

2)互联网合并浪潮中,内部员工该何去何从? @100offer

100offer通过采访我们平台上那些亲身经历过公司合并的候选人,给每一位身处这个时代的互联网人以警醒。当有一天,公司合并这件事落在你身上时,希望你能从这篇文章中汲取干货,从容面对、冷静处理。

3)工程师成长之路:工作1-3年工程师如何突破瓶颈期? @雷果国

在我看来,一个工程师的养成可以分为四个阶段:

  • 新人期
  • 成熟期
  • 发展期
  • 事业期

欢迎关注我们团队的技术公众号

平安金融科技移动技术周报(第三十九期)_第2张图片

你可能感兴趣的:(平安金融科技移动技术周报(第三十九期))