老司機 iOS 週報 #3

老司機iOS週報發表於2018-01-15

第三期的週報如願以償的在週一和大家見面了。前兩期的時候因為剛開始做不知道能否做到每週一更。小夥伴們在磨合了兩週之後也互相有了默契。希望我們能夠繼續陪伴大家一起成長。

新聞

國區 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

說明

? 表示需翻牆

相關文章