第三期的週報如願以償的在週一和大家見面了。前兩期的時候因為剛開始做不知道能否做到每週一更。小夥伴們在磨合了兩週之後也互相有了默契。希望我們能夠繼續陪伴大家一起成長。
新聞
國區 iCloud 賬戶將轉由「雲上貴州」運營
2018 年 2 月 28 日起,國區 iCloud 賬戶將轉由「雲上貴州」運營。如果想要把 iCloud 的東西繼續存在美區,可以參考少數派的文章:不想停用 iCloud?不妨遷移資料到其它 Apple ID 。
英特爾處理器打補丁後,效能並沒有下降很多
標題已經說明一切,為了照顧強迫症我隨手打幾個字給你。
微信著手封堵 Universal Link
恭喜微信離成為作業系統的目標又近了一步。
Announcing Realm Cloud: Realm Platform as a Service Beta
Realm 雲服務新版本開始第一輪公測啦!只需要簡單的配置即可接入,現在就來試試吧:申請試用 Beta 版,只有 500 個名額哦~申請通過的話還能以 5 折的價格購買 1 年的 Realm 雲服務。
文章
移動 APP 網路優化概述
從速度、弱網、安全三個方面介紹了移動場景中的網路優化。概念清晰易懂,bang 的文章一如既往值得一讀。
接手一個剛起步的 iOS 專案後我做了什麼
過去半年我負責一個剛起步的 iOS 專案後的工作實踐總結。
WCDB 原始碼解析
介紹了微信 WCDB 的程式碼實現,有不少資料庫的知識點。
[譯]2017 Swift 單元測試文章資源精華
medium 上有人整理了 2017 年單元測試相關的優秀視訊文章。非常值得收藏,所以我翻譯了一份資源的簡介。
[譯]用Buck構建混合語言iOS專案
Buck 是 Facebook 開源的編譯工具,可以提高編譯時間。用來編譯純 Swift 或者純 OC 專案都沒問題,然而編譯混合語言的專案則會碰到很多問題。Airbnb 在這篇文章裡介紹了他們是如何解決 Buck 在混編專案中使用的問題。
iOS 9 之後 NotificationCenter 還需要 removeObserver 嗎?
iOS 9 之後,通過 selector 方式 addObserver(_:selector:name:object:)
不用顯式 remove,但使用 block addObserver(forName:object:queue:using:)
依然需要在 observer 銷燬之前主動呼叫 removeObserver
。文中還給出了一種 Automating unregistering
方案。
Xcode 9 裡一些實用的 URL
大家都知道 Xcode 9 裡優化了程式碼版本控制的功能,甚至可以直接在 GitHub 上使用 Xcode 開啟專案,這個功能主要是通過 URL 實現的,URL 並不只是支援了跳轉專案的功能,這篇文章就介紹了很多其它實用的路徑。
開源專案掙錢實用手冊
整理了開源專案獲得收入的各種方式。
Swift Non-Nil Values In An Array Of Optionals
如何優雅的過濾陣列中值為 nil 的資料?你可以試試 flatMap。
Write your scripts in Swift with Beak
用 Swift 也可以輕鬆愉快地寫指令碼啦,當然,首先需要安裝 Beak!
工具
create dmg
dmg 是 macOS app 常用的分發格式。一行命令將你的 macOS app 打包成 dmg 格式。
typewriter
當不同系統之間進行資料交換時,往往要有一套特殊的資料交換格式或協議來作為中間人,比較典型的就是 JSON 和 ProtocolBuffer。而把中間資料格式轉換為具體資料,實際上就是將中間資料格式進行語法翻譯,翻譯成系統中對應語言的程式碼,typewriter 就是上述問題在客戶端領域的翻譯器,純 Swift 實現,值得學習和使用。
AutoPacking-iOS
在實際的 iOS 開發、測試、釋出過程中,需要不停的打各種包用於各個流程,開發人員忙於新需求實現的同時,還要花費大量時間在打包這種重複且沒有意義的事情上,十分浪費精力。AutoPacking-iOS 為我們解決了這個問題,配置好引數後可以一鍵打包上傳到蒲公英、fir.im 等內測網站或 App Store,方便快捷。
Step by step – The story about a code bookmarking tool
這是一個程式碼標籤工具,可以通過簡易的流程圖來描述程式碼的行為,然後跳轉到對應的程式碼,目前支援 Xcode / Android Studio / Sublime 等編輯器。
thefuck
控制檯執行命令經常報錯卻不能自動執行某些操作一點也不智慧?一定是沒有調教好,試試 thefuck,大幅提升工作效率!
程式碼
XLForm
XLForm 是一個 iOS 表單頁面的一個解決方案。可以解決各種複雜互動的表單頁面,功能十分強大。用 OC 實現,程式碼質量很高,其設計思想也很值得學習,是一份很不錯的原始碼學習內容。
比較有意思的一點是,XLForm 的 Swift 版本 Eureka 並不是單純的翻譯 XLForm,而是用一種全新的方式去實現相同的功能,通過大量的函式符過載,讓寫出來的程式碼特別清晰。
但是,我覺得對於大部分的 app 來說,沒有太過於複雜的表單需求,所以沒有太大的必要引用這個庫去實現一些簡單的表單頁面。會給人一種,用複雜的工具去解決簡單的問題的感覺。
當然,如果是一個類似系統設定的 app 來說,使用 XLForm 一定是首選之一。
iOS 效能優化合集
關於 iOS 效能優化梳理:基本工具、業務優化、記憶體優化、卡頓優化、佈局優化、電量優化、安裝包瘦身、啟動優化、網路優化等。
CollectionViewSlantedLayout
CollectionViewSlantedLayout 是一種 UICollectionView 的佈局,實現了傾斜卡片的佈局樣式。同時支援純程式碼使用和 Xib 配合使用。
書
React Native 應用開發例項解析
共五章,前兩章介紹 React Native 的歷史發展和基礎知識,包括原生元件和第三方庫;餘下三章則分別介紹三個企業應用——Myagi、TinyRobot 和 Fixt,探討了當今業界使用 React Native 的方式,以及生產環境下需要注意的問題和相應對策。
適合想初步瞭解 RN 開發的開發者。
音視訊
Checked #51: 準確表達與善意理解
51 期聊了蘋果的降頻門。
Swift Talk #82 Refactoring Imperative Layout Code
這一期的 Swift Talk 通過實現一個簡易的 FlowLayout 來為我們介紹如何使用函式式去重構佈局程式碼。
招聘
36氪: iOS Leader
北京 D 輪,使用 Swift 開發哦。
流利說: 資深 iOS 開發
上海,使用 Swift 開發,業內口碑巔峰。感興趣微博聯絡 hr: JaniceWU賈尼絲。
hr 表示:
我們也有很多不足的,比如說始終因為要求太高招不到足夠的人。
基礎架構開發工程師
B 站搬到新地方後業務依然迅速發展。喜歡 B 站的朋友可以試試。
喜馬拉雅 iOS leader
上海 D 輪。
本期編輯
@沒故事的卓同學,@四娘,@mmoaay,@享耳先森,@EyreFree,@Damonwong
說明
? 表示需翻牆