如何仿寫一個App

前言

最近看到一篇文章專訪YYKit作者郭曜源:開源大牛是怎樣煉成的,?其中 ibireme提到了他的學習方法,一個就是大量地閱讀優秀項目的源代碼,另一個就是自己動手實踐來嘗試。這非常值得學習,對我來說,沉下心來好好寫代碼才是提高水平的上策,Talk is cheap, Show me the code!
這篇blog主要記錄仿寫一個App的準備工作,這里以美團為例。

素材

首先到iTunes下載美團到本地


在Finder中顯示
在Finder中顯示

在Finder中顯示,解壓ipa文件


解壓ipa
解壓ipa

點擊imeituan,顯示包內容


顯示包內容
顯示包內容

就能隨意查看imeituan的素材內容。
素材
素材

接口

  • Charles
    這是一款在 Mac 下常用的網絡封包截取工具,Charles 通過將自己設置成系統的網絡訪問代理服務器,使得所有的網絡訪問請求都通過它來完成,這里我們主要用它來截取網絡封包來分析。

這里我們主要截取iPhone上App的網絡請求,所以使用 Charles 的第一步在菜單欄上選擇 “Proxy”–>“Proxy Settings”,填入代理端口 8888,并且勾上 “Enable transparent HTTP proxying” 就完成了在 Charles 上的設置。如下圖所示::


Proxy
Proxy

然后我們需要獲取 Charles 運行所在電腦的 IP 地址,Charles 的頂部菜單的 “Help”–>“Local IP Address”,即可在彈出的對話框中看到 IP 地址,如下圖所示:


IP
IP

最后在 iPhone 的「HTTP 代理」,將其切換成手動,然后填上 Charles 運行所在的電腦的 IP,以及端口號 8888,如下圖所示:


8888

接下來在手機上運行美團,就能再Charles上查看網絡請求,如下所示:

flurry
flurry

http
http

這是美團啟動是Charles的顯示,可以看到http://data.flurry.com的請求,顯而易見美團iOS是使用flurry統計數據的。關于Charles詳細使用方法可以查看這篇博客

App結構

這里使用Reaveal + iPhone(越獄)來分析App的UI視圖結構。

準備工作:
1.iPhone越獄。
2.越獄后iPhone上會自行安裝上Cydia商店,打開Cydia,先在tabBar的“變更”頁面刷新軟件源。刷新成功后用Cydia搜索并安裝Reveal loader ,安裝完成后點擊重啟springboard。

Reveal loader

3.在系統設置中找到Reveal,點擊Reveal - Enabled Applications,將美團選為Enabled。
Enabled

4.安裝Reveal
5.首先保證iPhone和Mac在同一局域網(WiFi)中,在iPhone中運行你要監視的app,如果app已經運行,需在后臺殺死進程重新打開,保持app在前臺,然后在Mac中打開Reveal,點擊左上角的No Connection,然后選擇即可。
6.Commend+5 切換3D模式。每當iPhone上的app頁面切換后,需要點擊Reveal窗口右上角刷新(Commend+R)。在局域網內負荷較大時,視圖刷新會很慢,可以用iPhone共享熱點給Mac解決。

準備完畢后,就能在Reveal上隨意查看App結構了,如下圖所示:


App結構
App結構

后記

這篇blog主要記錄仿寫一個App的準備工作,包括獲取素材,接口,以及查看App層級結構,關于如何仿寫怎么仿寫,就得自己去Coding了。


Blog地址

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容