Swift5 + MVVM + 文藝復興微博(純程式碼)
背景: 現在越來越多的公司會嘗試用 Swift 做 native 的開發了,很多之前習慣用 Objective-C 的開發,有新專案啟動的時候,也會想說用 Swift 試試。如果從 2020年程式語言排行榜 上看的話,Swift的熱度也領先 Objective-C 10個身位了。而我們現在公司所做的專案,也是用 Swift 開發的,雖然說之前有些 OC 基礎,寫起 Swift 功能也是能實現,但是程式碼不是很優雅,不夠 'Swift Style'。 熟練度不夠的話,很多 Swift 的高階寫法還得去翻文件才知道什麼意思,所以就打算從0單排一個Swift的專案,而微博正好有 開放API , 所以這裡就選擇它了。
主頁介面
表情介面
專案架構
專案功能
- 原創微博功能
- 轉發微博功能
- 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
推薦?:
如果你想一起進階,不妨新增一下交流群 1012951431
面試題資料或者相關學習資料都在群檔案中 進群即可下載!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971523/viewspace-2691082/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 手機操作介面將進入文藝復興時代
- 智慧時代與華為路標:手機影像的文藝復興史
- 數字時代的“文藝復興”:集卡遊戲是如何重獲新生的?遊戲
- 讓文藝工作者來寫程式碼
- 純前端實現詞雲展示+附微博熱搜詞雲Demo程式碼前端
- 《貪婪之秋》:一個小團隊針對經典美式RPG的文藝復興
- 文藝程式設計師合集程式設計師
- 甲骨文:AI驅動的復興之路AI
- 文藝復興還是死而復生?那些已經涼了的老遊戲品類又回來了遊戲
- 心動發起了一場JRPG的“文藝復興”,《另一個伊甸》上線首日TapTap 9.2分APT
- 分享到QQ空間、新浪微博、騰訊微博的程式碼!(收藏)
- [譯]純程式碼建立 UIViewUIView
- mac 純程式碼建立tableviewMacView
- RISC-V,微處理器中的 Linux :它會開啟一個開源硬體的文藝復興麼?Linux
- 使用 Source Generators 快速編寫 MVVM 程式碼MVVM
- 用程式碼手把手教你使用MVVMMVVM
- 純程式碼Autolayout的三種方法
- 頗具藝術感的程式碼
- 90行程式碼爬取我的微博行程
- MVVM原始碼 - 如何實現一個MVVM框架MVVM原始碼框架
- Swift5 新特性預覽Swift
- 程式設計,不止有程式碼,還有藝術程式設計
- 《修改程式碼的藝術》迷你書
- 編寫可讀程式碼的藝術
- 微博收藏(機器學習課程與論文)(三)機器學習
- 找論文程式碼
- 純css tab選項卡程式碼例項CSS
- Swift如何純程式碼實現時鐘效果Swift
- 前端開發中的程式碼藝術(精要)前端
- 讀《編寫可讀程式碼的藝術》
- 編寫可讀性程式碼的藝術
- BZOJ4766: 文藝計算姬
- 關於接入微博登入的程式碼實現
- 新浪微博動態 RSA 分析圖文+登入
- CSS程式碼片段【圖文】CSS
- 程式碼不是文學作品
- 就是單純的討論一下程式碼
- 純div+css3程式碼繪製kitty貓CSSS3