iOS開源項目MobileProject功能點介紹

来源:http://www.cnblogs.com/wujy/archive/2016/08/15/5774019.html
-Advertisement-
Play Games

一: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

如果喜歡或者有幫助可以點星哈,如果您也有空閑時間可以一起完善,保持關註會不斷的更新功能;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 1、把aar複製到項目中的 libs 裡面 2、在module 裡面的build.gradle 的根目錄添加 3、在module 裡面的build.gradle 的根目錄的 dependencies 標簽裡面添加 其中 SDK-release 是你的aar的名字 4、在做完了前三步以後,會看到在項目 ...
  • iOS開發 中的代理實現 關於今天為什麼要發這篇文字的原因:今天在和同事聊天的時候他跟我說項目中給他的block有時候不太能看的懂,讓我儘量用代理寫,好吧心累了,那就先從寫個代理demo,防止以後他看不懂,嘿嘿 iOS開發 中的代理實現 今天我舉例的東西呢我就不寫demo了,直接從項目中吧需要的片段 ...
  • 解決辦法Item xml 根節點添加 android:descendantFocusability="blocksDescendants" Button 設置 android:focusable="false" 這樣點擊Button 和ListView Item 可以分別響應自己的點擊事件 開發中很 ...
  • 開源框架利與弊 開源框架給開發者提供了便利,避免了重覆造輪子,但是卻隱藏了一些開發上的細節,如果不關註其內部實現,那麼將不利於開發人員掌握核心技術,當然也談不上更好的使用它,計劃分析項目的集成使用和低層實現。 基本四部曲 1. ImageLoaderConfiguration(有預設) 通過Imag ...
  • 代碼: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. [self showAlertView:@"11111"]; } //自定義彈出框 -(void)sho ...
  • 上一篇(Android 設計隨便說說之簡單實踐(模塊劃分))例舉了應用商店設計來說明怎麼做模塊劃分。模塊劃分主要依賴於第一是業務需求,具體是怎麼樣的業務。應用商店則包括兩個業務,就是向用戶展示applist,和下載app。第二是運行環境,在Android平臺,有androidsdk提供socket等 ...
  • 在Android中,控制項可以分為ViewGroup控制項與View控制項。自定義View控制項,我之前的文章已經說過。這次我們主要說一下自定義ViewGroup控制項。ViewGroup是作為父控制項可以包含多個View控制項,並管理其中包含的View控制項。 一般自定義ViewGroup的流程如下: 我們一般不 ...
  • 問題描述:需要從一個ios應用程式中,能啟動另一個ios應用程式。 開發環境:xcode7.3.1 關鍵詞:白名單(LSApplicationQueriesSchemes)、註冊自己的URL Demo源代碼鏈接:http://pan.baidu.com/s/1bo327sb 如何從一個app中,啟動 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...