Flutter 仿微部落格戶端

Sky24n發表於2020-05-18

Flutter開發的微部落格戶端,同時支援Android和iOS。與官方微博x9.99%相似度體驗,離線模式,多語言支援,主題隨心換,超乎想象的流暢度,各種驚喜的細節等待你一一發現。

支援功能:

檢視微博動態、正文、評論
檢視熱門話題、微博、熱搜
支援話題、@、表情、全文
離線模式
國際化
主題色

專案動態

應用於2020.05.06提交至微博開發平臺,目前還在稽核中,暫無法申請微博授權!
Ps:作者也不清楚是否能通過稽核,何時通過稽核,但大家還是可以本地體驗相關功能。
目前運動和訊息板塊未開發,運動板塊暫時放的實時疫情,訊息板塊展示九宮格示例。

分享內容

1、九宮格圖片控制元件(原始碼整理中,稍等···)

類似微博動態,微信朋友圈,微信群組,釘釘群組,支援單張大圖預覽。

2、拖拽九宮格圖片控制元件(原始碼整理中,稍等···)

類似微博/微信釋出動態九宮格,支援按壓放大效果,拖拽排序,拖拽到指定位置刪除。

3、獲取圖片尺寸 ImageUtil

大圖功能必備工具。

Image image = Image(image: CachedNetworkImageProvider("Url"));
Image imageAsset = Image.asset("");
Image imageFile = Image.file(File("path"));
Image imageNetwork = Image.network("url");
Image imageMemory = Image.memory(null);

ImageUtil imageUtil = ImageUtil();
Rect rect = await imageUtil.getImageSize(image: image);  
ImageUtil().getImageSize(image: image).then((Rect rect) {
  print("rect: " + rect.toString();
});

複製程式碼

4、簡單加解密 EncryptUtil

異或對稱加解密 + Base64加解密

const String key = '11, 22, 33, 44, 55, 66';
String value = 'Sky24n';
String encode = EncryptUtil.xorBase64Encode(value, key); // WH1YHgMs
String decode = EncryptUtil.xorBase64Decode(encode, key); // Sky24n
複製程式碼

5、JsonUtil

簡單封裝json字串轉物件。

String objStr = "{\"name\":\"成都市\"}";
City hisCity = JsonUtil.getObj(objStr, (v) => City.fromJson(v));

String listStr = "[{\"name\":\"成都市\"}, {\"name\":\"北京市\"}]";
List<City> cityList = JsonUtil.getObjList(listStr, (v) => City.fromJson(v));
複製程式碼

6、時間格式化 DateUtil

格式化時間戳。

/// year -> yyyy/yy   month -> MM/M    day -> dd/d
/// hour -> HH/H      minute -> mm/m   second -> ss/s

DateUtil.formatDateMs(DateTime.now().millisecondsSinceEpoch, format: DataFormats.full); // 2019-07-09 16:51:14
DateUtil.formatDateStr("2019-07-09 16:51:14", format: "yyyy/M/d HH:mm:ss"); // 2019/7/9 16:51:14
DateUtil.formatDate(DateTime.now(), format: "yyyy/MM/dd HH:mm:ss");  // 2019/07/09 16:51:14
DateUtil.formatDateMs(ms, format: "yyyy年MM月dd日 HH時mm分ss秒");  // 2019年07月09日 16時51分14秒
複製程式碼

7、時間軸 TimelineUtil

類似微信朋友圈,微博動態時間線。

enum DayFormat {
  ///(less than 10s->just now)、x minutes、x hours、(Yesterday)、x days.
  ///(小於10s->剛剛)、x分鐘、x小時、(昨天)、x天.
  Simple,

  ///(less than 10s->just now)、x minutes、x hours、[This year:(Yesterday/a day ago)、(two days age)、MM-dd ]、[past years: yyyy-MM-dd]
  ///(小於10s->剛剛)、x分鐘、x小時、[今年: (昨天/1天前)、(2天前)、MM-dd],[往年: yyyy-MM-dd].
  Common,

  ///日期 + HH:mm
  ///(less than 10s->just now)、x minutes、x hours、[This year:(Yesterday HH:mm/a day ago)、(two days age)、MM-dd HH:mm]、[past years: yyyy-MM-dd HH:mm]
  ///小於10s->剛剛)、x分鐘、x小時、[今年: (昨天 HH:mm/1天前)、(2天前)、MM-dd HH:mm],[往年: yyyy-MM-dd HH:mm].
  Full,
}

TimelineUtil.format(timeMillis, locale: Localizations.localeOf(context).languageCode, dayFormat: DayFormat.Common);
複製程式碼

Screenshots

首頁 探索 我的
Flutter 仿微部落格戶端 Flutter 仿微部落格戶端 Flutter 仿微部落格戶端
微博釋出 微博正文 個人頁面
Flutter 仿微部落格戶端 Flutter 仿微部落格戶端 Flutter 仿微部落格戶端
授權 設定 圖片
Flutter 仿微部落格戶端 Flutter 仿微部落格戶端 Flutter 仿微部落格戶端

關於App

個人專案,暫未開源!
GitHub  : Fitness
Apk       :只有(arm64-v8a)
百度雲盤:提取碼 ttbn
其他方式:v0.0.1

關於作者

GitHub : Sky24n
簡書     : Sky24n
掘金     : Sky24n

意見與反饋

大家在使用中有任何問題,bug或者有需要改進但地方,可以提交issues反饋。
當然也可以通過微博私信反饋。

常見問題

1.微博授權過程中可能發生閃退!
   已知問題!重新點授權即可。(裝置:樂視1s)
2.如何退出微博登入?
   長按帳號欄,點選確定即可,同時微博授權會被回收。
3.部分頁面沒有返回鍵,如何返回上一個頁面?
   可以使用側滑(右滑)返回,也可以使用手機Back鍵返回。
4.探索頁面沒有回退按鈕,如何返回上一個頁面?
   雙擊探索Tab即可。

相關文章