1. 程式人生 > >iOS- 快速開發一個app(一些包工具等)

iOS- 快速開發一個app(一些包工具等)

首先你要花點時間針對objective-c語言的學習;畢竟這個是iOS開發的基礎(你也可以嘗試用Swift,但此專案只是針對OC),程式設計套路其實都是差不多,多寫多想多實踐;關於環境的搭建就不在本文進行介紹,這部分內容可以自行百度或谷歌,都有相應的說明;

對於一個剛入門總是希望有個完整的專案可以直接執行,並且從中學習功能模組如何開發;本專案初識就是為了把常見的功能模組進行一個展現,裡面還包含一些基礎知識的介紹;如果可以大概看完專案中的程式碼,對於編寫一個iOS專案應該是沒有問題;專案中也把常用到的程式碼進行整理,希望對你有幫助;

效果展現:

80291-20170814174503646-761065913.png

一:整體專案搭建

80291-20170814174715350-1569484087.png

專案中對於程式碼的架構跟分層還是比較明確,可以滿足大部分中小型的專案,採用也是傳統的MVC模式,對於模組、資源、助手、分類、巨集定義檔案等都有相應的位置進行存放;當然對於專案的分層還是基於專案的要求,及個人的喜好;專案還定義巨集進行區分不同的環境,可以根據要求再增加不同環境;

二:常見助手程式碼

80291-20170814174822006-2008220852.png

專案中對於一些常見的功能程式碼已經進行封裝,都可以運用在真實的專案中,達到簡化專案開化的目的,各個助手就沒進行一一介紹;可以自行下載原始碼進行檢視;

三:基礎知識點

1:viewController生命週期

2:執行時RunTime知識運用 裡面包括RunTime一些常見的例項,部分有簡單的介紹

3:多執行緒知識運用 包含NSThread多執行緒、GCD多執行緒、NSOperation多執行緒、同步鎖知識各種例項實現

4:Protocol實現類 如何簡單實現解耦

5:Block記憶體釋放知識點 常見的記憶體處理問題 包含block迴圈、物件釋放等

6:TableViewDataSource提取

7:CADisplayLink知識運用

8:CAShapeLayer與UIBezierPath知識運用

9:CGContext知識點運用

此模組是關於iOS一些常見知識點的總結,每個基礎點都有相應的例項跟程式碼註解介紹,特別是關於runtime知識點、多執行緒、動作等內容;在平常開發過程中還是比較常見;會比入門基礎知識點更加深入;

四:模組知識點

1:整合百度地圖(3.0.0版),目前有百度定位功能(ThirdMacros.h修改相應的key值)

2:整合友盟統計(ThirdMacros.h修改相應的key值)

3:整合CocoaLumberjack日誌記錄

4:引入第三方inputAccessoryView 解決為一些無輸入源的控制元件新增輸入響應。比如按鈕、cell、view等

5:整合個推訊息推送功能(ThirdMacros.h修改相應的key值),證書也要用你們自個的訊息證書;

6:整合友盟分享SDK,並在登入頁實現的(QQ,微信,新浪)三種的第三方登入功能(ThirdMacros.h修改相應的key值)

7:整合友盟第三方分享(QQ空間分享,微信朋友圈,新浪微博分享,QQ微博分享,微信好友)

8:增加關於CocoaLumberjack日誌記錄的展示及檢視頁面

9:增加百度地圖顯示頁面功能例項,實現在地圖上顯示幾個座標點,並自定義座標點的圖示跟彈出提示窗內容,實現當前定位並畫出行車路線圖;

10:增加FLEX,在本地測試版本開啟,FLEX是Flipboard官方釋出的一組專門用於iOS開發的應用內除錯工具,能在模擬器和物理裝置上良好運作,而開發者也無需將其連線到LLDB/Xcode或其他遠端除錯伺服器,即可直接檢視或修改正在執行的App的每一處狀態。

11:增加FCUIID幫助類,用於獲取裝置標識

12:增加熱更新JSPatch外掛,並增加相應的幫助類及測試功能(JSPatchViewController)

13:整合啟動廣告功能模組,如果不要功能可以在AppDelegate裡面進行注掉

14:整合CYLTabBarController外掛,為專案增加底部4個TabBar選單

15:引入LKDBHelper並增加建立資料庫幫助類,實現實體直接對映到資料庫表

16:整合第一次啟動的引導頁功能模組

17:整合LBXScan外掛,實現二維碼相關功能模組,包含掃二維碼顯示結果、從相簿讀取圖片中的二維碼結果

18:封裝MBProgressHUD擴充套件類,定義一些常見的提示效果,詳見MBProgressHUD+MP類

19:開發關於圖片上傳,包含選擇照片、拍照、瀏覽大圖、獲得圖片GPS、圖片名稱、圖片拍照時間、上傳時對圖片進行轉正調整、壓縮圖片、圖片展現效果

20:開發關於圖片上傳帶進度效果,並把照片先存入沙盒中,上傳成功刪除,引入M13ProgressSuite外掛顯示進度扇形效果,部分用到ReactiveCocoa知識;

21:編寫一個以iphone5為效果圖的字型適配螢幕,相容iphone6+效果,如果你的效果圖不是iphone5,可以修改相應的巨集定義,現在是以iphone5為標準

22:編寫一個UITableViewCell倒計時功能,例項因為沒有服務端介面,所以時間都以本地時間為準,正式專案時間都要從服務端獲取;

23:引入WebViewJavascriptBridge進行H5互動,並對官網例項進行註解

24:增加省市區三級聯動的幫助類,可以設定繫結預設值,也可以檢視當前的彈出窗狀態,並實現其小例項

25:增加自定義彈出窗幫助類,模擬系統UIAlertView效果,增加一個帶UITextView的彈出效果,其它自定義檢視根據專案再建立;

26:YYText富文字例項 簡單實現關於YYText的運用,幷包含一些小例項

27:列表行展開跟回收隱藏 實現列表分組顯示,然後實現可以對每一組進行展現跟收縮的功能;

28:常見表單行型別 常見的幾種表單實現方式,包含輸入、選擇、多行輸入、時間選擇;

29:人臉識別註冊及驗證 整合識別SDK,完成人臉的識別簽到效果;

30:JavaScriptCore運用 跟H5結合的例項,完成相應的呼叫效果

31:Masonry佈局例項 列出一些比較常見的佈局方式

32:鍵盤處理操作 實現關於鍵盤彈出時的自定義檢視高度問題

33:自定義導航欄動態顯現效果 可以實現滾動時對導航欄的變化,監聽關於滾動的變化

34:列表只加載顯示時Cell的SDWebImage圖 實現列表在快速滾動時行的圖片先不進行載入,直到停止時才進行載入圖片,優化展現

35:長按列表行拖動效果 實現列表中的某一行進行動態拉動,並插入到其它位置效果

36:自定義日期彈出控制元件,過濾不符合最大時間跟最小時間範圍;

此模組也是專案佔比重最多的部分,裡面已經包含常見的功能點,其實每一個都是一個真實的功能實現;相信這些功能點已經足夠滿足你開發一個APP;你可以針對每一個功能點進行檢視;

四:外掛介紹

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 abstract_target 'MobileProjectDefault' do pod 'AFNetworking''~>3.0' pod 'ReactiveCocoa''~> 2.5' pod 'SDWebImage''~> 3.7.5' pod 'JSONModel''~> 1.0.1' pod 'Masonry','~>0.6.1' pod 'FMDB/common' '~>2.5' pod 'FMDB/SQLCi