Kotlin項目實戰之手機影音---項目介紹、項目啟動


前言:

記得在2017年底就開始學習Kotlin這門現在已經幾乎在Android上快普及的語言了,看一下目前在博客園https://www.cnblogs.com/webor2006/上記錄專題的學習成果:

哇~~那不對於Kotlin這塊已經妥妥的掌握了,然並卵,事實上在真實工作中我還並未做過用Kotlin開發的安卓項目。。基本還是停留在傳統的Java語言上,那這不是自我感動么?所以接下來准備從0開始來打造一款屬於自己純Kotlin的安卓項目用來徹底鞏固之前Kotlin的語言的學習,只有這樣之前所學的Kotlin才不會是紙上談兵。

那。。問題來了,啥項目呢?這里當然得借助網上的資源來進行學習了,在2017年下半年曾經在博學谷買了一套還比較全面的Kotlin課程:

實在是慚愧,居然買了這么多年了,一個綜合項目都沒有看。。所以呢,接下來第一個Kotlin實戰操練項目就從上面取素材,不過當時Kotlin講解是基於比較老的1.1.3進行的,而目前瞅一下官網Kotlin發展的版本:

相差還是很大的,所以不可能還是基於以前老的版本來進行學習了,這里我打算用1.3.61這個版本來進行開發,其實核心語法還是Koltin1.1.x,當然如果遇到跟教程上不匹配的到語法時再自己想辦法來適配,這樣才是學以致用的體現。而且這里做項目的目的是為了鞏固之前花了大量時間來專研的Kotlin語法,所以說不是為了做而做,會盡量放慢節奏,對於實際開發中用到的語法都會用之前所學進行說明,只有將之前所學的這些零碎的Kotlin語法揉碎到項目中的點滴當中去才能真正的達到融會貫通,最終在簡歷上你才有資格增加一條“熟練使用kotlin進行Android的項目開發”技能,那下面就正式開啟人生第一個Kotlin安卓項目的制作啦~~

項目介紹:

這里的項目類型如標題也能知道,是一款播放音樂和視頻的軟件,在正式擼碼之前,先縱觀一下最終我們要實現的一個效果,這樣比較有學習動力:

整體效果:

 

列表上拉加載、下拉刷新:

 

本地音樂播放【含歌詞】:

貌似選歌時的展開菜單有點BUG,這里先忽略,因為是基於官方給的項目源碼來運行的,到時真正寫的時再來解決它。 

視頻播放【橫豎屏無縫切換】:

這里的mv視頻是找了一個在線的鏈接,由於官方當時講課時是音悅台mapi.yinyuetai.com官方提供的api,而可惜的是這家公司倒閉了。。

當然其域名也沒法訪問了,關於音樂這塊的版權這塊很嚴了,所以數據就弄一個固定的MP4來播了,對於技術的研究絲毫不受影響。

API說明:

從上面的效果圖可以看到,盡量是以比較真實的需求來進行實現的,只有這樣才能真正的磨練自己的Koltin的技能,整個APP涉及到在線音樂列表的播放,還有分頁相關的功能,而由於官網講課時的音悅台mapi.yinyuetai.com已經掛了,那只能另外尋找了,開始想着是自己搭一套,但是呢對於后端這塊不熟【關於后端的技能未來還是得好好拓展一下】,所以放棄了,最終經過努力搜尋終於發現有個博主分享的鏈接可用【網上這塊關於音樂開放api真的不是很多,可能是我找得有問題。。】,https://blog.csdn.net/alpgao/article/details/90079145,感謝博主的無私奉獻,另外將官方的項目進行了API的改造,最終就看到上面的效果了,所以整個項目是以真實的API來進行操練,正好可以學習一下如何用Kolin來用Okhttp來進行網絡的請求。

項目啟動:

工程創建:

接下來則進式擼碼環節,這次先做一些准備工作,之后再慢慢的往上磊代碼:

 

這里以純小白的方式,代碼中看到需要解釋的Kotlin的代碼都會結合之前整理的筆記進行回顧鞏固,圖上標紅是則是Kotlin的一個繼承寫法,關於繼承可以參考https://www.cnblogs.com/webor2006/p/11203903.html進行全面了解,其中AppCompatActivity是一個Java類:

關於Kotlin繼承這里要特別的注意一下:

接下來重寫的Kotlin的語法也復習一下:

關於這塊也有東東要回憶:

另外還有一個知識點需要看一下:

它代表啥意思來着?https://www.cnblogs.com/webor2006/p/7710446.html

其中可以看到我們使用的Kotlin的版本為:

然后更新一下主題,默認主題包含ActionBar,對於咱們這個項目不需要:

引入anko庫:

接下來引入一個常用的庫:Anko,地址:https://github.com/Kotlin/anko,先看一下它是干嘛的?

先不管這么多,廢棄肯定是可以繼續用的,先往下讀看一下它主要的作用:

 其中簡單看一下Commons庫,其實就是對於我們平常要用的代碼將其封裝得更好了,如下:

具體用則在之后的項目中用到再來學習,這里有個疑問,為啥這么好的庫要被廢棄呢?官方稍加解讀一下:

 

這里提到了JetPack,之前也對它進行了相應的學習,所以接下來則要找個時間好好的利用JetPack來做一個項目才行,徹底掌握這么好的庫。

而替代方案官網也列了:

 

費話了這么多,接下來加入到工程中,反正目前還是有用武之地的:

創建常用的包名:

這邊采用業界都非常流行的MVP框架來搭建,這里不考慮組件化的結構,這里的主要關注點是在使用Koltin上面而非架構上面,所以:

其中對於Kotlin通常會對類會定義擴展屬性和擴展方法,所以這里再建一個包專門用來存放它們:

好,關於准備工作先到這,下次繼續。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM