Marcus’ Blog

馬克斯的碎念與筆記

Author: Marcus Wu (page 2 of 10)

High Performance Auto Layout – Session 220

無標題

iOS 12 improvement

在開頭(2:25),Apple 直接使用3rd party benchmark 來展現iOS 11 與iOS 12 的Auto layout performance 差異,這真是一個大膽又令所有工程師們有共鳴的方式 🤣

無標題

Continue reading

What’s New in Cocoa Touch – Session 202

Framework updates

Performance update

Scrolling

在一個cellForRow() 裡面,主要會做Dequeue 與config cell 這兩個動作,config cell 所消耗的時間完全取決於App 對於該List 設計的複雜度而決定,在進行玩這兩個動作,系統會對UITableViewCell 內的UIView 進行layoutSubview()draw() ,這些動作通通必須在16 ms 內做完,如果是在120 Hz 的裝置(如iPad Pro),你就只剩下8 ms,否則就得掉Frame。

Config cell 內,若有一些資料準備的事情,則可透過prefetch API 來進行效能改善,但必須注意的是Prefetch API 並不支援所有版本iOS。(如果用IGListKit 就更方便了,我們有Display delegate 跟Working range)

大致上的改動在於,UIKit 如何排程使得CPU 在prefetch 時,可以更加的有效率,在以前的版本,儘管是prefetch,他與cellForRow() 可以說是在同一個時間點做,CPU 的loading 並不會因此而降低,所以掉Frame 的狀況還是會發生。

Continue reading

Contribution to open source community

剛開始工作的時候總覺得,可以做出一個很多人使用的Third party library 真的很酷,如果有一天自己也可以做出一些,那會是一件多棒的事。

其實,2016 年的我曾期許2017 年的自己,可以嘗試對開源社群做出貢獻,無奈2017 年的我,對於自己不夠有信心也不夠積極,始終沒做出什麼來 😅

這篇文章將會分享我對開源社群的貢獻過程,以及我的小小心得 🤘

Continue reading

iOS – Custom Animation Transition

這次會有機會碰到交互動畫,是因為專案當中,有個Presented 的畫面,左上角做了一個Dismissed 的按鈕,但他卻是一般Push 的back 按鈕,使用上UX 真的很不舒服,因此嘗試做了Presented 的動畫改變,並增加Gesture 來增加UX。

靈感來源是Facebook,下圖是Facebook 在Presented 自己的WebView 時所實作的交互動畫:

這次範例的專案完整的上傳到GitHub,若您對本文有興趣,歡迎先把專案下載下來邊讀邊玩。

Continue reading

iOS Background fetch

Background fetch

在iOS 系統當中,只有少數幾個狀況可以允許你的app 在背景做事:

  1. Audio and AirPlay
  2. Location updates
  3. Voice over IP
  4. Newsstand downloads
  5. External accessory communication
  6. Uses Bluetooth LE accessories
  7. Acts as a Bluetooth LE accessory
  8. Background fetch
  9. Remote notifications

其中,Background fetch 這個選擇,是希望你的app 在沒有使用的狀態下,也有機會可以更新資料,讓使用者下次回到你的app 時,可以看到最新的資料。

更詳細的介紹可以參考WWDC 2013 – Session 204

Continue reading

Older posts Newer posts

© 2021 Marcus’ Blog

Theme by Anders NorenUp ↑