教你們制作手機(jī)軟件 如何開發(fā)一款手機(jī)軟件?
如何開發(fā)一款手機(jī)軟件?從零開始,親自教學(xué)帶你基于一個(gè)「執(zhí)著睡前的APP」。睡之前如果能有一個(gè)APP,能讓我們畫一畫這一天的見聞的或心得,同樣又能看半天段子、瞄會(huì)兒超好看的妹子,放松下來幫一下忙一身的疲
如何開發(fā)一款手機(jī)軟件?
從零開始,親自教學(xué)帶你基于一個(gè)「執(zhí)著睡前的APP」。睡之前如果能有一個(gè)APP,能讓我們畫一畫這一天的見聞的或心得,同樣又能看半天段子、瞄會(huì)兒超好看的妹子,放松下來幫一下忙一身的疲憊那該多好,這確實(shí)是我結(jié)束這個(gè)APP的原因。APP的全部代碼我早就多多分享到Github上了,不需要的再點(diǎn)擊這里,假如比較喜歡的話,麻煩您給個(gè)贊,謝謝啊啦。
在正在寫正文之前,先來一波效果的展示,看下五天過后我們能實(shí)現(xiàn)怎樣的效果
本次的教程分為5天,內(nèi)容三個(gè)為:
Day one,準(zhǔn)備著
功能需求
可行性分析
Daytwo,UI及二級類的封裝
界面的設(shè)計(jì)及基于
公共考試類的實(shí)現(xiàn)
Daythree,日記模塊
日記的展示
懸浮在空中菜單的實(shí)現(xiàn)
日記增刪改的實(shí)現(xiàn)
Dayfour,妹子模塊
圖片的獲取
圖片的展示
詳情頁面的展示
Dayfive,段子模塊
段子數(shù)據(jù)的獲取
段子的顯示
Day one
有道是,好的開始是成功的一半,在結(jié)束敲代碼之前,先讓我們來做一些必要的準(zhǔn)備,這樣的才能起到事半功倍的效果嘛!
一、功能需求
呢既然再做一個(gè)APP,那我們是需要肯定得把APP的功能都列進(jìn)去,有了方向才能更好的努力,而且我想做的是一個(gè)專業(yè)點(diǎn)給睡覺時(shí)候前是用APP,因此我都覺得應(yīng)該是有以下的這些功能
1、日記的增刪改
2、會(huì)顯示一些好玩的段子
3、瀑布流展示更多比較漂亮的妹子
4、保存到日記的內(nèi)容包括緩存妹子圖片
確實(shí)說需求太少,但是卻要句子修辭到網(wǎng)絡(luò)、數(shù)據(jù)存儲(chǔ)、圖片緩存、UI 設(shè)計(jì)等內(nèi)容,我相信整個(gè)APP能完成過去,必定會(huì)能短時(shí)間內(nèi)我們的Android基礎(chǔ)。
二、可行性分析
我們這個(gè)APP要注意有三個(gè)模塊,日記模塊比較多是發(fā)揮到了數(shù)據(jù)庫的知識(shí),難度不是很大。但,段子模塊和妹子模塊的數(shù)據(jù)要怎么來,這便是要我們好好決定的了。要不是現(xiàn)在是個(gè)開源的時(shí)代,很多的數(shù)據(jù),網(wǎng)上早就閉源出了。
我們先來看再看看數(shù)據(jù)的內(nèi)容
上面那兩段代碼三個(gè)是段子和妹子模塊的json類型的數(shù)據(jù),我早將一些沒用的字段去掉了。只剩的也是我們是想的數(shù)據(jù)??梢钥吹蕉巫訑?shù)據(jù)中,有著段子的內(nèi)容,以及首頁者的頭像和名字。而妹子數(shù)據(jù)中有著圖片的url、id、包括圖片的類型。我相信有了這么說豐富地的數(shù)據(jù),我們要想能完成這個(gè)APP又是有底氣了。
Daytwo
一、界面的設(shè)計(jì)及利用
要是我們打算能完成一個(gè)好看的APP,這樣比較好看的界面浮山宗必不可缺的,這里我恐怖推薦APP界面的設(shè)計(jì)需要不要遵從Google提議的Material Design,在這個(gè)推薦一下一個(gè)也能讓我們實(shí)現(xiàn)方法Material Design變得異常更加很簡單網(wǎng)站material designpalette,我這個(gè)APP的配色是用這個(gè)網(wǎng)站成功的,貼幾張圖片,讓你感受到幫一下忙它的強(qiáng)橫無比。
的力量這個(gè)網(wǎng)站便能讓我們成功APP的配色這些圖標(biāo)的收集,為下一步怎么辦功能的實(shí)現(xiàn),先打那樣最好基礎(chǔ),況且界面的設(shè)計(jì)就仁者見仁,智者見智仁者見仁,智者見智了,篇幅有限,我就不多講了。
APP的終于設(shè)計(jì)效果如下:
二、二級類的實(shí)現(xiàn)
而且這個(gè)項(xiàng)目有三個(gè)模塊,有一些東西其實(shí)是也可以通用的,要是我們先把這些能通用的東西,裸芯片過來,供給所有的模塊動(dòng)態(tài)創(chuàng)建的話,不會(huì)相信會(huì)極大能提高我們的開發(fā)效率。
1、網(wǎng)絡(luò)工具類的封裝
這個(gè)APP中,很多地方都要應(yīng)用網(wǎng)絡(luò)請求,但也就必要將網(wǎng)絡(luò)各位整體封裝下來,因?yàn)檫@個(gè)APP的規(guī)模比較小,但我你選了Volley這個(gè)網(wǎng)絡(luò)框架才是我們網(wǎng)絡(luò)跪請庫,把網(wǎng)絡(luò)各位裸芯片站了起來,哪個(gè)地方必須,動(dòng)態(tài)創(chuàng)建一下就行了。這對網(wǎng)絡(luò)請求,我總覺得每個(gè)程序員都該懂點(diǎn)HTTP,這里請附上一篇或是HTTP的文章程序員都該懂點(diǎn)HTTP。
先讓我們來寫個(gè)將網(wǎng)絡(luò)請求通過回調(diào)的接口
然后將網(wǎng)絡(luò)幫忙整體封裝過來
2、Json解析的幫助類
畢竟我們這個(gè)APP中,查看到的數(shù)據(jù)是Json格式的,因此也就有必要將無關(guān)的Json解析封裝成一個(gè)工具類,傳出一個(gè)String類型的數(shù)據(jù),然后我得到數(shù)據(jù)實(shí)體類的List。
3、HomeActivity(主頁面)的封裝
主頁面我得用是TabLayout ViewPager Fragment,都是現(xiàn)在主流APP主頁面的顯示。主界面底部是我們?nèi)齻€(gè)模塊的圖標(biāo)和名稱,按照左右滑動(dòng)能實(shí)現(xiàn)方法界面的跳轉(zhuǎn)。
底部圖標(biāo)的實(shí)體類CommonTabBean
ViewPagerFragment通用的Adapter
Daythree
關(guān)於日記模塊的實(shí)現(xiàn),當(dāng)然我是并行化了以前寫過的一個(gè)日記APP,詳細(xì)的思路和做法,是可以相關(guān)參考我的這篇文章Android一款極為簡約、優(yōu)雅的日記APP
Dayfour
一、圖片的獲取
1、依據(jù)什么直接返回的數(shù)據(jù)來編寫圖片的實(shí)體類
2、圖片的展示
可以清晰的看到我是用無限下拉的來實(shí)現(xiàn)方法圖片的展示,效果還確實(shí)不錯(cuò),但當(dāng)然基于出聲確實(shí)是很簡單點(diǎn)的
先寫個(gè)圖片的布局以及RecyclerView的Item
可以看見我在ImageView的外面加了一個(gè)CardView,這個(gè)一種卡片式布局,能讓圖片看起來就像一張卡片差不多,非常的高貴、美觀。
而后編譯程序Adapter,將數(shù)據(jù)和界面進(jìn)行沒綁定
結(jié)果在Fragment接受數(shù)據(jù)的獲取,在內(nèi)布局的初始化就行了
3、詳情頁面的展示
木木地的,整個(gè)模塊不能沒顯示妹子的圖片怎摸行呢?。?!怎摸著也得能打開系統(tǒng)大圖,據(jù)手勢縮放,和打開瀏覽器下一張圖片才行嘛,說干就干。
是因?yàn)閳D片不需要有依據(jù)什么手勢來縮放的功能,因此我便想到了PhotoView,這是網(wǎng)上一個(gè)大神寫的,繼承自ImageView的一個(gè)自定義控件。圖片程序加載我用的是
Glide,假如沒清楚過這個(gè)庫的,濃烈?guī)臀彝扑],一行代碼就能一切都搞定圖片運(yùn)行程序,你可以確定不研究什么看看。
Dayfive
一、段子數(shù)據(jù)的獲取
段子數(shù)據(jù)的獲取不過跟妹子模塊的方法基本都一樣
先匯編語言實(shí)體類
寫好實(shí)體類之后,在用我們前已經(jīng)封裝好的網(wǎng)絡(luò)請求工具在內(nèi)解析工具,便能將前往的數(shù)據(jù),解三角形成一個(gè)乾坤二卦段子實(shí)體類的List。
二、段子的顯示
老規(guī)矩,先寫個(gè)RecyclerView的Item
然后匯編語言將數(shù)據(jù)和界面并且?guī)ぬ?hào)綁定的Adapter
到最后段子頁面中接受數(shù)據(jù)和資源以及界面的初始化
用c語言可以開發(fā)app嗎?
可以的,c語言其實(shí)應(yīng)該是變更土地性質(zhì)軟件的程序。
C語言更適合做操作系統(tǒng)相關(guān)的開發(fā),諸如驅(qū)動(dòng)、嵌入式之類的。C語言開發(fā)手機(jī)App太難辦了,隱隱也很少有人這件事。
若有若無特點(diǎn)
C語言是另一個(gè)有半結(jié)構(gòu)化程序設(shè)計(jì)、具備變量作用域(variablescope)和遞歸過程功能的過程式語言。
C語言傳信參數(shù)均是以值傳達(dá)消息(passbyvalue),至于也可以傳信指針(apointerclearedbgvalue)。
相同的變量類型也可以用結(jié)構(gòu)體(struct)組合在一起。
唯有32個(gè)保留字(reservedkeywords),使變量、函數(shù)命名原則有更多彈性。
部份的變量類型可以轉(zhuǎn)換,.例如整型和字符型變量。
按照指針(pointer),C語言也可以容易的對存儲(chǔ)器進(jìn)行最低級控制。
預(yù)代碼編譯一次性處理(preprocessor)讓C語言的編譯器更具有彈性