Just My Life & My Work

Posts tagged ‘xcode’

[iOS] 專案檔案數遞增

本週輪到我第二次「文字探討」,這一次我分享進階除錯技巧,關於XcodeLLDB。首先我表明為何需要學習進階除錯技巧,因為我們公司開發產品,歷時一年五個月專案檔案數遞增有目共睹,我特別透過Git回溯各時期的版本,來指令算出專案有多少個檔案。

檔案數隨著時間呈現性成長!

為何要查詢專案檔案數?這跟編譯時間有很大的關係呀!

(繼續閱讀…)

廣告

[Xcode][iOS] 清除警告訊息 (Clear Warning Message)

功能需求都已經開發完畢,在等待偉大的QA測試完前,有空的時候就可以來清除警告訊息 (Clear Warning Message)

天吶~從2018年2月開始開發到現在,剛滿一年就累積了230個警告訊息,不過也還好,先前我所開發過有破千的紀錄!不過那是因為接案的性質,我維護過至少有五個工程師陸續經手的案子,裡頭的警告訊息我壓根不想動XD~

現在因為是做自家產品,肯定要做得非常盡善盡美!儘管感覺好像在做繁瑣的雜事,好在還能學到些新技術與工具,讓我有些成就感囉~

警告訊息目前遇到的類型有包含:

  • User-Defined Issue
  • Validate Project Settings
  • Documentation Iusse
  • Deprecations
  • Semantic Issue
  • Value Conversion Issue

猜猜看哪個最難處理?

(繼續閱讀…)

[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混編的注意啦

標籤雲

%d 位部落客按了讚: