Swift5 + MVVM + 文藝復興微博(純程式碼)

iOS面試簡歷專員發表於2020-05-10

背景: 現在越來越多的公司會嘗試用 Swift 做 native 的開發了,很多之前習慣用 Objective-C 的開發,有新專案啟動的時候,也會想說用 Swift 試試。如果從  2020年程式語言排行榜 上看的話,Swift的熱度也領先 Objective-C 10個身位了。而我們現在公司所做的專案,也是用 Swift 開發的,雖然說之前有些 OC 基礎,寫起 Swift 功能也是能實現,但是程式碼不是很優雅,不夠 'Swift Style'。 熟練度不夠的話,很多 Swift 的高階寫法還得去翻文件才知道什麼意思,所以就打算從0單排一個Swift的專案,而微博正好有  開放API , 所以這裡就選擇它了。

主頁介面

Swift5 + MVVM + 文藝復興微博(純程式碼)

表情介面

Swift5 + MVVM + 文藝復興微博(純程式碼)

專案架構

Swift5 + MVVM + 文藝復興微博(純程式碼)

專案功能

  • 原創微博功能
  • 轉發微博功能
  • 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

面試題資料或者相關學習資料都在群檔案中 進群即可下載!

Swift5 + MVVM + 文藝復興微博(純程式碼)


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971523/viewspace-2691082/,如需轉載,請註明出處,否則將追究法律責任。

相關文章