平安金融科技移动技术周报(第十四期)
@author ASCE1885的 Github 微博 CSDN 知乎
本期导读:本期周报原创专题带来团队的三篇实战文章;Android 带来两篇应用 UI 架构的讨论,同时可重点关注路由框架和随机对象生成器设计与实现;iOS 重点推荐网易漫画 Swift 混编实践;技术人生中我们推荐了两篇关于程序员影响力的文章,你没理由不看!
原创专题
1)React Native ListView 实践 @吴健兴(金融服务A组)
本文总结了 React Native 开发中使用 ListView 时,遇到的一些问题以及解决方案。
2)svn-git-transfer SVN仓库批量迁移Git工具 @潘伟洲(应用架构组)
要从 svn 迁移到 git ,方法是使用 git-svn ,将某个 svn 路径克隆到本地,并转换为 git 的形式,最后推送到对应的 Git 中央仓库上。这个流程并没有涉及复杂的决策,所以完全可以做到自动化。于是我写了一个工具 git-svn-transfer ,用它批量完成所有 SVN 路径到 Git 仓库的迁移。
3)化繁为简的企业 Git 管理实践(一):多分支子模块依赖管理 @潘伟洲(应用架构组)
在 Git 的使用中,我们对子模块的使用进行了简化,避免了由于漏提交子模块 commit id 或子模块代码导致无法更新或更新错误的情况。这么做看起来好像完全抛弃了子模块的 commit id。
Android开发
1)选择恐惧症的福音!教你认清MVC,MVP和MVVM
相信大家对MVC,MVP和MVVM都不陌生,作为三个最耳熟能详的Android框架,它们的应用可以是非常广泛的,但是对于一些新手来说,可能对于区分它们三个都有困难,更别说在实际的项目中应用了,有些时候想用MVP的,代码写着写着就变成了MVC,久而久之就对它们三个的选择产生了恐惧感,如果你也是这样的人群,那么这篇文章可能会对你有很大的帮助,希望大家看完都会有收获吧!
2)Android官方MVP架构示例项目解析
前段时间Google在Github推出了一个项目,专门展示Android引用各种各样的MVP架构,算是官方教程了。趁着还新鲜,让我们来抛砖引玉一探究竟,看看在Google眼里什么样算是好的MVP架构。
3)Android Studio advanced configuration
本文主要内容来自 Dmytro Danylyk 在 Medium 的文章Configuring Android Studio。在此感谢!虽然使用Android Studio 有一定的时间了,但文中的某几个设置之前还真不知道,且原文在长城外,因此在翻译原文的基础上作了一些补充,若有新的发现会即时更新。希望对大家尤其是刚接触 Android Studio 的朋友有一点帮助。
4)Retrofit分析-漂亮的解耦套路
万万没想到Retrofit会这么火,在没看源码之前,我简单的认为是因为它跟OkHttp同出一源(Square),所以才会炒的那么热。又或者是因为它能支持RxJava,所以火上浇油,一发不可收拾。后来看过Retrofit源码之后,我才理解为什么它倍受关注,是因为它集诸优点于一身,并且炒鸡解耦。你能预见的特殊需求,都能非常容易的扩展。
5)Android路由框架设计与实现
我们知道传统的网站开发框架一般支持用户设置路由表,如Django。而在Android开发中,我们打开页面的方式主要是startActivity()。使用startActivity()的缺点是需要打开的那个Activity的类已经存在,否则无法通过编译,但是在协同开发中,这往往是无法得到满足的。那么如何来解决这一问题呢,我们是否也能够像在Web开放中一样使用一个url来打开一个Activity呢?因此本文主要介绍在Android平台设计和实现一个路由框架。
6)Android实战之你应该使用哪个网络库?
目前基本上每个应用都会使用HTTP/HTTPS协议来作为主要的传输协议来传输数据。即使你没有直接使用HTTP协议,也会有成堆的SDK会包含这些协议,譬如分析、Crash反馈等等。当然,目前也有很多优秀的HTTP的协议库,可以很方便的帮助开发者构建应用。
7)Android随机对象生成器的设计与实现
当完成一个新的Feature的时候,需要对其进行测试。但是由于服务器还没有部署该功能,或者单元测试的限制,往往需要程序员自己去伪造一些数据。但是手工伪造数据往往效率不高并且没有代表性。因此希望能够实现一个对象生成器,生成对象并往里面填充随机值。
iOS开发
1)网易漫画Swift混编实践
网易漫画App是网易杭州这边最早采用Swift的产品,本文主要为大家分享下网易漫画App在Swift上的实践:
- 使用Swift历程
- Swift混编实践
- 基于Swift的架构演变及建议
2)客户端的前端化之异步数据管理
近年来,App上火热的技术,有些是跟随Web技术的发展趋势的。比如Futures and Promise是JavaScript 先火起来,然后传到App。还比如React,响应式编程也是从Web走向了客户端。当下客户端的架构,需要具备以下几点能力:
- 复杂异步数据管理的能力
- 及时自我更新的能力
- 在线Hotfix的能力
3)iOS开发之 动画CoreAnimation
本文是对 CoreAnimation 知识点的一个总结回顾。
4)如何编写稳定流畅的iOS移动端应用
把一个客户端做得稳定、无奔溃、流畅,是写客户端朋友的梦想,但是,我们面临的结果往往是不如人意的。天下武功,唯快不破。很多公司都信奉这个教条。恨不得把app开发周期压缩到最低,这就导致了开发中隐藏了很多问题。有点经验的工程师草率的优化一下,更糟的情况是那些没有经验的工程师甚至不会对app进行任何优化,这将会使情况变的更糟。
技术纵横
1)平安金融科技测试技术周报(第一期)
平安金融科技测试技术周报终于和大家见面了,我们旨在为大家分享最前沿的测试技术和测试组最新的技术成果。我们将定期给大家带来测试组内的一些原创文章和业内的优秀博文。测试技术周报主要分为五个栏目:原创文章、移动测试技术、后端测试技术、通用测试技术和测试人生。
2)从架构的角度看,如何写好代码?
软件架构实际上包括:代码架构,以及承载代码运行的硬件部署架构。实际上,硬件部署架构最终还是由代码的架构来决定。因为代码架构不合理,是无法把一个运行单元分拆出多个来的,那么硬件架构能分拆的就非常的有限,整个系统最终很难长的更大。所以我们经常会听说,重写代码,推翻原有架构,重新设计等等说法,来说明架构的进化。
3)Google 或许会将 Swift 编程语言纳入 Android 平台
自从去年年末备受瞩目的 Swift 开源后,消息不断,最近互联网巨头们-Google、Facebook、Uber 齐聚伦敦,共同就 Swift 相关问题展开了讨论。The Next Web 称,据可靠消息,Google 意欲在其 Android 平台下采纳应用开发编程语言 Swift为其首要开发语言,这可能和他们备受和 Oracle 的官司之争有关吧。但 Swift 的魅力亦是重要因素,Facebook 和 Uber 均表态,未来会将 Swift 作为主要的开发语言。
技术人生
1)丁香园范凯:技术团队管理不仅仅是管理
硅谷有一些互联网公司,怎么衡量它们未来的好坏呢,这就是看优秀的人才往哪个互联网公司去流动。如果我们承认互联网公司的核心资产是人的话,那其实整个互联网公司团队的管理观念都要发生改变。那意味着我们管理一家公司或者说公司里面的团队,最根本的目标是做人才培养,把公司的文化建设放在第一位,然后把人的核心价值发挥出来。
2)也谈程序员影响力的经营
过去几年我一直在不断的讲,程序员需要提升自己的表达能力和技术影响力。因为在我的印象里,程序员这个群体一直是很安静、务实、谦逊的。然而最近一段时间的事情,让我看到程序员圈子发生了很大的变化:
- 比如,大量程序员伪造简历,并视其为理所当然。
- 比如,给知名项目发送垃圾PR,混contribute和star。
3)如何把自己打造成技术圈的 papi 酱
最近半年,一个叫papi酱的平胸女子连续在微博、朋友圈、创业圈刷屏,当之无愧成了中文互联网的第一大网红。呃,你以为我会巴拉巴拉说一堆网工创业的事?NO,今天想借papi酱的话题跟大家一起聊聊程序员如何打造自己的个人品牌。
欢迎关注我们团队的技术公众号