[iOS] 視覺化專案相依關係 (Dependency Visualizer)
去年11月底,剛熟悉公司專案,想知道整個專案的至今的狀況如何,其中一個方式就是了解程式碼相依程度,我找到一個相當不錯的視覺化專案相依關係的工具,會透過網頁以互動的方式呈現。
我在GitHub上找個開源專案,透過模擬器編譯成功後,成功開啟網頁來玩泡泡~
從main開始進入AppDelegate。
去年11月底,剛熟悉公司專案,想知道整個專案的至今的狀況如何,其中一個方式就是了解程式碼相依程度,我找到一個相當不錯的視覺化專案相依關係的工具,會透過網頁以互動的方式呈現。
我在GitHub上找個開源專案,透過模擬器編譯成功後,成功開啟網頁來玩泡泡~
從main開始進入AppDelegate。
最近要送審未來高達10000人使用的App,過程我要非常小心不能出差錯,先前都是由前輩同事送審,因為他連續請假3天,只好由我代替來送審,儘管過去已送審不下10個App,然而一想到是公司自己的產品,神經稍微緊繃了一下,是在看到IDFA,我還是愣了一下⋯⋯因為幾個選項描述得好似官方式文言文,深怕一選錯,被拒絕後,會被主管關切XD~
繼APP啟動時間測量後,接下來要做APP啟動時間優化,這一部份開發者能夠干涉嗎?其實是可以的!
我們可以分兩部分優化如上圖,pre-main time和loading time。
現在做產品跟以往做代工不太一樣,代工只要將功能完成就能交差了事,而產品則除了完成功能外,還要進一步優化性能,包含使用者體驗 (User Experience)。
在此我們先來測量APP啟動時間,如上圖啟動時間中的pre-main time。我發現以不同的裝置來使用同一個App,啟動時間都不一樣呢!當然這跟裝置規格有關係,等等就來測量差異多少~
有時候會看到某些App,開啟App就會播放高畫質的影片,起初我以為是顯示GIF影像,然而實際上應是無限循環播放影片。比如我在每天都可以思考的公司做過華視新聞App,我合作同事就是實作這一部份。
開發最前衛的iOS App,當然必須要使用最高等級的iPhone,2018年末最新款且最高貴的機種就是iPhone XS Max,基本款要價就高達39900台幣,拿在手上還真的會發抖呢XD!
原先我就已用Xcode正常編譯到手機Max上執行,因為我是用Automatically manage Signing,於是Xcode自動幫我將Max的UDID加入到Developer Portal中如上圖,不過這是我後來反查才知道,畢竟看到字元數跟以往不一樣,以為是同事輸入錯誤XD。
2013年就開始使用Cocoapods來使用第三方套件,儘管有發佈初學者的Cocoapods教學,可是在「管理」這方面卻還是有些不明白,像是pod install與pod update的差別,真的是要到需要的時候才會認真去釐清差異,過去一直install和update混著用,如今看官方說明就更明白,畢竟我今年開始是團隊合作寫iOS App囉!
文章開頭先說總結:團隊每人都要同步podfile.lock,如此能保證大家套件版本一致。
過去我所想的點子,只要偵測到iBeacon就進行對應事件。這次幫朋友阿強實現點子,發現同一UUID的iBeacon,只會觸發一次didEnter和didExit,用圖示來說明比較清楚~
可以看到兩顆iBeacon重疊偵測範圍,只要偵測到其中一顆,就只會觸發一次didEnter和didExit。這與Android測試得到的結果不同,iOS已經幫我們處理好,再把處理過的結果回傳給開發者使用,這是限制也是方便~
Android會觸發兩次(每顆iBeacon各一次),可能也叫做didEnter和didExit。阿強測試比較過後,發現iOS偵測速度比Android慢,這其實是因為iOS SDK會有數秒鐘偵測週邊iBeacon並處理。
半年前在幫朋友阿強研究iBeacon,發現iOS在這方面比Android限制還多!首先來看iBeacon背景偵測流程,是跟前景偵測有何不一樣?
App在前景時,會陸續觸發三支API,didEnterRegion、didRangeBeacons、didExitRegion,如上圖從時間點A到時間點B。
HappyMan・迴響