網路城邦
上一篇 回創作列表 下一篇  字體:
Android軟體發展的硬道理
2016/09/18 16:13:47瀏覽617|回應1|推薦30

Android軟體發展的硬道理

前言:在網路上看到一篇軟體專業的英文文章,本來在BLOG上我是不願浪費大家的時間來谷歌轉譯一篇技術性文章,但是談到軟體開發或程式發展,還是如同人生的各個階段,如果有人指引,必然不易走錯路,也能事半功倍,所以整理給可能有需要的人,就不用放在自己的硬碟裡,也不知自己何時還會認真再讀一回。原文網址: https://blog.aritraroy.in/what-my-2-years-of-android-development-have-taught-me-the-hard-way-52b495ba5c51#.r9jon8f8l

我還記得那天回到2014年,當我決定開始Android開發,那就是我把我一生中最好的決定之一。現在已經有兩年半,我不得不學習和非學習很多東西在Android中的機會。

最初,當我開始,我沒有一個導師或誰可以指導我做的事情以正確的方式。我做了錯誤了很多,也浪費了很多時間做,後來糾正它們。

後來,經過多年的一個半月,我得到了一些真正有才華和有經驗的Android開發,誰指導我,幫助我塑造的東西在一個更好的方式來工作的機會。這兩個階段的幫我學到了地獄很多東西,在艱辛的道路。我學會了什麼TO DO,最重要的是什麼不該做

它已經很長一段時間,我一直在努力幫助其他開發人員對我的方式可能直接和間接的影響。這裡是我的計算器Github配置文件。

在本文中,我將分享一些我這些年收集的寶石。它可以幫助別人上手更快,不會重複,我曾經做過的錯誤。

免責聲明我將主要集中於Android和編程和產品開發這篇文章中的一些概念,所以如果你不熟悉任何這些,你可能不希望進一步閱讀的。其他的,只是潛水。  :-)

1.不要另起爐灶

起初,我沒有使用開源庫的壞主意。不管我需要的,我只是想讓它自己。它是嚴重一個可怕的想法。

如果你有一個問題,同時開發應用程序,並且如果該問題已被別人之前得到解決,並在一個很好的方式,為什麼不利用呢?您可以為自己節省大量的時間。

更專注於您的應用程序的核心業務邏輯。如果你想在你的應用程序網絡調用,你並不需要做一個改造自己。

獎勵Android的阿森納保持了幾乎所有做過的Android庫的數據庫。去看看。

2.選擇明智地庫

有很多很多的開源庫在Github上可供您免費使用。但是不要高興得太早,並開始使用庫盲目

檢查數星星特定圖書館,多多益善。檢查該庫的作者也創造了一些其他流行的庫也是如此。檢查問題(開放式和封閉式),它可以給你的圖書館如何強大和穩定的在生產一個更好的主意。

如果你能負擔得起的時候,你應該潛入該庫的代碼,如果它真的值得檢查自己。

你只是想以確保您要使用的代碼是可靠的,無缺陷和高品質。

專業提示: 試試直接使用命令行託管任何庫DRYRUN

3.坐,拿一杯咖啡和閱讀更多的代碼

我們花了我們大部分的時間閱讀別人的代碼比編寫自己。如果你不這樣做,從今天開始。

無論你的代碼能夠在今天寫的是唯一的,因為你已經閱讀並學到了一些東西,某處,某一天。這只是一個你已經知道的反思。您只能成長,通過閱讀和其他的工作中不斷學習提高自己。

關於Android的偉大的事情是,它是一個完全開源的平台。深入到代碼,並檢查它們是如何實現的框架。有成千上萬的Github的開源庫。只需選擇一個庫,看看開發商已經實現了。

獎勵這裡是一些最好庫的策劃列表,這裡幾乎全是開源的可用Android應用程序的列表。不用謝 -

4.在上帝的份上,保持適當的編碼標準

如果你比較寫編碼,然後編碼標準是喜歡你的筆跡。

當你將更多閱讀別人的代碼,其他的人也會被閱讀了大量的代碼,而你不想嚇死人,你呢?如果你是在一個組織中工作,並與其他開發商合作巨資,做約需它特殊照顧

寫短,乾淨,可讀的代碼,你和人們閱讀你的代碼將徹底享受。您的代碼應該讀起來像一個故事

代碼是詩。

如果你寫一段代碼和您的同事不和你聊了幾天就不要抱怨。

獎勵首先,您必須通過徹底去這個這個

5.您需要ProGuard的,是的,你需要它!

永遠,永遠讓你釋放Play商店上的應用,而無需使用ProGuard的錯誤。ProGuard的不僅minifies你的代碼,但它混淆代碼使它更難反向工程師了解,複製和操縱它。

它完全免費的,捆綁了Android SDK,以及也絕對沒有理由讓你不使用它

我見過幾個開發者發布了他們在市場上的應用程序,而不ProGuard的。它不應該超過幾個小時一個不那麼熟練的黑客操縱,而不Proguard的發布應用程序。

專業提示不過F你想拔尖的安全性,那麼ProGuard的就像是一個硬紙板,而你需要一個安全的,這裡是,DexGuard

6.使用合適的架構

你將永遠感謝為自己擺在首位選擇合適的架構

您可以使用MVP(模型-視圖-演示)架構,它可以斷開你的代碼到不同的易於管理圖層從而提高代碼的靈活性,大大縮短了維修時間。

有一個偉大的示範項目,為您展開。如果你有一個很難把握它,這裡是一個詳細的指南為初學者。

獎金做時給的支票也是最重要的這個。所有這些都可以極大地幫助你在你的項目實施MVP

7. 用戶界面,像一個笑話,如果你有來解釋它,它的壞

如果你對任何組織打只是一個Android開發者的角色工作,你可能不會需要太在意這一點,因為有UI / UX設計師利用這一照顧。

但是,如果你是個人開發者,你需要得到直接進入你的頭這一點。我見過開發商創建具有強大的功能真的很不錯的應用程序,但用戶界面看起來可怕和UX使它成為一個痛苦的使用。

設計一個乾淨,簡潔美觀的界面,很容易對眼睛。你不應該只是覺得像一個開發者,而應該專注於點燃你內心隱藏的設計師。

嘗試通過設計一個漂亮的UI,以創建您的用戶留下深刻印象,讓他們保持更多的時候回到你的應用程序比其他人,往往把更多的(買你的高級版本,也許)。

你應該從你的設計刪除元素,而不是將獲得一個任意球。保持清潔和最小的。

獎勵您可以隨時從運球或流行的設計師獲得設計靈感MaterialUp。還有就是這本書,你可能會喜歡,如果你有興趣在設計上閱讀。

8. Analytics(分析)是你最好的朋友

如果你想創建一個真正了不起的應用程序,你需要在很大程度上依賴於分析工具來分析您的應用程序的不同部分的性能和使用情況。

通過分析,我指的是既崩潰報告和應用使用情況的跟踪,你需要他們兩個。

不管你做什麼,你永遠不能做出完美的東西。當真正的用戶將開始使用在各種Android設備和各種Android的版本您的應用程序,你甚至會看到一些你最好編寫的代碼落在平放在地上。

崩潰報告工具可以幫助您跟踪和解決這些問題,一次一個崩潰。

您也需要開始考慮像營銷和分析應用程序的各個部分的使用。這是會幫助你彌合你做什麼,你的用戶真正想要什麼的差距。

專家提示使用火力地堡崩潰報告和分析工具,你以後會感謝我。

9.可以是營銷忍者

如果您是個人開發者,你必須想超越是只是一個開發者,並要了解市場也是如此。

我見過好產品失敗歸因於缺乏適當的營銷,而且不那麼好的成為巨大成功僅僅是因為巨大的市場。

如果你是認真對待你的工作,並希望它達到了大批觀眾,你需要投入時間和金錢在適當的市場營銷您的應用程序。但是從你的營銷活動之前,請確保您的應用程序是絕對穩定的所有功能準備好了。你想從你花的每一分錢的最大轉換,對吧?

花一些時間研究你的競爭對手是誰,你如何擊敗他們。確定可以立即競爭的人,你必須保持預留了未來戰鬥的人。

專家提示: 是一個負擔得起的市場分析工具,我愛用。

10.現在是時候優化您的應用程序

這是值得我們大多數人一般不做,但你應該和你需要。

有寫代碼,寫優化的代碼之間有很大的區別。寫一個跑得快,佔用更少的內存和消耗更少的設備存儲的代碼。

一個未優化的應用效果很好,一般情況下,但把不同壓力情境時,它可以告訴你它的真面目

檢查你的應用程序使用的內存量和查找內存洩漏。請記住,一個小小的漏洞可以沉大船。花時間了解垃圾收集器在Java中是如何工作的,創建堆轉儲和分析您的活動對象。

專家提示: 使用洩漏金絲雀來檢測你的內存洩漏。它可以通過對您自動化此任務為您節省大量的時間。

11.保存5個多小時每星期與構建搖籃

這是非常非常有可能您所使用的Android Studio開發Android應用,並使用搖籃作為構建系統搖籃是偉大的,但它的速度慢,當你的項目規模開始擴大規模變得比蝸牛還慢。

我記得無數個小時我已經浪費只是坐著等待搖籃構建完成。在繁重的工作裡,我很容易地約一小時浪費在剛剛搖籃建立,這就是像5小時,一周下來排水的排水溝

但是,有辦法加快速度了。

您可以按照這個這個崗位顯著提高構建速度。我的建造時間從4分鐘適當的優化後下降到不足30秒。

12.測試,測試和完成後,再次測試!

沒有什麼比測試更重要。這是應該在你列表的頂部。

盡可能徹底測試你的應用程序。花時間寫自動測試用例。為您的應用程序的各種壓力的情況下,看它是否能夠生存。

我曾提出釋放我的應用程序了匆忙的錯誤,並沒有花適當的時候對其進行測試。我在等待我的用戶面對錯誤,報告,然後我會去解決這些問題。

永遠,永遠,永遠做到這一點。你可以一個星期每天節省,或者兩個,或者從測試削減時間,但可能要花費比晚兩倍以上。

不要做任何事出匆忙,把你的時間,放眼長遠。是一個有遠見。現在播種,收割以後。

13. Android的碎片化是一種變相的魔鬼

碎片是在Android的最大的問題之一和谷歌似乎不願意修復它,但你必須忍受它。

有來自不同設備的大量種類繁多的不同屏幕尺寸和硬件規格的Andr​​oid設備製成品誰定制OS他們的心臟的內容。

添加到是各種版本的Android谷歌在哪裡添加/刪除API功能從哪兒冒出來越走越遠(一個例子增加你的工作量在這裡)。

例如,沒有一個Android開發者已經完成一個應用程序,而無需使用SharedPreferences API它是如此普遍,但它是在三星Galaxy S採用Android 2.2bug報告打破這裡)。

花更多的時間來創建不同的屏幕大小不同的佈局。測試在不同的設備,有不同的版本,不同規格和不同的OEM廠商。

永遠不要假設的東西會的工作,只是因為它似乎如此。

14.開始使用Git,今天!

如果你還沒有使用Git,繼續前進並開始使用它的時候了。

當我開始Android開發,我很不幸不知道什麼是忽悠的Git。我用我的整個項目的日常複製並保存在我的硬盤有一個備份,另一個在雲中。似乎是愚蠢的?是的,這絕對是。

Git的可以大大提高您的工作流程。如果有人問我的名字命名一個工具,我每天使用,不能停止使用?這是每一次的GitGit

而且很可能使用它了幾天後,你會愛上它,想知道Git的內部工作原理,所以這裡是為你準備好。

而經過一段時間後,你會自己開始一個大的項目,並得到你應如何保持適當的分支模型困惑,所以在這裡你去。

獎勵如果你是剛剛起步,沒有能力支付每月的訂閱費為維護私有倉庫GitHub,你可以嘗試到位桶,它可以讓你免費做到這一點。

15.讓黑客很難破解

的開源本質是什麼使得它容易受到攻擊。每一個Android應用程序可以反編譯,逆向工程,撕開,分析和操縱自如。

你不希望這樣的事情發生在您的應用程序,對不對?

你應該知道如何安全地存儲在本地API密鑰在您的應用程序。如果你是在處理與用戶的敏感數據,那麼你必須知道如何將它們進行加密,要選擇什麼樣的算法(安全又好又快)。

還應該存儲加密密鑰安全地或者在服務器或本地(如果需要)。你應該防止備份使用ADBAndroid的調試橋),您的應用程序的數據。如果您在數據庫中存儲的敏感數據,可以考慮混淆它

如果你的應用程序有哪些被盜取,並得到免費發布付費版。你可能會招致企業嚴重虧損,對不對?

有幾件事情可以做,以防止您的應用越來越篡改。沒有什麼比100%的安全。使用正確的資源,工具和耐心的熟練和有決心的黑客可以破解你的應用程序。

所有你想要做的就是讓人很難,而非常困難的黑客破解它。

獎勵這個這個應該是朝著確保您的應用程序一個良好的開端。

16.制定一個低端設備

每個人都喜歡使用高端的Android智能手機,所以我也是。但是記得要保持它只是你個人使用,切勿將其用於開發目的。

而開發應用程序一台高端設備將隱藏了很多缺陷。假設你正在做的UI線程,這使得它的方式為laggy UI的東西,而是一個功能強大的設備,你可能永遠也不會注意到。

一個老,中低端設備,有很多應用程序甩使它非常適合開發設備。

17.投資於學習設計模式

這是一種投資,將支付你一輩子。

在開發大而複雜的應用程序,你將面臨一些共同的問題,它可能已經被人解決過比你更能幹,這時候設計模式開始發揮作用。

開始從今天花一些時間正確的學習Java的設計模式是一個演示了所有人類已知的設計模式Github上項目。

要開始,學會像最重要的辛格爾頓,適配器,工廠方法,迭代器,依賴注入,事件驅動架構,建設者,回調,策略,外觀和生產者消費者

似乎想了很多?它實際上不是。你會開始愛他們,一旦你在潛水。

專業提示閱讀書籍像四人幫的設計模式,重構Martin Fowler有效的Java由約書亞·布洛克。

18.是回饋的時間了

我們都從我們身邊的人,並從網上得到了很多的幫助。讓我們承認這一點。

只要你有問題,你會做的第一件事是谷歌這一點,找到計算器的第一個環節。有時候,你是在趕時間,你最終複製和粘貼從具有最高票數的答案的解決方案

有沒有想過你是從使用Github上免費圖書館的數量,以及他們如何大大減少開發時間和努力。就是因為有人的地方採取了建立它,並有助於使社區更好的時間。

記得那一天,當你被卡在理解一個難以理解的概念或東西是完全新的給你,你最終發現這使得它非常容易讓你一個真棒博客文章。它因為有人跳過電影日期,寫這篇文章。

它的時間內給予回覆為好。你給的越多,你回來的回報。

我們都忙於自己的工作,我們發現它太困難了管理時間,做一些別人。但是試圖找到每個星期一定的時間作出貢獻,使這個Android社區更加豐富


我試圖分享一些我在Android開發這短短的旅程學到的教訓。我會繼續我的旅程,了解更多信息和共享,甚至更多。我希望它可以幫助別人,使他們的生活更容易一點。

 

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:http://classic-blog.udn.com/article/trackback.jsp?uid=headlink167&aid=74787907

 回應文章

Sir Norton 刺客彩虹
等級:8
留言加入好友
2016/09/19 01:05
若非精熟IT,很難置喙,但能編篡source codes.是件愉快的盛事。
老書袋(headlink167) 於 2016-09-22 22:43 回覆:
感謝來訪,這世界的進步有些靠著創意,有些就賴工程師的系統化編寫軟體使夢想成真。