Skip to content

Latest commit

 

History

History
100 lines (51 loc) · 9.7 KB

平安科技移动开发二队技术周报(第三十二期).md

File metadata and controls

100 lines (51 loc) · 9.7 KB

Android开发

我相信每一个安卓开发者都会同意 2015年安卓开发者大会上宣布的最大事情就是 Android Studio 2.0和安卓模拟器2.0,其中安卓模拟器2.0宣称运行和部署应用的速度比第一个版本快得超乎寻常。

最近尝试使用react-native android为我们的一个创业项目写了一个demo,项目放在github了,有兴趣的朋友可以看看。

在过去的一段时间里,WebView远程代码执行漏洞可以说是横扫了一大批的Android App,查询一些漏洞平台可以得到大致的情况,鉴于很多存在漏洞的App并没有披露,因此WebVeiw远程执行代码漏洞的影响程度会更大。由于Google Android 系统碎片化程度很高,大量的Android系统无法得到及时有效地更新,这个漏洞目前依然在被利用。

Overdraw就是过度绘制,是指在一帧的时间内(16.67ms)像素被绘制了多次,理论上一个像素每次只绘制一次是最优的,但是由于重叠的布局导致一些像素会被多次绘制,而每次绘制都会对应到CPU的一组绘图命令和GPU的一些操作,当这个操作耗时超过16.67ms时,就会出现掉帧现象,也就是我们所说的卡顿,所以对重叠不可见元素的重复绘制会产生额外的开销,需要尽量减少Overdraw的发生。

中国移动一年前发布的一个面向终端厂商和应用厂商提出规范性建议,旨在推动终端、网络、应用各方共同努力,开发用户体验更加良好的应用产品,至今仍有借鉴意义。

在安卓社区中,65k方法数的限制是一个被多次提及的问题。目前解决这个问题的办法就是用multidex。虽然multidex是谷歌给出的一个非常棒的办法,但是我发现了它对app启动性能存在严重的影响,这点还没有在社区引起重视。我这篇文章的就是为那些还没有听说过这个问题(但是想使用multidexing)的开发者以及那些使用了multidexing,但是想观察本文解决办法所能赢得性能的伙伴而写的。

iOS开发

终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,它的体验伴随着用户使用 App 的整个过程。如果UI失败,用户是不会有打开第二次的欲望的。

相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板。随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流行MVVM,MVVM使由MVC衍生而来,MVVM作为一种新的开发模式和响应式编程相结合用来解决一部分业务场景等,本文将给大家介绍的是一个新的方式来架构你的App: Model-View-Protocol,暂时可以理解为是基于协议的一种设计规范,拿出你的流行语bingo card,因为我们即将进行一次范式转变。

2014 年 6 月 Apple 发布 Swift 以来,如何在 Swift 中进行网络编程一直成为程序猿们关注的焦点。甚至就连 Swift 的作者之一 Chris Lattner 也发推说过,在 Swift 中解析 JSON 还有很长的路要走。因此,许多人开始寻求替代方案。在 Swift 中虽然有处理 JSON 解析的内建类,但是对开发者来说并不是很友好。幸运的是,Alamofire 出现了。Alamofire 是一个可以帮助我们解析 JSON 的强力网络库,它由 Objective-C 中同类网络库 AFNetworking 的作者编写。

之前发了一篇关于图片加载优化的文章,还是引起很多人关注的,不过也有好多人反馈看不太懂,这次谈谈iOS中ARC的一些使用注意事项,相信做iOS开发的不会对ARC陌生啦。这里不是谈ARC的使用,只是介绍下ARC下仍然可能发生的内存泄露问题,可能不全,欢迎大家补充。

赋予一个 Widget 更大的权利,让其自己负责自己的事件。

技术纵横

用RN最大的难题是设计思想的转变,以前的设计方法论已经不太适用了。而RN仅仅提供了view的框架,构建完整app的架构并没有直接提供。考虑目前遇到的如下问题,希望架构给出解决方案。

  • 交互:如何解决组件间通信【父子、子父、兄弟等,特别是跨层or反向数据流动等】;用state还是接口操作组件;
  • 职责:组件状态放哪,业务逻辑放哪,数据放哪,因为太灵活了,怎么做都可以实现功能,但是怎么做才是最好的,才是最正确的呢?

最近两三年,技术之外,花了一些时间带技术团队,也陆陆续续和大家聊了很多关于技术、管理以及成长方面的话题。聊天总归比较零散,今天以文字的形式,把我的所思、所想做一下系统的整理和总结,也许,对正在徘徊的你有所帮助呢?

我希望我的故事能够激励其他的技术同行,能够勇敢地接受新的挑战。在快速变化的移动互联网时代,快速迭代演进的不止有 App,也包括我们自己,愿大家都能活得精彩!

让我觉得我应该再写一篇文章站在全栈工程师的理由是,一本书《浮现式设计》和一个单词Re-Practise。似乎这是一个新的思考,尽管在那之前我已经写了一篇《全栈工程师的思考》,只是事隔半年之后,我又有了一些新的感触。这半年来,除了增长了一些软技能,如沟通、表达 、英语,以及一点点的技术提升之外,并没有什么太大的变化。

众所周知,ES2015来的太晚了,而现在,TC39决定加快脚步,也许每年都会有新版本发布,明年可能会发布ES2016。ES2016终于给JS带来了async/await原生支持,而其他语言如C#、Python等更早就支持上了。而async/await正是本文要重点介绍的用来解决callback hell问题的终极大杀器。 虽然离浏览器或nodejs支持ES2016还有很久很久,但依靠babel任然可以转换出当前环境就支持的代码。

编程技术及生态发展的三个阶段

  • 最初的时候人们忙着补全各种API,代表着他们拥有的东西还很匮乏,需要在语言跟基础设施上继续完善
  • 然后就开始各种模式,标志他们做的东西逐渐变大变复杂,需要更好的组织了
  • 然后就是各类分层MVC,MVP,MVVM之类,可视化开发,自动化测试,团队协同系统等等,说明重视生产效率了,也就是所谓工程化

开源函数库与工具

Android应用增量更新函数库,包含客户端、服务端两部分代码。

Android平台上针对TextView的一个动画库,效果挺赞!

2015,你最开心的事情是什么?最难忘的又是什么。回望,展望;过去,将来。让我们用文字,记录过去的时光,或者畅想未来的可能吧!和我们认识的,以及认识我们的朋友们一起!