平安金融科技移动技术周报(第二十一期)
@author ASCE1885的 Github 微博 CSDN 知乎
本期导读:本期在排版上面进行了小的更新,首先独立出 React Native 板块,专门介绍 RN 相关最新的技术文文章;其次每篇文章都加上了作者的信息,可以方便大家关注感兴趣的作者,优先提供作者的微博链接。
原创专题
1)如何为公司的 MacBook 安装 Linux @HaHack(应用架构组)
出于一些特殊的原因,有时候用 Linux 还是有必要的。本文将介绍如何为公司的 Mac 电脑安装一个 Ubuntu 系统。
2)浅谈分布式系统的session共享方案 @李闯(产品服务组)
什么是分布式系统? 这个问题很难回答, 也不是本文的要讨论的范畴。从开发者角度来说, 服务端部署在多个tomcat容器(或其他web容器), 通过负载均衡器(比如F5)对外暴露接口, 客户端每次发送的请求会随机分配给其中一个tomcat容器处理。这就是一个简单的分布式系统。
3)获取当前用户代码分享 @李闯(产品服务组)
在 "浅谈分布式系统的SESSION共享方案" 一文中提到将session存储到缓存系统cache中, 这样每个需要访问session的bean都要注入cache的访问接口, 很不方便, 本文将提供一种解决方案让我们通过访问静态方法来获取当前session, 我们给提供session访问服务的类命名为SessionContext。
4)Android 和 iOS 团队开发中如何快速定位代码修改者等提交信息 @ASCE1885(应用架构组)
在团队协作开发过程中,很多时候需要知道某行代码最近一次是谁修改的,因为什么原因而修改,我们当然可以选择在团队即时通信群中询问,或者到版本控制系统中查看这个文件的版本提交纪录,但这样通常非常耗时,群里可能过了一天都没人会响应你的提问,而如果这行代码是很久以前修改的,你可能需要查阅到很久以前的一次提交。
Android开发
1)开发第三方库最佳实践 @天之界线
目前技术圈的人或多或少都开发过库项目,无论是因为要靠它来找工作,还是通过其进行学习交流,亦或是借此来招摇撞骗,总之开发第三方库这件事已经变得越来越流行了。我个人是很讨厌技术圈娱乐化的,star那么多,issue没人管的现象比比皆是。其实解决issue才能促使实践者更快的学习,仅仅炫耀自己的star数毫无意义。因此,我便写了我开发第三方库的经验,希望本文能帮助到大家。
2)自己编写Android Studio插件 别停留在用的程度了 @鸿洋
相信大家在使用Android Studio的时候,或多或少的会使用一些插件,适当的配合插件可以帮助我们提升一定的开发效率。有句话叫做授人以鱼不如授人以渔,不能一直跟随着别人的脚步去使用插件了,有必要去学习编写插件,当自己有好的创意的时候,就可以自己实现了。本文的目的就是教你自己编写一个Android Studio插件。
3)英语流利说 Android 架构演进 @Jacksgong
今天给大家分享的是英语流利说Android端的代码架构的演进,标题挺高大上的,其实也并非多高大上的东西,整个演进过程,也是借鉴了业界很多大型应用在架构上的沉淀以及思想,可能有些东西还有点老生常谈,不过我们保证尽量都是干货。
4)蘑菇街App Chromium网络栈实践 @李栋
蘑菇街目前自有网络栈是基于Chromium网络库改造而来。Chroium网络库本身针对网络性能有很多优化,因此在使用过程中会比使用系统网络库拥有更好的性能体验。
5)打通Android Gradle编译过程的任督二脉 @pisazzpan
本文主要是基于自己在工作当中的一些Android Gradle实践经验,对gradle相关知识做的一个简单总结和分享,希望对大家有帮助。首先会讲Gradle大概的工作流程和实现原理,并以部分源码分析佐证。其中包括project中配置数据什么时候取,各个task的创建时机,如何自定义控制编译过程等。
6)深入浅出Android打包 @芈峮
Android市场的渠道分散已不是什么新鲜事,但如何高效打包仍是令许多开发者头疼的问题。本篇文章着重介绍了目前最新的三种打包方案,并且从安全方面对这三种方案进行点评,相信会给开发者带来新的助力。
iOS开发
1)CocoaPods 1.0及相应Mac版App正式发布,Podfile的使用方式发生改变 @infoQ
经过了近五年的不懈努力,近日,CocoaPods终于在其官方博客上宣布正式发布CocoaPods 1.0。与此同时,公开了相应的Mac版App——CocoaPods App 1.0,提供了下载方式。
2)iOS应用支持IPV6,就那点事儿 @philon
自从5月初Apple明文规定所有开发者在6月1号以后提交新版本需要支持IPV6-Only的网络,大家便开始热火朝天的研究如何支持IPV6,以及应用中哪些模块目前不支持IPV6。
3)从ReactiveCocoa中能学到什么?不用此库也能学以致用 @戴铭
从知道ReactiveCocoa开始就发现对这个库有不同的声音,上次参加
React Native
1)旅行喵 React Native 技术实践 @利炳根
React Native,是这两年比较热的新技术。各大厂商纷纷专门安排团队接入。
我们非常幸运,这次用RN开发了一个完整的产品旅行喵,现在和大家分享一下我们这次的技术实践感受。欢迎大家后面积极参与一起讨论。向大家学习。
2)React 移动 web 极致优化 @TAT.heyli
最近一个季度,我们都在为手Q家校群做重构优化,将原有那套问题不断的框架换掉。经过一些斟酌,决定使用react 进行重构。初学者对React可能满怀期待,觉得React可能完爆其它一切框架,甚至不切实际地认为React可能连原生的渲染都能完爆——对框架的狂热确实会出现这样的不切实际的期待。
3)【React-Native系列】JavaScript文件加载过程分析 @MegatronKing
浏览器获取JavaScript脚本,主要通过网络下载 + 本地缓存的机制,达到效率的最大化。当然,移动应用也不例外,但不同的是移动应用可以将JavaScript脚本直接打包在应用程序内,免去网络下载这个极其不稳定的过程,这样可以达到加载效率和性能流畅的最大化,也就是风靡一时Hybrid技术,而这一点浏览器是做不到的。无论使用网络下载还是本地文件,最终都是要加载JS文件,而React-Native项目中包含大量的JS文件构成的框架和组件,那么Android框架又是如何去加载它们的呢?这个过程就是本篇博客的研究的主题了!
4)React Native之底层源码分析篇 @Linxj
学习React-Native有一段时间了。今天就从源码的角度来分析下React-Native底层的通信机制。了解下底层是如何通信的对开发也有所好处。RN主要的通信在于java与js之间,平常我们写的jsx代码最终会调用到原生的View。
技术纵横
1)App安全之网络传输安全 @mrpeak
移动端App安全如果按CS结构来划分的话,主要涉及客户端本身数据安全,Client到Server网络传输的安全,客户端本身安全又包括代码安全和数据存储安全。所以当我们谈论App安全问题的时候一般来说在以下三类范畴当中:
- App代码安全,包括代码混淆,加密或者app加壳。
- App数据存储安全,主要指在磁盘做数据持久化的时候所做的加密。
- App网络传输安全,指对数据从客户端传输到Server中间过程的加密,防止网络世界当中其他节点对数据的窃听。
这一篇我们先聊下网络传输的安全。
2)BAT解密(一):聊聊技术发展的驱动力 @李运华
互联网行业是一个快速发展、快速变化的行业,新的业务、新的机会层出不穷,新的技术如雨后春笋般冒出,NoSQL、大数据、云、Node.js、Docker等,无时不刻都在轰炸程序员们的脑袋,难怪中国的程序员都流传一个说法:过了30岁不能做技术工作了,因为技术发展太快了!
欢迎关注我们团队的技术公众号