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