一:MobileProject簡介 MobileProject項目是一個以MVC模式搭建的開源功能集合,基於Objective-C上面進行編寫,意在解決新項目對於常見功能模塊的重覆開發,MobileProject對於項目的搭建也進行很明確的劃分,各個模塊職責也比較明確,MobileProject也引 ...
一:MobileProject簡介
MobileProject項目是一個以MVC模式搭建的開源功能集合,基於Objective-C上面進行編寫,意在解決新項目對於常見功能模塊的重覆開發,MobileProject對於項目的搭建也進行很明確的劃分,各個模塊職責也比較明確,MobileProject也引入的一些常用第三方插件、巨集定義、工具幫助類等;整個項目也是在不斷更新跟維護中,功能點也會不斷更新;代碼支持iOS7以後版本;
二:項目框架內容
三:功能點介紹
1:JSPatch熱更新功能
相信關於JSPatch插件用於項目的熱更新應該是比較常見的功能,在MobileProject裡面就實現一個關於熱更新的效果,並且有封裝一個幫助類,對於熱更新的JS文件下載及運用進行說明;包含一些下載的次數控制等;
2:LKDB實體映射資料庫的運用
在平時開發過程中經常會碰到跟資料庫打交道,而LKDB是一個不錯的實體映射成資料庫插件,可以很輕鬆就能完成實體針資料庫列的映射,並能進行一些在實體層面上的增刪改查的操作,當然也可以進行SQL語句的運用;能夠滿足我們平時項目的運用;
3:百度地圖的運用
在平常項目中對於地圖的運用可能包含顯示跟定位等相關的內容,MobileProject項目里有一個關於百度地圖的車行路線生成實例,並且修改大頭針跟彈出窗的效果,代碼中還運用百度地圖進行定位,並對手機不同的語言進行定位城市的處理功能;使其在定位獲取城市名字時一定是中文,排除由於手機設置語言的原因導致城市名稱不對等;
4:二維碼功能運用
MobileProject中的二維碼主要是在基於插件LBXScan上進行開發,其封裝已經滿足平常我們見到的二維效果,項目實例主要是包含關於掃描跟從相冊選取照片然後讀取上面的二維碼效果,當然LBXScan還可以讀取條形碼的功能,可以去查看其官方實例效果;
5:照片上傳功能及附帶進度上傳效果
照片上傳應該是每個APP必備的功能模塊,所以MobileProject對它進行的一個簡單整理,主要實現了,包含選擇照片、拍照、瀏覽大圖、獲得圖片GPS、圖片名稱、圖片拍照時間、上傳時對圖片進行轉正調整、壓縮圖片、圖片展現效果等,項目中也還有另外一種上傳效果,就是帶進度的上傳,選擇完幾張照片它會每張進間上傳並有相應的扇形進度效果;
6:字體適配機型
針對目前iPhone機型已經越來越多的狀態下,在設計只出一種效果圖的情況下,要在不同的屏幕大小顯示出不同的字體大小跟佈局,在MobileProject定義的幾種巨集,其假設效果圖是用iphone5出,通過這幾個巨集的運用就可以相容在ipone6+等下的佈局,解決以前關於大屏字體變小等問題;
7:日誌記錄
日誌記錄功能應該是每個APP必備,項目中運用了CocoaLumberjack進行日誌記錄的展示,併在公共頁面里已經增加了兩個展現頁,用於展現記錄的內容,在詳細的錯誤記錄裡面還有一個郵件發送的功能,可以把錯誤內容通過郵件發送給開發人員,解決項目上線後關於BUG的收集難題,MobileProject中也根據不同的環境設置記錄等級,也在項目裡面增加在控制台進行有色字體提示;
8:列表空白頁展現
項目中有時在列表沒有數據或者說是網路請求出現的情況下是要有相關提示,MobileProject也引入的一個空白提示效果用於其功能,基本上可以滿足平時的開發要求;
9:自定義彈出窗
自定義的彈出窗UIAlert在IOS7跟IOS8以後是有不一樣的效果,經常會在一些項目中要求模擬系統的UIAlert的樣式進行編寫,針對這種情況加入的一個自定義彈出窗,模擬系統UIAlertView效果,增加一個帶UITextView的彈出效果,其它自定義視圖根據項目再創建;實例中有幾個這方面的實例;
10:其它功能模塊
a:關於引導頁功能的封裝,只要簡單傳入一組圖片就可以實現引導頁的功能模塊
b:關於啟動廣告功能的封裝,同樣也是傳入一組圖片就可以有展現效果,圖片還是載入服務端,下載並保存在本地;
c:友盟管理幫助類的封裝,主要是一些關於友盟統計的代碼跟頁面記錄功能,結合runtime功能進行記錄效果
d:記錄設備唯一標識功能,在IOS中現在是不能再獲取設備的唯一碼,在MobileProject引入的一個插件從而可以獲取設備的FCUUID,同樣可以達到相應的效果;
e:省市區三級聯動的效果功能,從本地讀取省市區數據並載入,可以綁定預設值及選擇後的效果;
f:還有關於友盟第三方登錄的功能及友盟第三方分享的功能
g:封裝MBProgressHUD擴展類,定義一些常見的提示效果,詳見MBProgressHUD+MP類
h:集成CYLTabBarController插件,為項目增加底部4個TabBar菜單,並且有相應的未讀提醒效果,及點擊事件的運用;
i:集成個推消息推送功能(ThirdMacros.h修改相應的key值),證書也要用你們自個的消息證書;
j:增加FLEX,在本地測試版本開啟,FLEX是Flipboard官方發佈的一組專門用於iOS開發的應用內調試工具,能在模擬器和物理設備上良好運作,而開發者也無需將其連接到LLDB/Xcode或其他遠程調試伺服器,即可直接查看或修改正在運行的App的每一處狀態。
k:UITableViewCell倒計時功能,實例因為沒有服務端介面,所以時間都以本地時間為準,正式項目時間都要從服務端獲取;
l:引入WebViewJavascriptBridge進行H5交互,並對官網實例進行註解
四:總結
上面主要列出一些目前項目中的封裝或者是實例功能模塊,還有一些其它的運用就沒有在這詳細進行講解,比如網路運用、巨集定義、分類擴展類、其它小型幫助類等,可以下載源代碼進行查看,項目也在不斷的完善中,對於項目的構架也在提一步的提升,對於編寫的代碼也不斷的優化;
項目的源代碼地址:https://github.com/wujunyang/MobileProject;
如果喜歡或者有幫助可以點星哈,如果您也有空閑時間可以一起完善,保持關註會不斷的更新功能;