Flutter——仿網易雲音樂App(基礎版)

首頁

歌曲播放和卡片切換

如正版同樣,歌曲播放進度在播放/暫停 按鈕的邊框顯示(頁面下方,由黑變紅)git

沒登陸的話,通常只能聽12秒
目前只作了 模塊(‘超帶感的說唱精選’)的點播功能,
其餘地方能夠直接套用(一、2行代碼便可),控制檯已經寫好
複製代碼

卡片(音樂日曆)切換動畫也是仿照正版來github

我的中心和抽屜(未登陸)

雲村

視頻(未登陸)

視頻模塊須要登陸才能看到設計模式

波紋動畫依然是仿照正版的
複製代碼

登陸

視頻(已登陸)

登陸先後頁面變化

咱們看一下,個人、抽屜頁面的先後差別api

再退出一下

‘切換帳號’有退出的功能
複製代碼

搜索頁面

所用接口

接口爲大佬們開源的網易雲API,在此感謝緩存

開源網易雲api服務器

我花了90多買了個雲服務把接口clone下來後,開發使用。markdown

各位clone我項目時,能夠用個人接口也能夠本身搭一個
一年90多的雲服務器,大家用時輕點兒...
複製代碼

Tip: 接口返回的數據不太穩定,有的時候還會變形,對於移動端開發來講,形成了一些麻煩,各位開發時要注意。架構

另外,若是你運行這個demo發現出錯了,那大機率時接口廢了或者數據變形了,看日誌吧
複製代碼

開發框架 Bedrock

此項目基於Bedrock 快速開發框架開發框架

MVVM + Provider 設計模式
複製代碼

Bedrock 快速開發框架ide

初衷

開發這個demo並非爲了對flutter進行練習,而是由於前些日子對flutter路由模塊的封裝,並應用於Bedrock框架。

在重構了原項目的demo以及添加了針對性演示demo後,以爲有必要再在一個複雜一些的項目裏測試一下,所以便有了這個:

仿網易雲音樂(基礎版)
複製代碼

也算是給個人框架增長了一個繪聲繪色的大Demo吧 :)。

與此同時,既然是Demo,在項目開發時儘可能作到點到爲止,避免開發者閱讀過多的冗餘的頁面代碼,而沒法瞭解框架的工做原理。

因爲沒有設計圖,頁面全憑感受來,加之接口的不穩定(類型/結果),開發起來確實費勁...
因此叫基礎版
複製代碼

路由封裝的簡介

這次路由封裝,不但減小了開發時的代碼書寫,而且對外暴露出state,能夠作到任何粒度的刷新。

但這並不意味着能夠拋棄provider
複製代碼

在兼容靜態路由的優點同時,對於靜態路由的 map 傳值,取而代之的是構造函數傳值,這樣避免了key的輸錯。

更多介紹能夠看下面的文章:

關於此次flutter路由封裝的架構介紹

Demo功能概覽

你們能夠clone下項目後,挑揀未實現的功能來實現以熟悉框架
複製代碼

登陸(註冊未實現,沒有空號了)

個人頁面:登陸/非登陸狀態(不含子級頁面)

發現頁面: 點歌 (不含子級頁面)

雲村頁面:廣場&關注子頁(不含其它子級頁面)

視頻頁面:登陸/非登陸狀態,各tab子頁面,視頻播放(不含其它子級頁面)

個人抽屜:登陸/非登陸狀態(不含子級頁面)

搜索頁面:支持搜索歷史本地化、清理緩存,搜索及搜索建議,(不含搜索結果和其它子級頁面)

底部音樂bar:後臺音樂功能模塊,支持單點播放,(未實現底部控制檯點擊後彈出的播放歷史記錄和歌單,這個可能後期要作,蠻有意思的)

項目地址

仿網易雲音樂

感謝

再次感謝開源網易雲音樂api的大佬們。

同時歡迎各位提issue,謝謝 :)

Demo代碼可能有些隨意和bug,還請見諒。
複製代碼
相關文章
相關標籤/搜索