第一个iOS项目

  • 前言
    从Android开发转入到iOS开发参与的第一个项目,从处理一个字符串转换问题都要查询,磕磕绊绊的前进,到现在可以大致的实现需求中所要求的功能效果。这个过程是对OC的API熟悉的过程。跟之前学习Android的套路基本一致。熟能生巧。

  • 项目分析
    项目是一个轻社交类型的资讯项目。里面包含功能大体。

布局瀑布流
类似的IM
分享
第三方推送
图片效果处理

项目效果图如下:


第一个iOS项目_第1张图片
首页.png
第一个iOS项目_第2张图片
资讯.png
第一个iOS项目_第3张图片
图片内容.png
第一个iOS项目_第4张图片
数据_1.png
第一个iOS项目_第5张图片
我.png
第一个iOS项目_第6张图片
个人设置.png
第一个iOS项目_第7张图片
图片处理.png
  • 布局瀑布流的实现

主要是使用tableview 自定义CELL形式。
以标准的单元格 内部构建固定的一个ITEM (自定义一个包含内容图片,用户头衔,用户名,提交时间差)。再通过内行类型去控制该cell要使用的那种cell模式 一共是四种。每种包含Item的数量不同。类似S型排布。

  • 类似的IM

通过请求时间固定轮询的方式。实现一个模拟IM效果。单位控制在5S,用户没有在私信聊天页面内,是有在外部做一个推送消息机制。聊天布局页面采用了第三方的气泡实现效果,键盘内还包含有第三方的表情库。

  • 分享

使用友盟集成的SDK。轻便快捷。只需要熟悉调用API接口。即可实现。

  • 第三方推送

使用的是个推,在APP端使用时候先注册key ,上传开发和推送证书,服务器端设置相关内容,调用第三方接口,个推再进行处理推送过来。

  • 图片效果处理

使用系统自带效果处理,使用异步方式实现。

里面内部用到的第三放框架解析

第一个iOS项目_第8张图片
第三方框架.jpg
  • HexColors : 颜色处理 @"#be9e81" 转换为对应的UICOLOR
  • MLEmoji:自动识别网址、号码、邮箱、@、#话题#和表情的label
  • JSQSystemSoundPlayer:同下
  • JSQMessagesViewController: 聊天气泡效果
  • JSBadgeView:可定制的在视图上显示徽章的组件(右上角+数字)
  • SJAvatarBrowser: 图片点击显示放大效果
  • SMS_SDK:短信校验功能使用
  • libGeXinSdk:个推SDK注册使用接收
  • TPKeyBOardAvoiding:用于在scrollview中实现自动上滚,避免键盘遮盖住了textfield,textview等控件
  • QiniuSDK: 7牛SDK,用于网络云存储图片
  • PlaceholderTextView:让 UITextView 在没有输入文字的时候支持填充placeholder(默认文字)
  • CLImageEditor:最基本的图片处理编辑功能。如编辑,滤镜,颜色调整,裁剪,旋转,色彩曲线功能
  • HPGrowingTextView:实现了增加多行文本和减少文本时输入框的伸缩和滚动效果
  • PureLayout:提供模板布局
  • VGParallaxHeader:可以实现多种不同表头效果。包括拉长、放大图片、变换颜色等
  • NSDate-TimeAgo:IM显示距离时间组件
  • AGEmojiKeyBoard:对 emoji 表情支持的键盘控件
  • AFNetWorking:非常出名受欢迎的一个网络库,再自己封装一次成为基础的网络请求层
  • MBProgressHUD:toast 提示特效组件
  • MJExtension: JSON 和模型之间最快捷方便的转换组件
  • MJRefresh:下拉上拉刷新集成组件
  • SDWebImage:网络图片处理框架
  • UMSDK:友盟SDK

以上就是所用到的开源框架和组件

  • 还有一些特定的小技巧小功能
  • 页面数据传递刷新
    A页面数据 B页面修改 同时改UI显示 用到block方式
  • H5交互调用
    js调用APP本地代码,和调用web的JS代码等

  • 预编译文件
    在PCH中加入大量需要预先编译的模块和区分调试版和发布版的控制

  • 贯穿这个APP的单例设置
    在PCH中声明,在登录APP的入口处进行初始化。

  • end
    对于初学者来说,这个已经是足够入门了。
    所用到的技术和组件框架等都是有很多值得深入学习研究的。
    自定义tabbar栏,banner,样式cell,JS交互,数据刷新机制等等。
    与当初做Android对比起来。很多也是细节上的交互差异。

PS:有错误或者不足之处,欢迎指出。谢谢。

你可能感兴趣的:(第一个iOS项目)