一: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;
如果喜欢或者有帮助可以点星哈,如果您也有空闲时间可以一起完善,保持关注会不断的更新功能;
iOS开源项目MobileProject功能点介绍的更多相关文章
-
Github上600多个iOS开源项目分类及介绍
将Github上600多个iOS开源项目进行分类并且有相应介绍,小伙伴们快来看呀 地址:http://github.ibireme.com/github/list/ios/
-
十款不容错过的Swift iOS开源项目及介绍
1.十款不容错过的Swift iOS开源项目. http://www.csdn.net/article/2014-10-16/2822083-swift-ios-open-source-project ...
-
直接拿来用!最火的iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
-
(转)直接拿来用!最火的iOS开源项目(二)
“每一次的改变总意味着新的开始.”这句话用在iOS上可谓是再合适不过的了.GitHub上的iOS开源项目数不胜数,iOS每一次的改变,总会引发iOS开源项目的演变,从iOS 1.x到如今的iOS 7, ...
-
(转)直接拿来用!最火的iOS开源项目(一)
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
-
【转】GitHub平台最火的iOS开源项目——2013-08-25 17
http://www.cnblogs.com/lhming/category/391396.html 今天,我们将介绍20个在GitHub上非常受开发者欢迎的iOS开源项目,你准备好了吗? 1. AF ...
-
iOS开源项目
在结束了GitHub平台上“最受欢迎的Android开源项目”系列盘点之后,我们正式迎来了“GitHub上最受欢迎的iOS开源项目”系列盘点.今天,我们将介绍20个在GitHub上非常受开发者欢迎的i ...
-
GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造*的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。
1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...
-
GitHub上最火的40个iOS开源项目
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS. Mac OS X网络通信类库,现在是 ...
随机推荐
-
javascript的Function 和其 Arguments
http://shengren-wang.iteye.com/blog/1343256 javascript的Function属性:1.Arguments对象2.caller 对调用单前函数的Func ...
-
uva 12284 直接判断
思路:见代码 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm ...
-
lua与C/C++交互
Lua设计小巧很容易与C/C++进行交互,下面我们具体讲解C/C++中如何调用lua,而lua中又如何调用C代码. 首先lua和C交互的一个重要的数据结构lua_State,它是进行数据交换的堆栈,按 ...
-
Oracle AWR报告指标全解析-11011552
1-5 Top 5 Timed EventsWaits : 该等待事件发生的次数, 对于DB CPU此项不可用Times : 该等待事件消耗的总计时间,单位为秒, 对于DB CPU 而言是前台进程所消 ...
-
Mac浏览器全屏设置
在 mac 升级之后,以往点击放大的按钮,现在显示的效果是全屏:
-
eclipse 开始运行提示 Java was started but returned exit code=13
Eclipse 是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 当我们安装使用时,会出现eclipse启动不了,出现" ...
-
Java和C++的对比
事实上, Java 本来就是从 C++衍生出来的. C++和 Java 之间仍存在一些显著的差异.可以这样说,这些差异代表着技术的极大进步.一旦我们弄清楚了这些差异,就会理解为什么说 Java 是一种 ...
-
hud 2577 How to Type
How to Type Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
-
href,src,url三者区别。
在html中: href(Hypertext Reference)指向网络上的资源,在现有元素(如a标签)或现有文档(如link)与目标锚或资源之间建立链接. 建立链接的过程中,浏览器不会停止解析所在 ...
-
lnmp “.user.ini”无法删除解决方法
LNMP无法删除或更改权限,显示:rm: cannot remove `.user.ini’: Operation not permitted 无法删除“.user.ini”文件解决方法,运行后删除即 ...