Just My Life & My Work

Posts tagged ‘teach’

[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] Time Profiler (時間分析器)

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

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

(繼續閱讀…)

[iOS] APP啟動時間優化

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

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

(繼續閱讀…)

標籤雲

%d 位部落客按了讚: