平安科技移動開發(fā)二隊(duì)技術(shù)周報(bào)(第二十二期)
業(yè)界新聞
1)Google Nexus 2015發(fā)布會總結(jié):五款新品齊登場
2015年09月30日凌晨00:00,Google 如期在舊金山開了一場 Nexus 新品發(fā)布會,Google 一口氣發(fā)布了手機(jī)、平板、Chromecast 這3大類產(chǎn)品的5個新品:兩部手機(jī)、一臺平板、兩個 Chromecast。
2)在 GitHub 上面泄露了公司源碼怎么辦?
蘇寧易購 iOS 項(xiàng)目代碼泄露事件。
Android開發(fā)
1)Android性能調(diào)優(yōu)利器StrictMode
作為Android開發(fā),日常的開發(fā)工作中或多或少要接觸到性能問題,比如我的Android程序運(yùn)行緩慢卡頓,并且常常出現(xiàn)ANR對話框等等問題。既然有性能問題,就需要進(jìn)行性能優(yōu)化。正所謂工欲善其事,必先利其器。一個好的工具,可以幫助我們發(fā)現(xiàn)并定位問題,進(jìn)而有的放矢進(jìn)行解決。本文主要介紹StrictMode 在Android 應(yīng)用開發(fā)中的應(yīng)用和一些問題。
2)基于Facebook Buck改造Android構(gòu)建系統(tǒng)之初體驗(yàn)
自從Android開發(fā)切換到Android Studio之后,就一直使用Gradle進(jìn)行項(xiàng)目的構(gòu)建,隨著工程Module的增加,代碼的一處改動,都要花費(fèi)幾分鐘的時(shí)間重新編譯,實(shí)在是浪費(fèi)時(shí)間,一兩個月前就想著使用Facebook的Buck來替換Gradle,換取更快的編譯速度,后來由于其他事情就耽擱了。當(dāng)時(shí)在知乎上提問:《國內(nèi)有Android技術(shù)團(tuán)隊(duì)在使用facebook的buck進(jìn)行代碼構(gòu)建嗎?》,后面得知微信已經(jīng)切換到了Buck,最近參與到一個新項(xiàng)目中,也在對原來的代碼進(jìn)行分模塊重構(gòu),工程的構(gòu)建時(shí)間依然是一個嚴(yán)峻的問題,因此是時(shí)候重新開始使用Buck進(jìn)行改造了。
3)其實(shí)你不知道MultiDex到底有多坑
MultiDex的問題難點(diǎn)在:要持續(xù)解決好幾個bug才能最終解決問題。進(jìn)一步的,想要仔細(xì)分辨且解決這些bug,就必須持續(xù)探索一些關(guān)聯(lián)性的概念和原理。
4)React Native: Android 的打包
本文介紹 React Native 中的資源打包,重點(diǎn)介紹使用 react-native-gradle 插件進(jìn)行 Android APP 的打包。
5)美團(tuán)Android資源混淆保護(hù)實(shí)踐
Android應(yīng)用中的APK安全性一直遭人詬病,市面上充斥著各種被破解或者漢化的應(yīng)用,破解者可以非常簡單的通過破解工具就能對一個APK進(jìn)行反編譯、破解、漢化等等,這樣就可以修改原有代碼的邏輯、添加新代碼、添加或修改資源、或者更有甚者植入病毒等等,從而破壞原有APK的安全和用戶體驗(yàn),最終傷害到用戶和原有的開發(fā)者。
iOS開發(fā)
1)自己動手使用 Swift 打造全功能 JSON 解析、生成庫
在我動手搞這個 JSON 解析庫之前,我一直在用 SwiftJSON 這個庫,這個庫是國人開源的最受歡迎的 Swift 項(xiàng)目,沒有之一,也是全球最受歡迎的 Swift 庫第二名,第一名是網(wǎng)絡(luò)庫 Alamofire。由于要實(shí)現(xiàn) ["key"]["key1"] 這樣的遞歸查找,我一直覺得 JSON 解析庫非常復(fù)雜難搞。
2)細(xì)說ReactiveCocoa的冷信號與熱信號 一 二
ReactiveCocoa(簡稱RAC)是最初由GitHub團(tuán)隊(duì)開發(fā)的一套基于Cocoa的FRP框架。FRP即Functional Reactive Programming(函數(shù)式響應(yīng)式編程),其優(yōu)點(diǎn)是用隨時(shí)間改變的函數(shù)表示用戶輸入,這樣就不需要可變狀態(tài)了。我們之前的文章“RACSignal的Subscription深入分析”里曾經(jīng)詳細(xì)講解過RAC核心概念之一RACSignal的實(shí)現(xiàn)原理。在美團(tuán)客戶端中,我們大量使用了這個框架。冷信號與熱信號的概念很容易混淆并造成一定的問題。鑒于這個問題具有一定普遍性,我將用一系列文章講解RAC中冷信號與熱信號的相關(guān)知識點(diǎn),希望可以加深大家的理解。
3)iOS 靜態(tài)庫開發(fā)
在企業(yè)開發(fā)中,一些核心技術(shù)或者常用框架,出于安全性和穩(wěn)定性的考慮,不想被外界知道,所以會把核心代碼打包成靜態(tài)庫,只暴露頭文件給程序員使用(比如:友盟、百度地圖等第三方的sdk)
4)Swift 函數(shù)式編程實(shí)踐
Swift 為 iOS 編程世界引入了一個新的范式:函數(shù)式范式。大多數(shù) iOS 開發(fā)者之前都習(xí)慣了用 Objective-C 或者其他面向?qū)ο缶幊陶Z言,函數(shù)式的編碼和思考會變得有點(diǎn)燒腦(brain-addling)。
5)RxSwift 入坑手冊 Part0 - 基礎(chǔ)概念
Swift語言的Rx版本入門示例解讀。
技術(shù)縱橫
1)什么是工程師文化?
在你眼中,怎樣的公司才算是有工程師文化的公司?包括且不限于計(jì)算互聯(lián)網(wǎng)行業(yè),土木建筑業(yè),機(jī)械制造業(yè),航空航天業(yè),生物化工業(yè)等眾多工程師行業(yè)。
2)解密“攻城獅使用手冊”
時(shí)下職場里,流行著一句話“事少,錢多,離家近”,指的就是求職者對于一份理想中的工作的訴求,從中我們可以分析出,求職者最關(guān)注的三大核心問題是:工作強(qiáng)度是否適中、待遇報(bào)酬是否優(yōu)厚、公司離家的交通是否便捷。
3)你與其他程序員可能常犯的 6 個錯誤
編程的世界中有很多的問題,我們每個人都有不同的技能,不同的能力和動力來源。學(xué)習(xí)是關(guān)鍵。自主開發(fā)不應(yīng)該停止。我們不得不這樣做,除非我們不想成為優(yōu)秀的程序員。不斷地學(xué)習(xí)和了解新的東西是我們應(yīng)該做的工作。
4)2015年 12條專業(yè)的JavaScript規(guī)則
學(xué)習(xí)JavaScript是困難的。它發(fā)展的如此之快,以至于在任何一個特定的時(shí)刻,你都不清楚自己是否“做錯了”。有些時(shí)候,感覺像是壞的部分超過了好的部分。然而,討論這些并沒有意義,JavaScript正在征服世界,所以,我們也只能這么做了。
5)架構(gòu)師是否應(yīng)該寫代碼:架構(gòu)師的認(rèn)知誤區(qū)
要讓一個成功的架構(gòu)得以實(shí)現(xiàn),架構(gòu)師必須要在整個生命周期始終保持與交付團(tuán)隊(duì)的緊密合作。保持緊密合作能夠促進(jìn)架構(gòu)層面的快速反饋循環(huán)。并且還能夠?yàn)榧軜?gòu)師提供更多的與團(tuán)隊(duì)交流架構(gòu)愿景和領(lǐng)導(dǎo)團(tuán)隊(duì)的機(jī)會。
開源函數(shù)庫與工具
1)Android Studio有哪些非常好用的插件
Android Studio提高效率或者美化界面的插件。
2)Android開發(fā)時(shí)你遇到過什么相見恨晚的工具或網(wǎng)站
關(guān)于Android開發(fā)中提高效率的工具和網(wǎng)站的一個知乎問答。
文末攝影鑒賞
