MobileProject
iOS开源项目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;
如果喜欢或者有帮助可以点星哈,如果您也有空闲时间可以一起完善,保持关注会不断的更新功能;
MobileProject的更多相关文章
- iOS开源项目MobileProject功能点介绍
一:MobileProject简介 MobileProject项目是一个以MVC模式搭建的开源功能集合,基于Objective-C上面进行编写,意在解决新项目对于常见功能模块的重复开发,MobileP ...
- iOS通用的MVC模式项目框架MobileProject
最近项目比较不赶的情况下,决定把一些通用.常用的内容集成在一个项目框架中,意在新项目中可以快速搭建:其实经过几个项目后,总是有一些重复的创建工作,可以使用本项目的内容直接进行开发:采用的是MVC的分层 ...
- iOS比较常用的第三方及实例(不断更新中)
把平时看到或项目用到的一些插件进行整理,文章后面分享一些不错的实例,若你有其它的插件欢迎分享,不断的进行更新: 一:第三方插件 1:基于响应式编程思想的oc 地址:https://github.com ...
- iOS项目iCloud及CloudKit Dashboard运用
CloudKit是苹果推出的基于iCloud的一个云端数据存储服务.其 主要由下面两部分组成: 一个仪表web页面,用于管理公开数据的记录类型. 一组API接口,用于iCloud和设备之间的数据传递. ...
- iOS 常用第三方类库、完整APP示例
一.第三方类库 1:基于响应式编程思想的oc地址:https://github.com/ReactiveCocoa/ReactiveCocoa2:hud提示框地址:https://github.com ...
- IOS开发基础知识--碎片38
1:FCUUID获取设备标识的运用 a:作者 githun地址 https://github.com/fabiocaccamo/FCUUID 因为里面还用到作者的另外一个类UICKeyChainSto ...
- IOS开发基础知识--碎片41
1:UIWebView加载本地的HTML NSString *path = [[NSBundle mainBundle] bundlePath]; NSURL *baseURL = [NSURL fi ...
- 刚看到的感觉会用的到 收藏一下 常用的iOS第三方资源 (转)
原文出处:http://blog.csdn.net/ruiwang321/article/details/50591888 一:第三方插件 1:基于响应式编程思想的oc 地址:https://gith ...
- 私有Pods封装个推SDK功能(解决方案)
一:运用场景 公司中同时有好几个APP在开发,而且每个APP都有使用到集成个推SDK来处理消息的功能,以前的做法是每个APP都去集成并在AppDelegate处理一些SDK的代码,包含个推基础配置.消 ...
随机推荐
- Entity Framewor 学习笔记 (Enum)
EF 6 支持Enum 的处理 首先说一下 mysql 和 sql server 的区别 mysql 是有 Enum 这个类型的 , insert 时是放入 int , 出来的时候它会是 string ...
- zoj 3647 Gao the Grid
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4837 先求出从所有点随机找出三个点的组合数,然后去掉共线的,平行好去掉,斜线就 ...
- 深入剖析keil c51 --- 从汇编到c51
第一节 main()函数和启动代码 汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和 ...
- IBM Cognos 10 启动报错
报错信息: 15:35:02, 'LogService', 'StartService', 'Success'. 15:35:03, CAF input validation enabled. 15: ...
- 【转】Android 带checkbox的listView 实现多选,全选,反选----解决checkbox错位问题
原文网址:http://blog.csdn.net/onlyonecoder/article/details/8687811 Demo地址(0分资源):http://download.csdn.net ...
- Delphi EurekaLog 调试内存泄露方法
要使用EurekaLog进行内存泄露检测,需要手动开启"EurekaLog Options..."下的"Advanced Options"旁的"Mem ...
- C++中的string类(1)
http://blog.sina.com.cn/s/blog_51409e8f01009h7g.html 前言: string 的角色1 string 使用1.1 充分使用string 操作符1.2 ...
- Hadoop2.4.1 使用MapReduce简单的数据清洗
package com.bank.service; import java.io.IOException;import java.text.ParseException;import java.tex ...
- java中 SSL认证和keystore使用
java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报 目录(?)[+] 好久没用过SSL认证了,东西久不用,就有点生疏. ...
- Uncaught SyntaxError : Unexpected token ILLEGAL js传递带空格的参数
通常在页面中要让某些内容点击后产生点击事件(非页面跳转)都会使用onclick,但是这样不适于需要传递参数的情况,于是写成直接调用JavaScript函数的方式:<a href=javascri ...