【时间有限 未完待续...】
APP官方简介
◆免费通话:Wifi/3G下可以全球免费通话,拉近距离只在毫秒之间;
◆情侣游戏:情侣专属游戏,茫茫人海中能否一眼看出你心爱的人;
◆私密聊天:记录爱的点滴,只有情侣彼此能看到;
◆私密相册:独有相片加密技术,共同管理共同维护;
◆表情商城:丰富有趣的表情,情侣间的沟通更有乐趣;
◆纪念日: 记录二人生活趣事或即将一起做的事情;
◆日记本: 日 记 本,记录二人生活趣事或即将一起做的事情;
◆情侣社区:与其他情侣交流分享;
◆情侣空间:邀请好友参观只属于你们的小窝,可随时关闭;
◆任务奖励:每天登录领取奖励;
◆小应用: 不定期更新,每期推荐适合情侣的精品应用;
项目简介
该项目总共分为
5
大模块,而每个模块均采用了
MVC
的架构模式来分离视图与数据的解耦合。整个界面
主要使用的是故事版。并且抽象出了LSBaseModel、LSBaseViewController两个基类用于存放相同代码,同时在UIUtils类中封装了时间与时间戳之间的相互转换、时间与时间相距的时间等计算时间的方法。
项目中使用到得开源框架:
- 用于网络请求:AFNetWorking
- 用于刷新:MJRefresh
- 用于加载网络图片:SDWebImage
- 用于绘制图案解锁密码:JMPasswordView
- 用于上传提示:MBProgressHUD
- 用于获取视图的frame、位置等:UIView+Ext
技术浅谈
- 整个框架在storyboard中完成,节省了大量敲代码的时间
- 整个APP的状态栏采用黑底白字,导航栏字体为白色。
//设置状态栏的颜色,返回一个样式
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent; //所有状态栏都为白色
}
- 首次进入应用时设计了一个ScorllView滑动视图效果的欢迎界面,在最后一页点击“进入应用”进入到APP首页
- 点击“我睡了”,通过时间戳计算睡了多久,此时会发通知给另一半,Ta即可看见你正处于睡觉状态,便可通过远程闹钟叫你起床。
- “小姨妈”,女生可UIDatePicker控件来选择经期时间
- “私密相册” 采用UICollectionView展现两人私密照片列表
- “纪念日” 通过UIDatePicker设置纪念日期,并保存本地,使用UIUtils中封装的daysFormTimeToTime来计算天数,并通过block将值传回纪念日列表显示。
- “情侣空间”使用TableView,并对每张图片继承于封装好的ZoomImageView上,便可实现图片的放大缩小。
- “排行榜”使用ColletionView展示当前位居排行榜上得情侣空间,并可通过单元格进入到其空间浏览。
- “情侣说”界面是一个多组单行小时效果的表,单元格的高度是固定的,单元格内容的布局采用了xib,子类化一个TopicsCell,用于显示用户和话题。对用户昵称label进行了宽度的计算。话题被更新时间通过UIUtils的dateToDate:方法计算出距离当前多久时间。导航栏上添加了Segmented控件,并在此控件上添加了改变值就可触发的事件,当“热门”、“精华”、“新鲜”间相互切换的时候,会改变URL再次请求。
- “情侣说详情”,该界面的使用tableView,表的头视图包含了话题视图与功能视图,使用了一个父视图显示他们,通过话题内容计算了最佳显示高度,并以此为依据改变头视图的高度。评论列表单元格通过加载xib来显示。
//设置label的宽度
CGSize size = [_nickname.text sizeWithFont:[UIFont systemFontOfSize:15] constrainedToSize:CGSizeMake(MAXFLOAT, 20)];
//通过内容计算单元格高度
NSString *content = repliesModel.content;
UIFont *font = [UIFont systemFontOfSize:13];
CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(kScreenWidth, 1000)];
- “通知”界面,有通知可通过单元格通过PUSH跳转到对应页面。
- "屏幕解锁" 通过第三方框架JMPasswordView绘制密码点,手势移动时便绘制连线。小于4位位无效密码,并将有效密码保存到本地,若开关状态为开,程序启动时则需要先通过密码验证才能进入程序。
- 数据加载的几个tableVIew界面,都使用了下拉刷新,上拉加载数据的功能。
总结:
这是独自完成的第一个项目,花了12天,还有一些功能没有来得及实现。通过这次的项目,感觉自己还是学到了很多东西,一点一滴都是自己做出来的,虽然效率不高,但收获不少。也了解到一个项目着手前的准备工作、整个策划还是很重要的,避免开发过程中因前期考虑不周带来的麻烦。
效果截图:
- 首次进入应用:
- 图案解锁
程序启动的密码验证 设置图案解锁
- 五大板块界面
其他功能界面