Just My Life & My Work

Archive for the ‘iOS’ Category

[iOS] 取得第一響應者 (Get First Responder)

最近需要得知第一響應者 (First Responder)是哪個元件,可惜iOS SDK並沒有直接取得的Method,網路上有的是Private API解法,若使用的話很大可能送審會「悲劇」,於是乎就有其他替代方法出現⋯⋯

若想體驗看看悲劇的話,可以使用這Private API:P~

UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];

審核人表明:

The non-public API that is included in your application is firstResponder.

(繼續閱讀…)

廣告

[iOS] 改善Xcode編譯速度

專案已經開發超過一年半,累積的檔案數量已將近2500個(可見文章:專案檔案數遞增),想必日後編譯速度將會越來越慢,會深刻地影響我們開發的效率,尤其是在要了解前人所寫的程式碼,我們總是會稍微修改一下變數/參數來嘗試是否為增修的關鍵目標,所編譯頻率相當大,三不五時就要按Command+R

我嘗試過許多改善開發效率的方法,其中有三個可以嘗試:

  1. 提高XCode編譯時使用的執行緒數
  2. 將Debug Information Format改為DWARF
  3. 將Build Active Architecture Only改為Yes

1和3在我們的專案早已設定完畢,只剩下2可以嘗試,沒想到效果超好,提升幾乎10倍快的編譯速度!

(繼續閱讀…)

[iOS] TextView 動態高度 (TextView Dynamic Height)

我們一定使用過通訊App,輸入框會隨著字數多換行而高度變大。四年前我寫過文章:動態框架 (Dynamic Frame),這次我要來講進階用法,就是邊打字邊算輸入框的高度:TextView 動態高度 (TextView Dynamic Height)

如上圖,我要打三元合一的緣由,從第一行開始,到「兩千年」的下一個字,就會計算兩行高度,此時需要實作TextView的Delegate,每打一字就會觸發:

-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

就在裡頭就能即時運算高度。

(繼續閱讀…)

[iOS] 視覺化專案相依關係 (Dependency Visualizer)

去年11月底,剛熟悉公司專案,想知道整個專案的至今的狀況如何,其中一個方式就是了解程式碼相依程度,我找到一個相當不錯的視覺化專案相依關係的工具,會透過網頁以互動的方式呈現。

我在GitHub上找個開源專案,透過模擬器編譯成功後,成功開啟網頁來玩泡泡~

從main開始進入AppDelegate。

(繼續閱讀…)

[iOS] 送審App時的IDFA

最近要送審未來高達10000人使用的App,過程我要非常小心不能出差錯,先前都是由前輩同事送審,因為他連續請假3天,只好由我代替來送審,儘管過去已送審不下10個App,然而一想到是公司自己的產品,神經稍微緊繃了一下,是在看到IDFA,我還是愣了一下⋯⋯因為幾個選項描述得好似官方式文言文,深怕一選錯,被拒絕後,會被主管關切XD~

(繼續閱讀…)

[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

猜猜看哪個最難處理?

(繼續閱讀…)

[iOS] APP啟動時間優化

APP啟動時間測量後,接下來要做APP啟動時間優化,這一部份開發者能夠干涉嗎?其實是可以的!

我們可以分兩部分優化如上圖,pre-main time和loading time

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: