平安金融科技移動技術(shù)周報(第二十五期)

本期導讀:本期原創(chuàng)專題繼續(xù)帶來 React Native 系列教程第三彈;Android 篇帶來比較豐富,既有源碼解析,也有基礎(chǔ)知識的沉淀,還帶來微信的熱補丁實踐;iOS 篇帶來兩篇對 OC 語言的研究,以及 iOS 開發(fā)趨勢的思考等文章;React Native 篇本周干貨較少;技術(shù)縱橫主要帶來一些方法論相關(guān)的文章,推薦都好好讀一讀。
原創(chuàng)專題
1)我的 React Native 技能樹點亮計劃 の 代碼風格統(tǒng)一工具 EditorConfig @ASCE1885
在本系列前面一篇文章《React Native 開發(fā) IDE 選型和配置》1中我們介紹了 React Native 開發(fā)中可能用到的五款 IDE,以及如何配置以正常顯示 React Native 語法和實現(xiàn)代碼的智能提醒。在實際項目開發(fā)中,關(guān)于 IDE 或者說工程的配置遠不止前文所介紹的,特別是在團隊開發(fā)中,還有很多的公共配置需要制定,其中代碼風格統(tǒng)一工具 EditorConfig 和靜態(tài)代碼檢查工具 ESLint 是必不可少的。限于篇幅,本文先來介紹 EditorConfig,后面再起一篇文章專門來介紹 ESLint。
Android開發(fā)
1)靈活且強大的RecyclerViewAdapter源碼分析 @陳宇明
相信大家RecyclerView應(yīng)該不會陌生,大多數(shù)開發(fā)者應(yīng)該都使用上它了,它也是google推薦替換ListView的控件,但是用過它的同學應(yīng)該都知道它在某些方面并沒有ListView使用起來方便,需要我們額外的編寫代碼,今天就給大家介紹一個Github上面的一個開源庫,有了它讓你使用RecyclerView的時候,和ListView一樣的好用!
2)Android Studio插件整理 @ydmmocoo
現(xiàn)在Android的開發(fā)者基本上都使用Android Studio進行開發(fā)(如果你還在使用eclipse那也行,畢竟你樂意怎么樣都行)。使用好Android Studio插件能大量的減少我們的工作量。
3)ThreadLocal在Android消息機制中的作用 @alighters
提及Android的消息機制,相信這是Android開發(fā)者非常熟悉,并且相當基礎(chǔ)的一個知識點了。那這里還有什么需要講的呢?這里,先拋出一個問題。
4)拆輪子系列:拆 Retrofit @piasy
安卓開發(fā)領(lǐng)域,很多重要的問題都有了很好的開源解決方案,例如網(wǎng)絡(luò)請求 OkHttp + Retrofit 簡直就是不二之選?!拔覀儾恢貜驮燧喿硬槐硎疚覀儾恍枰垒喿釉撛趺丛旒叭绾胃玫脑欤 ?,在用了這些好輪子將近兩年之后,現(xiàn)在是時候拆開輪子一探究竟了。本文基于 Retrofit 截至 2016.6.23 的最新源碼對其進行了詳細分析。
5)微信Android熱補丁實踐演進之路 @shwenzhang
繼插件化后,熱補丁技術(shù)在2015年開始爆發(fā),目前已經(jīng)是非常熱門的Android開發(fā)技術(shù)。其中比較著名的有淘寶的Dexposed、支付寶的AndFix以及Qzone的超級熱補丁方案。微信對熱補丁技術(shù)的研究并不算早,大約開始于2015年6月。經(jīng)過研究與嘗試現(xiàn)有的各個方案,我們發(fā)現(xiàn)它們都有著自身的一些局限性。微信最終采用不同于它們的技術(shù)方案,走出了自己的實踐演進之路。
6)十分鐘理解Gradle @absfree
簡單的說,Gradle是一個構(gòu)建工具,它是用來幫助我們構(gòu)建app的,構(gòu)建包括編譯、打包等過程。我們可以為Gradle指定構(gòu)建規(guī)則,然后它就會根據(jù)我們的“命令”自動為我們構(gòu)建app。Android Studio中默認就使用Gradle來完成應(yīng)用的構(gòu)建。有些同學可能會有疑問:”我用AS不記得給Gradle指定過什么構(gòu)建規(guī)則呀,最后不還是能搞出來個apk?!?實際上,app的構(gòu)建過程是大同小異的,有一些過程是”通用“的,也就是每個app的構(gòu)建都要經(jīng)歷一些公共步驟。因此,在我們在創(chuàng)建工程時,Android Studio自動幫我們生成了一些通用構(gòu)建規(guī)則,很多時候我們甚至完全不用修改這些規(guī)則就能完成我們app的構(gòu)建。
7)Android Lint工作原理剖析 @ljfxyj2008
Android Studio 2.0 Stable版本已經(jīng)于2016年4月7日正式發(fā)布。除了Instant Run讓人眼前一亮,更讓人驚喜的是,官方已經(jīng)悄然把自定義Lint的檢查與IDE整合起來了。在此之前,自定義Lint規(guī)則只能通過在終端中執(zhí)行g(shù)radle任務(wù)來運行,然后生成報告文件。
iOS開發(fā)
1)iOS 10 Music 架構(gòu)解析 @糖炒小蝦
眾所周知,iOS 10 發(fā)布了。然而可能大家并不知道,iOS 10 的刷機包并沒有加密。我們可以通過解壓后掛載 dmg 鏡像的方法,裝載 iOS 系統(tǒng)分區(qū)。在這里,我們能做什么呢?作為一個 iOS / Android 雙料開發(fā)者,我非常喜歡圍觀 Android 系統(tǒng)自帶的 app 源碼,畢竟那是 Google 的工程師認為的最佳實踐。而這次我們也能近距離的圍觀一下 iOS 內(nèi)置的書寫方式,于是這里我們選擇了 Music.app 來做小白鼠。
2)alloc、init你弄懂50%了嗎? @iosxxoo
這是一篇我記錄對alloc、init分析思考的筆記。如果讀者想看懂我的第二個思考,可能需要您至少了解內(nèi)存的分段分頁管理,如果您對其一點都不知道,可以先看這篇軟文簡單了解一下。另外很重要的一點是,請先思考。
3)iOS開發(fā)——深拷貝與淺拷貝詳解 @陳宇峰Coder
深拷貝和淺拷貝這個問題在面試中常常被問到,而在實際開發(fā)中,只要稍有不慎,就會在這里出現(xiàn)問題。尤其對于初學者來說,我們有必要來好好研究下這個概念。
4)安全模式:天貓App啟動保護實踐 @胖紙
在App熱修復中有一個特殊情況,就是應(yīng)用在啟動階段crash,根本啟動不了,熱修復就難以奏效,不過這種情況也能解決。前段時間微信讀書分享了他們的啟動保護方案,現(xiàn)在天貓也分享了他們的實踐,叫做安全模式。本文介紹了天貓安全模式的由來、設(shè)計思路、原理和易用性考量等等。
5)2016:iOS開發(fā)趨勢思考 @沒故事的卓同學
編程神作《代碼大全》提過,在技術(shù)浪潮中找到自己的位置。編程技術(shù)的更迭越來越快,當進行技術(shù)選擇時,思考當前的技術(shù)方向和自己應(yīng)該要處的位置很有必要。古語云:知而慎行,君子不立于危墻之下,焉可等閑視之。
React Native
1)Javascript 原型中的哲學思想 @JerryC
記得當年初試前端的時候,學習JavaScript過程中,原型問題一直讓我疑惑許久,那時候捧著那本著名的紅皮書,看到有關(guān)原型的講解時,總是心存疑慮。當在JavaScript世界中走過不少旅程之后,再次萌發(fā)起研究這部分知識的欲望,翻閱了不少書籍和資料,才搞懂 __proto__ 和 prototype 的概念。
2)React Native中 Back 鍵的攻堅實戰(zhàn) @poberWong
在ReactNative中,因為在Native層只有一個MainActivity來承載Js層的邏輯,因此Android上的Back鍵會在點擊一次后直接退出應(yīng)用。
3)你想知道的關(guān)于JavaScript作用域的一切 @Todd Motto
JavaScript中有許多章節(jié)是關(guān)于scope的,但是對于初學者來說(甚至是一些有經(jīng)驗的JavaScript開發(fā)者),這些有關(guān)作用域的章節(jié)既不直接也不容易理解. 這篇文章的目的就是為了幫助那些想更深一步學習了解JavaScript作用域的開發(fā)者,尤其是當他們聽到一些關(guān)于作用域的單詞的時候, 好比:作用域(scope),閉包(closure),this,命名空間(namespace),函數(shù)作用域(function scope),全局作用域(global scope),詞法作用域(lexical),公有變量(public scope),私有變量(private scope)。
技術(shù)縱橫
1)技術(shù)發(fā)展瓶頸的突破 @人月神話
通常情況下,技術(shù)人員在某一領(lǐng)域工作3-5年后,會成為團隊內(nèi)或者公司里的核心技術(shù)骨干,這個時候他們也會面臨幾個問題:
- 技術(shù)學習的困惑
- 技術(shù)深度與廣度的選擇的困惑
- 技術(shù)方向的困惑
2)典型的「學生思維」有哪些? @知乎
職場中典型的「學生思維」有哪些?
3)簡單不一定高效,再談創(chuàng)業(yè)公司的產(chǎn)品開發(fā)與團隊管理 @賈彥民
一般來說,創(chuàng)業(yè)公司規(guī)模小,人員少,沒有大公司的官僚作風。而官僚作風是很害人的東西,記得在大公司時,本來一言而決的一點小事,常常因為害怕承擔失敗的責任,或參與者(如管項目或管人的經(jīng)理們)有意的要突出自己的影響力或存在感,在各色人等中往來穿梭,仿佛煞有介事,經(jīng)過無數(shù)次的會議討論卻議而不決。而軟件工程師們?yōu)榕浜线@樣的戲碼常常被搞得焦頭爛額,無可適從。創(chuàng)業(yè)公司由于管理層次簡單,很少受到官僚作風的困擾,但也不能想當然地認為萬事大吉,高枕無憂了。其實創(chuàng)業(yè)公司也有創(chuàng)業(yè)公司的局限性,這些局限性常常被忽略,從而影響到產(chǎn)品的開發(fā),本文就來和大家聊聊這個話題。
歡迎關(guān)注我們團隊的技術(shù)公眾號
