【iOS开发】小恩爱(情侣必备) IOS客户端

【时间有限 未完待续...】


APP官方简介

        小恩爱是一款情侣 移动应用 ,只加心爱的人!情侣定制专属功能,享受私密二人世界。免费通话,Wifi/3G下全球免费通话,无需任何费用。情侣闹钟,二人专属远程闹钟,让TA一键叫你起床。情侣交流社区,与志趣相投的情侣们交流分享,还可以邀请朋友光临你们的情侣空间

◆免费通话: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天,还有一些功能没有来得及实现。通过这次的项目,感觉自己还是学到了很多东西,一点一滴都是自己做出来的,虽然效率不高,但收获不少。也了解到一个项目着手前的准备工作、整个策划还是很重要的,避免开发过程中因前期考虑不周带来的麻烦。


效果截图:
  • 首次进入应用:


  • 图案解锁
程序启动的密码验证                                            设置图案解锁
                   
  • 五大板块界面
        



其他功能界面
              

         






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值