Just My Life & My Work

Posts tagged ‘xcode’

[Xcode] Time Profiler (時間分析器)

我家產品HappyStyle開發到尾聲,需求上的功能已全數完成,接下來的時間可以來優化各個功能。若想要讓使用者體驗 (User Experience)變得更優,那麼勢必要提升App運作的流暢度。

像是在滑內容清單,若能無「卡頓」現象會是優良的體驗,那麼如何來減少卡頓狀況?我們可以利用Xcode內建的工具Time Profiler (時間分析器),顧名思義就是利用它來分析各個方法 (Method)函式 (Function),所執行的時間狀況會在界面上清楚呈現,除了可以觀察自訂的也能探索內建的。

(繼續閱讀…)

廣告

[iOS] APP啟動時間測量

現在做產品跟以往做代工不太一樣,代工只要將功能完成就能交差了事,而產品則除了完成功能外,還要進一步優化性能,包含使用者體驗 (User Experience)

在此我們先來測量APP啟動時間,如上圖啟動時間中的pre-main time。我發現以不同的裝置來使用同一個App,啟動時間都不一樣呢!當然這跟裝置規格有關係,等等就來測量差異多少~

(繼續閱讀…)

[Xcode] 主線程檢查器 (Main Thread Checker)

我所使用的整合開發環境是Xcode,每年更新都會釋出新的功能,來幫助開發人如我者更有效率地工作!2018年Xcode即將邁入第10版,這裡我想要來介紹主線程檢查器 (Main Thread Checker)

回想2012年我還是個初學者的時候,還不知道主線程的重要性,以致於有時候發生不預期的反應,實在摸不著頭緒!基本上要記住,改變畫面的動作要在主線程實現,不然會發生什麼事?有時候有反應,有時候沒反應,這種狀況debug超級困難呢!

[Xcode] 主線程檢查器 (Main Thread Checker)1

好在Xcode已經能從語法分析來得知,哪些程式碼會跑到非主線程,若改變畫面的元件在非主線程操作,Xcode就會有紫色的提示。上圖表示Label一定要在主線程使用 ([UILabel text] must be used from main thread only)。

(繼續閱讀…)

[iOS] 混編Objective C、Swift、C/C++

在Swift剛釋出沒多久,我就研究過如何在同專案整合Objective C和Swift。文章:

儘管還是傾向以Objective C來開發產品,然而Swift的發展日趨重要,不過我大膽推測,就算Apple再怎麼強推Swift,十年內Objective C領導地位依然屹立不搖!為什麼呢?實際接觸4年Swift後,發現Swift變化多端,若猶豫要學Swift還是Objective C可以參考:要學Objective-C還是Swift?

現在想要混編Objective C、Swift、C/C++,應也不是問題~

[iOS] 混編Objective C、Swift、C:C++.png

(繼續閱讀…)

關於 Swift 4.1

最近又「逼不得已」要更新Xcode 9.3(原9.2),原本沒有很想趕上潮流,不過因為老闆把自己的iPhone升級到11.3,我要幫他灌App測試,Xcode就跳出不支援該版本⋯⋯使得我被迫要升級Xcode!更沒想到的是,要安裝Xcode 9.3,還要先升級Mac OS 10.13(原10.12.6),這過程要花我整個下午的時間啊⋯⋯

本篇議題是關於 Swift 4.1,Xcode 9.3就能以Swift編程,以為只是小更新並不大礙,沒想到我所使用的Libray/Framework出現問題!!!

Swift第4版本提到Charts套件超好用,它要以Swift 4.0來編譯,所以要到某處選擇設定。今日更新到Swift 4.1

關於 Swift 4.1 Xcode2

想說編譯執行會很順利,誰知出現⋯⋯

關於 Swift 4.1 Xcode1

這不符合Swift版本問題很神奇啊~

error: The following binaries use incompatible versions of Swift:
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Charts.framework/Charts
/Users/happyboy/Library/Developer/Xcode/DerivedData/TestDeviceSDK-deuhrepxfcygzyguaogwmklmzddz/Build/Products/Debug-iphoneos/TestDeviceSDK.app/Frameworks/Zip.framework/Zip

目前還在找解法ORZ,依然有經驗地翻舊文章下載舊版Xcode,先成功編譯後推Git。

想問熟悉寫Swift的高人,到底有多少時間在改Swift語法和設定呀⋯⋯

參考:Swift和Objective-C混編的注意啦

[Xcode] 例外中斷點 (Exception Breakpoint)

Xcode中使用Breakpoint來debug是非常平常的事情,優秀的我們都能從Breakpoint來得知上下文狀態,如各個變數值。有時候崩潰(Crash)來得突然,Xcode沒有提供詳細的Crash訊息,像是我這個例子是:存取Empty Array

[Xcode] 例外中斷點 (Exception Breakpoint)2

此時例外中斷點 (Exception Breakpoint)就非常好用!

(繼續閱讀…)

Swift 第4版本

Swift已經升級到第4版本,我還是沒認真在寫Swift 4,主要是因為它還不太穩定,這幾年必須多花時間去改寫語法到最新版本,於是在有限的開發時間下,我依然對相對穩定的Objective C情有獨鍾XD~

舉一個例子,當我要使用Open Source ChartsXcode會偵測是否相容,否則就無法編譯成功,如圖:

Swift 第4版本.png

好在只要選擇到Swift 4,就能成功編譯!也感謝超好用的圖表開源Charts作者,願意每次Swift升級就改寫語法,造福我們成千上萬的iOS開發者

怎麼在Objective C中使用Swift Open Source?可參考文章:在Objective C專案使用Swift第三方套件

標籤雲

%d 位部落客按了讚: