平安科技移動(dòng)開發(fā)二隊(duì)技術(shù)周報(bào)(第二十二期)
業(yè)界新聞
1)Google Nexus 2015發(fā)布會(huì)總結(jié):五款新品齊登場
2015年09月30日凌晨00:00镀琉,Google 如期在舊金山開了一場 Nexus 新品發(fā)布會(huì)亡嫌,Google 一口氣發(fā)布了手機(jī)砂缩、平板胁出、Chromecast 這3大類產(chǎn)品的5個(gè)新品:兩部手機(jī)、一臺(tái)平板忆家、兩個(gè) Chromecast犹菇。
2)在 GitHub 上面泄露了公司源碼怎么辦?
蘇寧易購 iOS 項(xiàng)目代碼泄露事件芽卿。
Android開發(fā)
1)Android性能調(diào)優(yōu)利器StrictMode
作為Android開發(fā)揭芍,日常的開發(fā)工作中或多或少要接觸到性能問題,比如我的Android程序運(yùn)行緩慢卡頓卸例,并且常常出現(xiàn)ANR對(duì)話框等等問題称杨。既然有性能問題,就需要進(jìn)行性能優(yōu)化筷转。正所謂工欲善其事姑原,必先利其器。一個(gè)好的工具旦装,可以幫助我們發(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的增加呻袭,代碼的一處改動(dòng)眨八,都要花費(fèi)幾分鐘的時(shí)間重新編譯,實(shí)在是浪費(fèi)時(shí)間左电,一兩個(gè)月前就想著使用Facebook的Buck來替換Gradle廉侧,換取更快的編譯速度,后來由于其他事情就耽擱了篓足。當(dāng)時(shí)在知乎上提問:《國內(nèi)有Android技術(shù)團(tuán)隊(duì)在使用facebook的buck進(jìn)行代碼構(gòu)建嗎段誊?》,后面得知微信已經(jīng)切換到了Buck栈拖,最近參與到一個(gè)新項(xiàng)目中连舍,也在對(duì)原來的代碼進(jìn)行分模塊重構(gòu),工程的構(gòu)建時(shí)間依然是一個(gè)嚴(yán)峻的問題涩哟,因此是時(shí)候重新開始使用Buck進(jìn)行改造了索赏。
3)其實(shí)你不知道MultiDex到底有多坑
MultiDex的問題難點(diǎn)在:要持續(xù)解決好幾個(gè)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)用,破解者可以非常簡單的通過破解工具就能對(duì)一個(gè)APK進(jìn)行反編譯威鹿、破解妓盲、漢化等等,這樣就可以修改原有代碼的邏輯专普、添加新代碼悯衬、添加或修改資源、或者更有甚者植入病毒等等檀夹,從而破壞原有APK的安全和用戶體驗(yàn)筋粗,最終傷害到用戶和原有的開發(fā)者。
iOS開發(fā)
1)自己動(dòng)手使用 Swift 打造全功能 JSON 解析炸渡、生成庫
在我動(dòng)手搞這個(gè) JSON 解析庫之前娜亿,我一直在用 SwiftJSON 這個(gè)庫,這個(gè)庫是國人開源的最受歡迎的 Swift 項(xiàng)目蚌堵,沒有之一买决,也是全球最受歡迎的 Swift 庫第二名,第一名是網(wǎng)絡(luò)庫 Alamofire吼畏。由于要實(shí)現(xiàn) ["key"]["key1"] 這樣的遞歸查找督赤,我一直覺得 JSON 解析庫非常復(fù)雜難搞。
2)細(xì)說ReactiveCocoa的冷信號(hào)與熱信號(hào) 一 二
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)客戶端中,我們大量使用了這個(gè)框架秒旋。冷信號(hào)與熱信號(hào)的概念很容易混淆并造成一定的問題约计。鑒于這個(gè)問題具有一定普遍性,我將用一系列文章講解RAC中冷信號(hào)與熱信號(hào)的相關(guān)知識(shí)點(diǎn)迁筛,希望可以加深大家的理解煤蚌。
3)iOS 靜態(tài)庫開發(fā)
在企業(yè)開發(fā)中,一些核心技術(shù)或者常用框架瑰煎,出于安全性和穩(wěn)定性的考慮铺然,不想被外界知道俗孝,所以會(huì)把核心代碼打包成靜態(tài)庫酒甸,只暴露頭文件給程序員使用(比如:友盟、百度地圖等第三方的sdk)
4)Swift 函數(shù)式編程實(shí)踐
Swift 為 iOS 編程世界引入了一個(gè)新的范式:函數(shù)式范式赋铝。大多數(shù) iOS 開發(fā)者之前都習(xí)慣了用 Objective-C 或者其他面向?qū)ο缶幊陶Z言插勤,函數(shù)式的編碼和思考會(huì)變得有點(diǎn)燒腦(brain-addling)。
5)RxSwift 入坑手冊(cè) Part0 - 基礎(chǔ)概念
Swift語言的Rx版本入門示例解讀。
技術(shù)縱橫
1)什么是工程師文化农尖?
在你眼中析恋,怎樣的公司才算是有工程師文化的公司?包括且不限于計(jì)算互聯(lián)網(wǎng)行業(yè)盛卡,土木建筑業(yè)助隧,機(jī)械制造業(yè),航空航天業(yè)滑沧,生物化工業(yè)等眾多工程師行業(yè)并村。
2)解密“攻城獅使用手冊(cè)”
時(shí)下職場里,流行著一句話“事少滓技,錢多哩牍,離家近”,指的就是求職者對(duì)于一份理想中的工作的訴求令漂,從中我們可以分析出膝昆,求職者最關(guān)注的三大核心問題是:工作強(qiáng)度是否適中、待遇報(bào)酬是否優(yōu)厚叠必、公司離家的交通是否便捷荚孵。
3)你與其他程序員可能常犯的 6 個(gè)錯(cuò)誤
編程的世界中有很多的問題,我們每個(gè)人都有不同的技能纬朝,不同的能力和動(dòng)力來源处窥。學(xué)習(xí)是關(guān)鍵。自主開發(fā)不應(yīng)該停止玄组。我們不得不這樣做滔驾,除非我們不想成為優(yōu)秀的程序員。不斷地學(xué)習(xí)和了解新的東西是我們應(yīng)該做的工作俄讹。
4)2015年 12條專業(yè)的JavaScript規(guī)則
學(xué)習(xí)JavaScript是困難的哆致。它發(fā)展的如此之快,以至于在任何一個(gè)特定的時(shí)刻患膛,你都不清楚自己是否“做錯(cuò)了”摊阀。有些時(shí)候,感覺像是壞的部分超過了好的部分踪蹬。然而胞此,討論這些并沒有意義,JavaScript正在征服世界跃捣,所以漱牵,我們也只能這么做了。
5)架構(gòu)師是否應(yīng)該寫代碼:架構(gòu)師的認(rèn)知誤區(qū)
要讓一個(gè)成功的架構(gòu)得以實(shí)現(xiàn)疚漆,架構(gòu)師必須要在整個(gè)生命周期始終保持與交付團(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ī)會(huì)。
開源函數(shù)庫與工具
1)Android Studio有哪些非常好用的插件
Android Studio提高效率或者美化界面的插件闻镶。
2)Android開發(fā)時(shí)你遇到過什么相見恨晚的工具或網(wǎng)站
關(guān)于Android開發(fā)中提高效率的工具和網(wǎng)站的一個(gè)知乎問答甚脉。
文末攝影鑒賞