從一個安卓小白到第一個APP

KorFoerster 8年前發布 | 43K 次閱讀 移動開發

一次裝X的討論:

      在一次團隊討論中,我提出了一個很好的想法,做一個眼科病患社區的APP,旨在加強醫生與患者之間的溝通和交流,這里的患者都是醫生曾經的病人。就是這么一個簡單的APP。怪就怪自己,B裝大了,講得太好了,團隊的成員個個都踴躍地提出自己想做的部分。

      ”我做后臺,數據要什么格式“

      ”我做IOS,我最近剛裝了黑蘋果“

      ”我做APP的設計圖吧,來點新鮮的“

      ”我做網頁前端吧,這是我的長項“

        臥槽,這幫同學,都把自己熟悉的,擅長的都搶了,剩下一個Android端了,然而剩我一個了。沒辦法,”自己裝的B,怎么都要說:‘我可以的’ “。沒學過Java(學的是C#),更不懂A呢Android。我都不知道我哪來的勇氣。故事就是這么開始的。

我真的可以。

      討論結束后,我自己一個人走在會宿舍的路上,我一直在想:”我真的可以嗎?這是零基礎,做不出來是不是很沒面子啊。“,相信很多人想入門Android開發的人都有過這樣的想法,認為自己沒基礎,入門會很困難。但是我的老師曾經跟我說:”做任何事情,光想是解決不了任何問題,動手才能去真正地去思考“。暴力一點講:”能動手盡量別BB“。我這個人就是這樣”雷厲風行“- -。當天晚上就下載了“某某博客Android快速入門視頻教程全集.ZIP”。我當時根本就沒想過要去看Java相關的書和視頻,因為我學的是C#,我覺得他們都是相似的。

用成就掩蓋無知,獲得前進的動力:

    看完了Android的四大組件之后,我感覺到了無聊,然后就去睡覺了。我喜歡這樣,遇到煩心的事情就去睡覺,畢竟四大組件的內容太多了,第一次接觸這些完全不熟悉的東西,一時接受不了,感覺自己什么都不會而且有不知道自己該怎么去動手,看著視頻中的老師,敲代碼的架勢。總是在YY,自己什么時候也像他們一樣。這屬于典型的“編程挫敗感”。

     面對這樣的挫敗感,睡覺只是讓自己冷靜下來,真正戰勝“編程挫敗”,那當然是用成就感去戰勝它。

     1.用一個精美的布局,贏回自己的自信。Android是MVC的架構,所以做界面并不需要寫太多的邏輯代碼就能裝出一個好B。我當時模仿的是QQ空間的布局。一定要真機調試(截屏)。邊做邊發朋友圈,對!就是要這么裝。漸漸的你就會覺得有動力了。

     2.獲得是最有成就感的。如果你覺得僅僅做一層什么都沒有的界面,滿足不了你(臥槽,你想怎樣),那做個能動的,然后發朋友圈,這個B必須裝啊。我當時做的是一個簡單的天氣預報。獲取數據+界面顯示。界面當然沒問題,朋友圈的贊不是自己點的- -。然而是我太天真,在做數據獲取的時候,我居然不會寫代碼,是一行都不會寫,Java如何Get都不會寫。萬惡的HttpUrlConnect。我又再次陷入了這個“編程挫敗”。

     3.用別人的成就來滿足自己。沒辦法,自己沒學過Java,也不懂Android,寫代碼必然懵逼。其實一開始不會寫,沒關系的。于是我又想起了一句經典:“熟讀唐詩三百首,不會作詩也會吟”。(臥槽,我居然那么有文化),暴力一點講:“兄弟可不可以借你的作業來抄一下”。我呸!是參考一下。編程就是這樣子,你要學習別人的代碼才能生產自己的。有相當長的一段時間我都是這樣子的。機智的我,在網上一搜:“Android http請求獲取數據”。呵呵,Ctrl+C結合Ctrl+V,這樣就寫了200行代碼,真爽。

    4.享受孤獨的調試過程,這才是真正的成就。看著這200行代碼,然后寫了一條輸出語句,run!心里暗爽,成功就去吃宵夜!“你的XXXdemo運行已停止”,閃退!直接懵逼了。看著那些紅色的Logcat。我又陷入了“編程挫敗”,老規矩,睡覺。但是我睡不著,我似乎感覺到了,我已經離入門不遠了,必須學會調試。對于廣大的新手來說,看到Logcat懵逼的大有人在。我用一句話總結這個技巧:“找到你認識的那幾行,就是出錯的地方”。簡單不!

    終于,在這1,2,3,4步的反復循環中,我做好了第一個自認為很好的天氣預報,朋友圈都被我炸爆了。此時,我收到了同學的警告:“能不能有點新鮮的,每天都是這個”。友誼的小船。。這種評論你能忍嗎,然后我給他回了一個“哦”。顯然,不能有點成就就發朋友圈了,來點高端的。

用第三方SDK,鑄就裝B的城墻

    一次偶然的機會,我看到了我舍友手機的一個天氣預報APP,然后我就打開了自己做的APP。臥槽我的太Low了,功能也簡單,界面也丑。頓時明白了朋友圈的唾棄。沒辦法,自己又不會做。那怎么辦?別忘記了,上面說過的"用別人的成就來滿足自己"。機智如我,然后我就找到了百度地圖的SDK,分享的SDK。你懂的,根據當前的定位獲取天氣信息。至于為什么要做分享,不要問我為什么,一切為了裝B。方便發朋友圈啊。“大神,說一下集成的套路吧。“,朕!準了。

      1.到官網注冊開發者,很簡單,QQ登陸就好了。

      2.創建應用獲取AppId,寫代碼的時候要用的。

      3.下載官方Demo,最好原封不動地拿過來。

只要3步高大上的功能就實現了,暗爽。然后一條朋友圈底部還有個"來自XXX應用",瞬間覺得自己要上天了。

用開源類庫,拯救爛代碼

      像我這么帥的人,必須給團隊的小伙伴曬一下啊。然后我們開會了,這必須是一個裝B的好時刻。在交流的過程中。

      IOS的同學問我:“你們Android是用什么庫的,我們IOS的庫很強大的。我在GitHub看到了很多,但是不會用”

      瞬間懵逼啊,什么庫,什么GItHub,我都沒聽過。然后我是這么回答他的:“一開始初學,我想自己寫,這樣提高會快一點。”

      IOS的同學:”哦“。(程序猿~~)

      會議結束后,我問了度娘,GitHub是誰(不知道的可以去問問),也問了度娘,Android有什么庫。我頓時覺得自己要上天了,我看到了另外一個不同的世界,開源社區!這里是一群前輩,一大波優秀代碼,一堆類庫。我好像看到了什么”20行代碼實現Http get操作“。200和20的區別,我沒忍住,直接就點進去了,折騰了一晚上。呵呵,我成功了。從這一刻起,我接受了一種新的思維——開源。

      相信這對于很多新手來說都是個疑惑,自己寫還是用別人呢?我的看法是,如何你想提高,那就用別人的。我認為:“學習是從模仿開始的“。開源類庫是必須會用的,它將會減少很多你寫的爛代碼。一下是一些常用而且簡單暴力的類庫,希望你喜歡。

1.slidemenu--->側滑

2.android async http ---->網絡加載庫

3.Universal_Image_Loader---->圖片加載框架

4.viewpager indicator---->頁面切換指示器

5.SwipeRefreshLayout--->下拉刷新控件

6.fastjson---->json解析庫

用開源項目,讓開發更簡單

     3個月后,第一個天氣預報的Demo做好了,功能還是很簡單,因為用了第三方類庫,代碼也很少,看Apk的大小,根本拿不出手啊,于是我開始思考如何才能做功能更多,界面更炫的APP。Github,我自從認識了它,都是找他拿代碼的。我找來了一堆的完整項目APP的源代碼。開始從這些項目中拿更多的代碼。當然了拿之前的工作也是困難的,因為導入項目也會遇到很多的問題。如何解決導入的問題,在后續的文章會說。下面說一下如何在更多的源項目中獲取你想要的東西。 

      查:找一個大型的項目,例如微信的仿品(凡信),導入你的eclipes(一定要用這個)。然后運行。再看圖片。

      刪:把一個個界面的圖片刪掉,看哪里打叉。這樣就找到了位置,順藤摸瓜,了解整個項目。       改:在原來的項目改代碼,看效果。

      移:把這個項目某一個模塊移到你的項目中去,并讓它正常運行。

      增:在這個新建項目上加上你的元素吧。

      這是奴才為皇上準備的菜。

     1.Android心情驛站源碼(仿QQ空間)

     2.Android凡信源碼(仿微信)

    3.Android仿今日頭條源碼

    4.https://github.com/android-cn/android-open-project-analysis

用這些拿來的菜,做滿漢全席

     很久沒發朋友圈了,對啊2個月過去了,因為我已經覺得這些微不足道的成就已經不能讓我獲得成就感了,逼格上來了。我開始把一些開源項目的代碼粘到了自己的項目,但是結果只有一個,亂,代碼沒有模塊化,重復代碼多,關鍵是沒注釋。那么如何去規整這些拿來的代碼,讓你的項目更加有活力呢?

      1.命名規范,這個是最關鍵的,整個項目必須有統一的命名規則。

      2.多用文件夾區分不同功能模塊,也要有命名規范

      3.合理運用設計模式,Android的設計模式是MVC,但是有一種趨勢是MVP,合理運行設計模式會讓項目代碼更加舒服,更加有規律。這是更高級的了。

上線前的優化

     ”做了這么久的APP,過幾天就上線了“,我的朋友圈- -。這種時刻必須來一發啊。App上線前其實是有很多工作要做的,下面列舉一些必須做的。

       1.應用內存優化,具體怎么做,后續文章會更。

       2.Apk瘦身,對于我們引入的圖片資源,可以適當壓縮,甚至去掉,對于類庫,可以找更加輕量的替代。

       3.Android多屏適配,這個東西沒辦法必須面對,不過有很多解決方案可以在網上找到。

       4.Android兼容性測試,可以用第三方的測試平臺,例如Testin云測試。

       5.代碼混淆(我自己都沒做,不能告訴你)

上線完成后的感受

     在一個軟件開發不怎么活躍的學校(醫學院),我始終感到無比的孤獨,因為什么事情都是自己獨立思考,獨立解決。在這個過程是痛苦的,煎熬的。怎么樣才能讓自己在這個過程中感到快樂呢?分享,是最好的方法。說說你最近解決的問題。如果找不到人,那就寫在紙上。面對面是最好的,因為你可以感到無比的成就感。我慶幸的是大學遇到幾個好朋友一起交流。

      開發者總是追求完美的,開發者總是要經歷過千萬次人格分裂去思考用戶那些蠢得不行的行為。甚至每天都在感慨,大兄弟你怎么這么笨。哎!其實這是非常正常的,開發者和用戶只能相互協調,開發者永遠都是向用戶妥協的一方。當你決定你就是一名開發者的時候,請記住,需求分析你要比項目經理還要清楚,否則到時候測試的時候,你可能會想砍死幫你測試的人。

      當你想成為一名開發者的時候,請記住,程序并不是我們要開發的,我們要開發的是產品。產品無程序最大的區別在于產品面向的是宇宙最笨的人(客戶),產品不是你一個人說了算。因此要成為開發者必須學會交流和溝通。不然閉門造車永遠都是做不出讓人滿意的產品。

      當你覺得你似乎具有超強的開發能力的時候,興致滿滿地想去做開發,找各種項目去做,去提高自己的開發能力。但是你覺得你開發能力強的時候,請去看看外面的世界,你實現的功能,人家是如何去實現的,人家的性能怎樣。人家的架構怎樣,人家的設計怎樣。其實當你覺得你開發能力強的時候,只能說明你入門了,而此時你要去做的是提高,不是去做你熟悉的東西,而是一些非常酷炫的新鮮玩意,新技術,你從來沒用到過的東西。IT行業就是這樣的,開發者要去不斷學習才能不被淘汰。對比其實也是一種很好的學習方法。

這是一個裝X的故事

       這是我的裝X故事,希望能給大家啟發,我沒有看太多的書,這都是我自己的感悟,開發不是簡簡單單地看幾本高級編程就能做好的,它是需要思考,總結,交流,溝通才能去做的。我懷著一顆赤誠的心去追求著我的目標,我享受著孤獨的喜悅。

這是我的首發啊,處女作啊,要不要鼓勵一下的(*^__^*) 嘻嘻……

 

來源:http://www.jianshu.com/p/cb16ceb563db
 

 本文由用戶 KorFoerster 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!