前言
剛開始時(shí)我們都是用 Java 開發(fā) Android,對(duì)于寫了好幾年 這 6 個(gè)小項(xiàng)目從上下到依次是天氣,小說,美圖,五筆查詢,花瓣和2048 AI版。
6 個(gè)小項(xiàng)目 WeatherWeather 是學(xué)習(xí) Android 最經(jīng)典的 Android 學(xué)習(xí)入門書《第一行代碼》的最終實(shí)戰(zhàn),這個(gè)例子覆蓋的知識(shí)點(diǎn)非常全面,有網(wǎng)絡(luò)請(qǐng)求,Json 轉(zhuǎn)換成 Model,抽屜布局, Novel 小說閱讀我有很多同事都是小說狂人,但是貌似很多小說 APP 都有廣告(我不看小說不清楚),于是讓幫忙寫個(gè)小說 APP,他用都用 iPhone,于是我寫了個(gè) iOS 版本的小說閱讀 APP iOS小說閱讀器,然后我再想試試寫一個(gè)Android 版本的,于是就有了這個(gè)小項(xiàng)目,
美圖無意中發(fā)現(xiàn)個(gè)網(wǎng)站,里面的圖片質(zhì)量還算不錯(cuò),用來當(dāng)壁紙比較合適。還可以用分辨率篩選。于是下載了他們官方的 APP,但是官方 APP 有廣告,而且好像只能看手機(jī)壁紙,不能看電腦的。這兩點(diǎn)讓我非常不爽。于是我就想自己寫一個(gè) APP,無廣告,可以隨意收藏和下載高清壁紙。感覺很不錯(cuò) 開發(fā)的技術(shù)難點(diǎn)并不多,使用和小說閱讀器一樣的技術(shù)。圖片顯示用了 五筆查詢筆者是一個(gè)五筆使用者,雖然用了很久五筆了,但還是有很多字不會(huì)打,所以我一般在我手機(jī)上安裝了五筆反查這個(gè)APP,本來作為簡(jiǎn)單的查詢APP,應(yīng)該十分簡(jiǎn)潔的,但是里面的廣告非常讓我不爽,而且非常容易點(diǎn)到。體驗(yàn)也做得比較次。比如歷史查詢功能就做得很一般。所以我干脆自己寫一個(gè)。 這個(gè)小項(xiàng)目沒有特別的技術(shù)難點(diǎn),唯一的難點(diǎn)度不在于 APP,而是查詢網(wǎng)站令人蛋疼的編碼,全部采用 花瓣花瓣 APP 也算了個(gè)中型的 APP 了,我是按照 Github 的花瓣 開源項(xiàng)目來寫的,主是要學(xué)習(xí)里面的架構(gòu)寫法。實(shí)現(xiàn)了收集,登錄,喜歡,搜索等功能,原作者說全部采用目前最新的和最熱門技術(shù)。所以還是有一定有學(xué)習(xí)價(jià)值的。你可以把我寫的這個(gè)看成是Kotlin的實(shí)現(xiàn)版本。但是里面關(guān)于Fragment 的實(shí)現(xiàn)機(jī)制不一樣,我用了 技術(shù)方面用了 2048 AI版2048 是一款具有魔力的游戲,很容易上癮。一玩就停不下來。但是我水平很菜,從來沒有合出來 2048。既然我合不出來,就讓 AI 來幫忙吧。于是我參考了 2048 的 AI 實(shí)現(xiàn)資料,目前網(wǎng)絡(luò)上最主流的是算法是MixMax 算法,請(qǐng)參考文章 2048 AI 程序算法分析,里面詳細(xì)地分析了這個(gè)算法,并且給出了js的實(shí)現(xiàn)。于是我也想在APP上實(shí)現(xiàn)這個(gè)算法,首先我要找到 2048 在安卓上在實(shí)現(xiàn)。我找到了這個(gè) Android版2048游戲視頻教程源碼,這個(gè)APP寫得非常好,還有作弊和撤銷功能。我就用這個(gè)APP的源碼,并把它用 Kotlin 重新實(shí)現(xiàn)了一遍。然后再添加AI功能。AI的源代碼我參考了 2048 AI 的實(shí)現(xiàn)。發(fā)現(xiàn)里面的 2048 實(shí)現(xiàn)機(jī)制和安卓機(jī)制很像,在這個(gè)基礎(chǔ)上加上AI代碼應(yīng)該不難。事實(shí)上確實(shí)如此,很快我就把AI代碼移植過去并成功運(yùn)行。經(jīng)過簡(jiǎn)單的調(diào)試后再測(cè)試了很多次,合出2048豪無壓力,只是.....我不明白為何一但AI合出2048后突然就智障了,后面的每一步都像自殺一樣,豪無章法。很快就掛了。目前工作還比較忙,有時(shí)間我再看看為何會(huì)這樣。 技術(shù)方面最主要就是2048的AI算法以及在Android上使用Kotlin的實(shí)現(xiàn)2048。這又是比較大的一塊,我將專門寫一篇文章來說明這個(gè)AI算法和實(shí)現(xiàn)代碼。 到目前為止,我已經(jīng)開發(fā)過iOS項(xiàng)目,Android項(xiàng)目,小型 Windows App項(xiàng)目 參考 Windows APP時(shí)鐘 和 Web 項(xiàng)目(參考上一篇文章的Vue和Node實(shí)現(xiàn)的完整Blog項(xiàng)目),微信公眾號(hào)和小程序也有了解過,后端的話用過ASP.Net和Node.js。對(duì)目前最主流和開發(fā)平臺(tái)的開發(fā)技術(shù)都有一定的了解。如果讀者想進(jìn)入這個(gè)行業(yè)但又不知道選擇哪個(gè)平臺(tái)來入門,又或者讀者已經(jīng)熟悉了一個(gè)平臺(tái),想再選擇學(xué)習(xí)另一個(gè)平臺(tái)的技術(shù),但是不知道選哪個(gè)好,那么可以聯(lián)系我。我會(huì)幫助讀者結(jié)合自己的興趣和已有知識(shí)再加上目前各平臺(tái)的行情選擇一個(gè)合適的平臺(tái)技術(shù)學(xué)下去。 最后再給出地址學(xué)習(xí)Android開發(fā)的小項(xiàng)目,麻煩Star啦. https://github.com/DuckDeck/AndroidDemo 與之相關(guān) 日 更 精 彩 微信號(hào):code-xiaosheng 公眾號(hào) 「code小生」 |
|