新浪微博
1.业务介绍:
新浪微博客户端是新浪官方打造的一款移动社交应用,将线上的微博业务移植到手机上来的这么一款APP。
2.架构介绍
这个客户端总体分了5个模块,每个模块都是采用了MVC的架构模式来分离视图与数据的解耦合。Model层我们抽离出了一个BaseModel基类,将JSON数据填充到Model对象的逻辑封装到这个基类中;控制器层,我们抽取出了BaseViewController,将共性的方法与属性定义在这个基类中,例如加载提示、返回按钮、数据请求对象等等;View视图层,需要大量子类化视图控件都抽取出基类,方便以后的扩展与维护,例如:BaseView、BaseCell, BaseTableView中我们封装了上拉下拉功能,这样大量上拉下拉的表视图继承这个类就可以了。整体UI界面的创建采用了Storyboard。
3.技术点介绍
(1)网络请求我们使用开源框架AFNetWorking封装了一个网络请求工具类
(2)界面上实现了主题切换显示不同的主题图片和字体
(3)微博列表是这个项目的核心模块,我们采用CoreText实现了这个列表的图文混排。
(4)使用正则表达式,查找需要添加文字链接、表情的字符串
(5)我们使用绘图的方式,将每个表情图片,绘制为一个表情面板,并且可以使用放大镜显示选中的表情
(6)类与类之间的通信,大量使用了block使代码更简洁紧凑。
(7)接入新浪微博的SDK,采用OAuth认证,访问新浪开放平台的网络接口。
(8)放大缩小微博列表中的缩略图,并且实现大图的网络加载,缓存处理,GIF图片的动画显示
(9)导航控制器的导航返回,采用了时下流行的抽屉式导航返回
(10)适配iOS6、iOS7两个系统版本
下面是一些界面的效果:
主页:
可切换主题
实现下拉刷新,微博详情,关注粉丝列表,等一些功能
附近的微博:
实现了发微博,表情,拍照,选取照片,等功能:
【具体实现,后续更新】
请关注 新浪微博项目1.0⬇️