平安科技移动开发二队技术周报(第二十二期)
业界新闻
1)Google Nexus 2015发布会总结:五款新品齐登场
2015年09月30日凌晨00:00,Google 如期在旧金山开了一场 Nexus 新品发布会,Google 一口气发布了手机、平板、Chromecast 这3大类产品的5个新品:两部手机、一台平板、两个 Chromecast。
2)在 GitHub 上面泄露了公司源码怎么办?
苏宁易购 iOS 项目代码泄露事件。
Android开发
1)Android性能调优利器StrictMode
作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Android程序运行缓慢卡顿,并且常常出现ANR对话框等等问题。既然有性能问题,就需要进行性能优化。正所谓工欲善其事,必先利其器。一个好的工具,可以帮助我们发现并定位问题,进而有的放矢进行解决。本文主要介绍StrictMode 在Android 应用开发中的应用和一些问题。
2)基于Facebook Buck改造Android构建系统之初体验
自从Android开发切换到Android Studio之后,就一直使用Gradle进行项目的构建,随着工程Module的增加,代码的一处改动,都要花费几分钟的时间重新编译,实在是浪费时间,一两个月前就想着使用Facebook的Buck来替换Gradle,换取更快的编译速度,后来由于其他事情就耽搁了。当时在知乎上提问:《国内有Android技术团队在使用facebook的buck进行代码构建吗?》,后面得知微信已经切换到了Buck,最近参与到一个新项目中,也在对原来的代码进行分模块重构,工程的构建时间依然是一个严峻的问题,因此是时候重新开始使用Buck进行改造了。
3)其实你不知道MultiDex到底有多坑
MultiDex的问题难点在:要持续解决好几个bug才能最终解决问题。进一步的,想要仔细分辨且解决这些bug,就必须持续探索一些关联性的概念和原理。
4)React Native: Android 的打包
本文介绍 React Native 中的资源打包,重点介绍使用 react-native-gradle 插件进行 Android APP 的打包。
5)美团Android资源混淆保护实践
Android应用中的APK安全性一直遭人诟病,市面上充斥着各种被破解或者汉化的应用,破解者可以非常简单的通过破解工具就能对一个APK进行反编译、破解、汉化等等,这样就可以修改原有代码的逻辑、添加新代码、添加或修改资源、或者更有甚者植入病毒等等,从而破坏原有APK的安全和用户体验,最终伤害到用户和原有的开发者。
iOS开发
1)自己动手使用 Swift 打造全功能 JSON 解析、生成库
在我动手搞这个 JSON 解析库之前,我一直在用 SwiftJSON 这个库,这个库是国人开源的最受欢迎的 Swift 项目,没有之一,也是全球最受欢迎的 Swift 库第二名,第一名是网络库 Alamofire。由于要实现 ["key"]["key1"] 这样的递归查找,我一直觉得 JSON 解析库非常复杂难搞。
2)细说ReactiveCocoa的冷信号与热信号 一 二
ReactiveCocoa(简称RAC)是最初由GitHub团队开发的一套基于Cocoa的FRP框架。FRP即Functional Reactive Programming(函数式响应式编程),其优点是用随时间改变的函数表示用户输入,这样就不需要可变状态了。我们之前的文章“RACSignal的Subscription深入分析”里曾经详细讲解过RAC核心概念之一RACSignal的实现原理。在美团客户端中,我们大量使用了这个框架。冷信号与热信号的概念很容易混淆并造成一定的问题。鉴于这个问题具有一定普遍性,我将用一系列文章讲解RAC中冷信号与热信号的相关知识点,希望可以加深大家的理解。
3)iOS 静态库开发
在企业开发中,一些核心技术或者常用框架,出于安全性和稳定性的考虑,不想被外界知道,所以会把核心代码打包成静态库,只暴露头文件给程序员使用(比如:友盟、百度地图等第三方的sdk)
4)Swift 函数式编程实践
Swift 为 iOS 编程世界引入了一个新的范式:函数式范式。大多数 iOS 开发者之前都习惯了用 Objective-C 或者其他面向对象编程语言,函数式的编码和思考会变得有点烧脑(brain-addling)。
5)RxSwift 入坑手册 Part0 - 基础概念
Swift语言的Rx版本入门示例解读。
技术纵横
1)什么是工程师文化?
在你眼中,怎样的公司才算是有工程师文化的公司?包括且不限于计算互联网行业,土木建筑业,机械制造业,航空航天业,生物化工业等众多工程师行业。
2)解密“攻城狮使用手册”
时下职场里,流行着一句话“事少,钱多,离家近”,指的就是求职者对于一份理想中的工作的诉求,从中我们可以分析出,求职者最关注的三大核心问题是:工作强度是否适中、待遇报酬是否优厚、公司离家的交通是否便捷。
3)你与其他程序员可能常犯的 6 个错误
编程的世界中有很多的问题,我们每个人都有不同的技能,不同的能力和动力来源。学习是关键。自主开发不应该停止。我们不得不这样做,除非我们不想成为优秀的程序员。不断地学习和了解新的东西是我们应该做的工作。
4)2015年 12条专业的JavaScript规则
学习JavaScript是困难的。它发展的如此之快,以至于在任何一个特定的时刻,你都不清楚自己是否“做错了”。有些时候,感觉像是坏的部分超过了好的部分。然而,讨论这些并没有意义,JavaScript正在征服世界,所以,我们也只能这么做了。
5)架构师是否应该写代码:架构师的认知误区
要让一个成功的架构得以实现,架构师必须要在整个生命周期始终保持与交付团队的紧密合作。保持紧密合作能够促进架构层面的快速反馈循环。并且还能够为架构师提供更多的与团队交流架构愿景和领导团队的机会。
开源函数库与工具
1)Android Studio有哪些非常好用的插件
Android Studio提高效率或者美化界面的插件。
2)Android开发时你遇到过什么相见恨晚的工具或网站
关于Android开发中提高效率的工具和网站的一个知乎问答。
文末摄影鉴赏