Swift5 + MVVM + 文艺复兴微博(纯代码)

背景: 现在越来越多的公司会尝试用 Swift 做 native 的开发了,很多之前习惯用 Objective-C 的开发,有新项目启动的时候,也会想说用 Swift 试试。如果从 2020年编程语言排行榜 上看的话,Swift的热度也领先 Objective-C 10个身位了。而我们现在公司所做的项目,也是用 Swift 开发的,虽然说之前有些 OC 基础,写起 Swift 功能也是能实现,但是代码不是很优雅,不够 'Swift Style'。 熟练度不够的话,很多 Swift 的高级写法还得去翻文档才知道什么意思,所以就打算从0单排一个Swift的项目,而微博正好有 开放API , 所以这里就选择它了。


主页界面

image


表情界面

image


项目架构

image


项目功能

  • 原创微博功能
  • 转发微博功能
  • Emoji表情功能
  • 撰写微博界面
  • 新特性功能
  • 消息提醒功能
  • 多图展示功能
  • 富文本功能
  • 多图展示功能
  • 下滑自动加载功能
  • 上/下拉刷新功能
  • OAuth 授权登录功能
  • 已完成
  • 发布微博功能(API已不提供)
  • 图片上传功能(API已不提供)
  • 消息功能
  • 发现功能
  • 我的功能
  • SVProgressHUD 提醒功能


用到的技术点

  • TableView高度缓存
  • SDWebImage圆角处理
  • FMDB数据缓存
  • OAuth授权
  • 单张图片的高度计算
  • Cell滚动自动加载更多
  • 撰写页面的动画处理
  • 发布界面的Emoji处理
  • 多图的展示
  • ...

不足点

  • Weibo 的 App 包里的素材图片实在太多了,找到完全匹配的要花费超多时间,所以有的资源不是很匹配,或者不是当前最新的
  • 该Demo使用了FMDB,其实微博这种时效性毕竟高,且有较高政治敏感度的,不适合用本地缓存, 这里只是一个 FMDB 使用的简单案例,更适合更新不用太及时,或者类似qq这种接收服务端推送消息的app.
  • 这个文艺复兴版的微博(2016年的),现在的微博已经有了较大的变动,且很多API接口现在已经不开放了,所以暂时先用此怀旧版本.
  • SVProgressHUD 在Swift5.0会crash,所以这个app里没有 toast 功能,坐等修复...
  • Gif图片由于现在门户网站只能传 < 5M 的,所以看上去毕竟模糊,实际效果会比 Gif 图片好得多,建议用真机跑一下试试~
  • 这版本来打算用本人拙劣的英文写全篇的注释,后来由于本人 Chinelish 水平有限,毕竟复杂的逻辑/业务就用中文写了(求轻喷)
  • ...

使用的第三方库

  • AFNetworking
  • SDWebImage
  • YYModel
  • SnapKit
  • FMDB
  • pop
  • HMPhotoViewerController

工具分享

图片素材获取: cartool

取色标注工具: MarkMan

数据库工具: Navicat

画图工具: MindNode

...


总结

从事了一段时间的 Swift 开发,发现没有一定量的代码积淀(踩坑)还是不行,所以就打算自己写一个入门的纯Swift App。这个项目是本萌新的第一个发布swift项目,有些粗糙,但是如果新手作为 Swift 上手,入门的,其实应该还可以。该项目基本都是用的 “纯代码+纯Swift” 的方式写的,用的也是尽量新的 API, 萌新们想玩的话感觉还是可以上手的。

最近发现,时间管理 真的很重要,很多事情,一开始以为自己做不到,就打退堂鼓了,但是只要咬咬牙,挑战一下自己的极限,这不,这个Demo就出来了~ (为了写这破玩意,老夫都颈椎病去做针灸了,骗波 star不过分吧~ (开玩笑的,大家开心就好😂))

觉得哪里写的不好的,哪里能改进的,有时间帮忙做code review,提PR的,热烈欢迎啊,这里先谢过了~



本文Demo:MNWeibo


本文感谢 新浪提供的 API 支持,感谢 天涯刀哥-傅红雪 的指导

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容

  • 小仙一直是个环保主义者,看见滴水的水龙头,无人时开着的灯,都会强迫性地去关一下。毕竟咱们的地球只有一个不是吗? 所...
    rainy_he阅读 329评论 0 0
  • 2018中考进入倒计时了,5月8号物理、化学、英语加试!孩子们正努力做实验!做老师、学生都不容易啊!加油加油!前途无量!
    金色阳光_ff2a阅读 426评论 0 0
  • 阴郁了几天的天气,今天终于放晴。清晨7点左右,鸟儿们陆陆续续起床,站在树枝上叽叽喳喳地练声,好像在比谁唱的好听。 ...
    Naomi梅_木禾阅读 209评论 0 1
  • 入营第一天,小营员们带着父母的期望,带着小伙伴们的羡慕,带着对军营的向往,带着对军人的崇拜,相聚在这里。我坚信通过...
    君临天下紫龙阅读 362评论 0 0
  • 人们常说:一年之计在于春,一天之计在于晨。起床之后,总喜欢立个flag,直到晚上睡觉才发现这个flag倒了。 最近...
    笔舒轻风阅读 353评论 0 3