iOS-高性能

UIApplicationDelegate 中兩個值得注意的地方

這個知識點能夠用於面試,以及對於一些對初始化時機有要求的 SDK 配置的 bug 排查。 答案是會的,應用從 active 狀態至 suspended 狀態,是必須通過 background 狀態的,咱們應該按照官方規範,在 applicationDidEnterBackgro…

git

iOS監控 - 野指針定位

當所指向的對象被釋放或者收回,可是對該指針沒有做任何的修改,以致於該指針仍舊指向已經回收的內存地址,此狀況下該指針便稱野指針

github

iOS應用瘦身方法思路整理

前段時間注意到咱們APP的包大小超過100MB了,因此隨口跟呂老闆說了下可否採用字體文件(.ttf)替代PNG圖片,呂老闆對應用瘦身很感興趣所以讓我作下技術調研。這篇文章主要是將咱們的各個技術方案的思路作一下整理和總結,但願對你們有所幫助。

面試

3 分鐘搭建 App Store 動態審覈開關

我曾經在一篇文章中寫過,但願你們不要欺騙 App Store Review Team,可是近來的 Uber 審覈事件,以及發生在我我的身上的 審覈團隊不對個人長篇詳細辯解做正面回答,且無限期推遲個人 App 審覈的事情發生後,我完全對這個團隊沒有了尊重,做爲能力有限的我的開發者…

算法

從 YYCache 源碼 Get 到如何設計一個優秀的緩存

本文將結合 YYCache 的源碼逐步帶你們找到答案。 YYCache 是一個線程安全的高性能鍵值緩存(該項目是 YYKit 組件之一)。YYKit 是在 2015 年發佈到 Github 的,因爲其代碼質量很高,在短期內就收穫了大量的 Star(目前已經 1w+ Star …

編程

iOS 多網絡請求的線程安全

iOS 網絡編程有一種常見的場景是:咱們須要並行處理二個請求而且在都成功後才能進行下一步處理。下面是部分常見的處理方式,可是在使用過程當中也很容易出錯: DispatchGroup:經過 GCD 機制將多個請求放到一個組內,而後經過 DispatchGroup.wait() 和 …

設計模式

一種避免 iOS 內存碎片的方法

在和服務器傳輸文本的時候,可能會由於某一個字符的編碼格式不一樣、少了一個字節、多了一個字節等緣由致使整段文本都沒法解碼。而實際上若是能夠找到這個字符,而後替換成其餘字符的話,那整段文本其餘字符都是能夠解碼的,用戶在UI上也許能猜想出正確的字符是什麼,這種體驗是好於用戶看到一片空白…

數組

淺析移動蜂窩網絡的特色及其省電方案

蜂窩網絡的架構相似於咱們常見的蜂窩,是由一個個基站組成的蜂窩,理想狀態中咱們的蜂窩網絡應該是下面這個樣子的。固然,現實生活中網絡資源分佈並無這麼的均勻。 Wi-Fi 是一種無限局域網技術,Wi-Fi 信號須要有線網來提供,好比咱們家裏經常使用的寬帶上網,就是將有線信號轉換成 Wi…

緩存

我認爲的 Runloop 最佳實踐

關於 Runloop,這篇文章寫的很是棒,深刻理解RunLoop。我寫這篇文章在深度上是不如它的,可是爲何還想寫一下呢? Runloop 是一個偏門的東西,在個人工做經歷中,幾乎沒有使用到它的地方,在我當時學習它時,由於自己對 iOS 整個生態瞭解不夠,不少概念讓我很是頭疼。…

安全

關於線上檢測主線程卡頓的問題

你們好,第一次在掘金這個平臺寫東西。若有錯誤,但願指出。 關於runloop是什麼我就很少說了,由於網上有不少關於這個的文章,最推薦的仍是YYKit的做者博客上那篇。 PingConfig 只是我隨便寫的一個用來存儲runloop的狀態和信號量的自定義類,其中的結構以下:恩,只…

服務器

[[譯] Swift 上的高性能數組](https://juejin.im/entry/59e84...

對於平常應用開發,考慮數組性能是一件不會常常發生的事。若是你正在實現須要擴展的算法,也許高性能數組就能出如今你腦海中。也許你正在寫更偏向於底層的代碼,好比一個框架,這時任何的性能缺陷都會產生複合效應。當數組性能變得重要的時候,瞭解一些優化數組性能的方式也是很不錯的。讓咱們來深刻…

神奇的 BlocksKit (一)

本篇文章很是長,由於 BlocksKit 的實現仍是比較複雜和有意的。這篇文章不是爲了剖析 iOS 開發中的 block 的實現以及它是如何組成甚至使用的,若是你想經過這篇文章來了解 block 的實現,它並不能幫到你。

iPhone安裝包的優化

這是一次安裝包大小優化的實踐。
隨着業務的增長,工程中引入愈來愈多的業務代碼和第三方庫, 整個安裝包愈來愈大。以今日頭條5.7.5爲例 最近幾個版本的ipa大小以下: 5.7 -> 72.2M (+0.8M) 正常業務增量 5.6 -> 71.4M (+14M) 主要緣由:接…

如何提升代碼的可讀性? - 讀《編寫可讀代碼的藝術》

一. 爲何讀這本書 不少同行在編寫代碼的時候每每只關注一些宏觀上的主題:架構,設計模式,數據結構等等,卻忽視了一些更細節上的點:好比變量如何命名與使用,控制流的設計,以及註釋的寫法等等。以上這些細節上的東西能夠用代碼的可讀性來歸納。 不一樣於宏觀上的架構,設計模式等須要好幾個類…

YYCache 設計思路 | Garan no dou

iOS 開發中總會用到各類緩存,最初我是用的一些開源的緩存庫,但到總以爲缺乏某些功能,或某些 API 設計的不夠好用。YYCache (https://github.com/ibireme/YY... 是我新造的一個輪子,下面說一下這個輪子的設計思路。

玩轉iOS開發:實戰開發中的GCD Tips小技巧 (一)

看到結果, 掛了, 爲何呢? 按道理來講, 外部是異步, 而裏面是同步是不會卡死的, 其實在以前的文章裏咱們就提到過. 1.要麼把第二個任務變成異步執行. 2.要麼把兩個任務都變成異步執行. PS: 這裏不要在同步執行嵌套串行隊列, 哪怕你是分開小方法裏也是同樣的. 以前咱們…

iOS App 啓動時間優化

iOS App 啓動時間優化

玩轉iOS開發:實戰開發中的GCD Tips小技巧 (二)

上一篇, 咱們簡單的講了一些使用GCD的小技巧, 若是沒有看的朋友, 能夠去玩轉iOS開發:實戰開發中的GCD Tips小技巧 (一)看. 此次, 咱們繼續講解小技巧. 這樣子, 咱們就能夠把這個網絡請求給打包起來, 但這裏要注意一下, 不能同時調用兩個dispatch_gro…

iOS應用程序性能管理(APM)

iOS應用程序性能管理(APM)

【譯】處理 iOS 中複雜的 Table Views 並保持優雅

Table views 是 iOS 開發中最重要的佈局組件之一。一般咱們的一些最重要的頁面都是 table views:feed 流,設置頁,條目列表等。 每一個開發複雜的 table view 的 iOS 開發者都知道這樣的 table view 會使代碼很快就變的很粗糙。這樣…

相關文章
相關標籤/搜索