[干貨]如何在一天之內(nèi)完成一款具備cool屬性的Android產(chǎn)品<簡詩>

版權(quán)聲明:本文原創(chuàng)發(fā)布于公眾號 wingjay,轉(zhuǎn)載請務(wù)必注明出處! http://www.reibang.com/p/cf496fc408b2

簡詩

2016/12/02 更新:
新文章《我的第一款全棧side project》介紹了我在開發(fā)簡詩 v2.0 中對Android端及服務(wù)端累積的一些經(jīng)驗(yàn)宿亡。

2016/11/09 更新:
v2.0正式版下載地址:http://fir.im/vd1r 糕伐。
該正式版中本人添加了服務(wù)端,支持了注冊登錄十厢、數(shù)據(jù)同步和截屏分享,而且添加了不少很有意思的小功能。
Android 和 Server 源碼: https://github.com/wingjay/jianshi

一麸粮、簡介

實(shí)現(xiàn)一款具備cool屬性的產(chǎn)品是眾多獨(dú)立開發(fā)者都渴望的。
然而镜廉,很多獨(dú)立開發(fā)者之所以遲遲無法下手弄诲,并非熱情不夠,而是對于整個開發(fā)流程的未知與畏懼娇唯。而本文就是介紹本人耗時一天左右完成的一款A(yù)ndroid產(chǎn)品的開發(fā)流程,從idea威根,到產(chǎn)品原型及設(shè)計(jì),再到code架構(gòu)與編寫视乐。
希望讀者看完后能對獨(dú)立開發(fā)有不同的認(rèn)識洛搀,然后揮舞起手中的鍵盤,開發(fā)出很cool的個人產(chǎn)品佑淀。

二留美、開發(fā)流程

1. idea
首先,你要有一個idea。好的想法來自哪呢谎砾?生活逢倍。多觀察生活中點(diǎn)滴,每當(dāng)你對現(xiàn)有事物有要抓狂的感覺時景图,往往就意味著一個絕妙idea的誕生较雕。

當(dāng)然,不要再鬧`只差一個程序員`的系列笑話啦挚币!

舉個例子亮蒋,本人有點(diǎn)文藝情懷,非常希望有個好的記錄工具讓我以一種優(yōu)雅而復(fù)古的方式記錄文字妆毕。然而慎玖,現(xiàn)有的記錄工具大都集社交、多種信息流為一體笛粘,絢麗的界面反而讓我感覺到一種缺失趁怔,找不回曾經(jīng)字字斟酌的寫作感覺。
所以薪前,本文要介紹的就是我為自己開發(fā)的一款(自認(rèn)為)優(yōu)雅润努、簡潔的寫作應(yīng)用

2. 產(chǎn)品原型和設(shè)計(jì)稿

這一關(guān)示括,很多開發(fā)者不重視且不擅長铺浇。

不過也能理解,一般而言例诀,developer更加注重代碼層面的美觀随抠,邏輯的抽象與性能的優(yōu)化。然而繁涂,作為獨(dú)立開發(fā)者拱她,我們的目標(biāo)是一款受用戶喜愛的產(chǎn)品,而不僅是深藏巷中的好酒扔罪。而用戶對一款產(chǎn)品最直觀的感受秉沼,就是界面與交互,只有當(dāng)用戶對UI矿酵、UX滿意之后唬复,才會去深入感受產(chǎn)品的功能與速度。

 所以全肮,一位合格的獨(dú)立開發(fā)者敞咧,一定會在第一時間找到自身產(chǎn)品的槽點(diǎn)然后罵罵咧咧又毫不猶豫地把它修掉。

文末辜腺,本人推薦了一些相關(guān)的工具休建,可以幫助開發(fā)者快速設(shè)計(jì)產(chǎn)品原型乍恐。
本文的設(shè)計(jì)草稿來源于Kevin《Producter》一書中的想法,下圖為草稿圖紙测砂。

小記設(shè)計(jì)稿

從設(shè)計(jì)圖紙中可以看出茵烈,該設(shè)計(jì)很古典、簡潔砌些,而又不失個性呜投,正好是我所追求的。
ok存璃,下面開始寫代碼仑荐!

3. Android架構(gòu)
各位看官不要急著啪啪啪敲鍵盤,先思考下這個app會涉及到哪些技術(shù)細(xì)節(jié)有巧,以防后知后覺释漆。

a. 自定義View悲没,容易發(fā)現(xiàn)篮迎,該產(chǎn)品有三個特點(diǎn),一是`紅點(diǎn)按鈕`示姿,二是`豎排文字`甜橱,需要自己寫新的view來實(shí)現(xiàn);
   三是`字體`栈戳,設(shè)計(jì)稿采用了`康熙字典體`與`文悅古仿宋`岂傲。
b. SQLiteDabase數(shù)據(jù)庫.這款產(chǎn)品核心功能是`寫和讀`,第一版本暫不作服務(wù)器端開發(fā)(后續(xù)本人會抽空實(shí)現(xiàn)后臺)子檀。
c. 時間镊掖,內(nèi)部的時間會以`中文繁體`的形式顯示給用戶,如`2015.10.6`會顯示成`二零一五年 十月 六日`褂痰,
   所以需要實(shí)現(xiàn)一個`時間轉(zhuǎn)換器`把數(shù)字轉(zhuǎn)換為繁體時間格式亩进。
d. 還有一個容易被忽視的,`布局`缩歪。設(shè)計(jì)稿里看似排版簡潔归薛,實(shí)際下了很大功夫在`文字排版及間距設(shè)計(jì)`上。
   作為一款記錄工具匪蝙,文字排版可謂是核心一環(huán)主籍,直接影響用戶體驗(yàn)。
基本點(diǎn)

4. Code實(shí)現(xiàn)
好了逛球,下面就開始舞動鍵盤啦千元。

  • 想好產(chǎn)品的名字,本款產(chǎn)品直接命名為<簡詩>颤绕,寓意簡單的小詩幸海,簡單的生活蜡歹。

  • Android studio創(chuàng)建一個新工程。包名 com.wingjay.jianshi涕烧。

  • 創(chuàng)建需要的Activity月而。這里包含了SplashActivity[產(chǎn)品介紹頁], MainActivity[主頁面], EditActivity[編輯界面], ViewActivity[瀏覽界面]。這些是主要的议纯,其它的后續(xù)再加父款。

  • 先完成視圖層的實(shí)現(xiàn)。

    • SplashActivity[最初產(chǎn)品介紹頁] 可以放一張簡潔的介紹頁面瞻凤,用handler定時1秒鐘跳轉(zhuǎn)到主頁面憨攒。
    • MainActivity[主頁面],先實(shí)現(xiàn)豎排文字VerticalTextView阀参,原理很簡單肝集,給每個文字字符后加'\n'即可。然后實(shí)現(xiàn)紅點(diǎn)按鈕RedPointView蛛壳,寫一個紅色circle shape作為背景杏瞻,允許更改里面的text內(nèi)容。
    • EditActivity[編輯界面]ViewActivity[瀏覽界面] 布局簡單衙荐,主要包含兩個EditText 和 一個RedPointView來執(zhí)行保存等捞挥,這里我們先不實(shí)現(xiàn)豎排文字編輯,只要橫排即可忧吟。
    • 字體砌函,本人采用了TpldKhangXiDictTrial.otf暫時作為主要字體,不過溜族,在編輯和瀏覽界面的字體仍保持系統(tǒng)默認(rèn)讹俊,防止有些字體丟失之類問題。
  • 然后進(jìn)行邏輯層的實(shí)現(xiàn)煌抒。

    • 時間轉(zhuǎn)換器仍劈,即將數(shù)字時間轉(zhuǎn)化為繁體中文時間,2015.10.6->二零一五年 十月 六日摧玫,對于耳奕,可逐個字符轉(zhuǎn)換:2->,0->。對于诬像,若小于10則逐個轉(zhuǎn)換屋群,但大于等于10要注意,如11->十一而非一一坏挠, 21->二十一而非二一芍躏。
    • 獲取時間戳,上面講了將數(shù)字時間轉(zhuǎn)換為繁體時間降狠,那么如何獲取數(shù)字時間呢对竣?這里采用Joda Time 來獲取時間如getYear(), getMonthOfYear(), getDayOfMonth()即可庇楞。在數(shù)據(jù)庫及應(yīng)用內(nèi)部使用的都是Joda Time轉(zhuǎn)換來的秒級時間戳,只有在顯示給用戶時才把時間戳傳給轉(zhuǎn)換器去顯示否纬。
  • 最后是數(shù)據(jù)層的實(shí)現(xiàn)

    • 數(shù)據(jù)庫設(shè)計(jì)吕晌,我們要設(shè)計(jì)一張日記表,包含了
  • id自增長

  • device_id設(shè)備id临燃,以后如果要添加帳號及上傳服務(wù)器可以此標(biāo)記每個日記來源

  • title,content記錄內(nèi)容

  • created_time, modified_time 更改時間睛驳,存儲以秒為基準(zhǔn)的時間戳

  • deleted_flag 刪除標(biāo)記,若為1則表示刪除

    • SQLiteDatabase膜廊,需要實(shí)現(xiàn)兩個類:DbOpenHelperDbUtil乏沸。DbOpenHelper繼承SQLiteOpenHelper,主要負(fù)責(zé)db的創(chuàng)建更新和對外提供db實(shí)例來進(jìn)行讀寫爪瓜。DbUtil主要封裝db操作蹬跃,如讀取日記getDiary(long diaryId),該函數(shù)會利用DbOpenHelper獲取SQLiteDatabase實(shí)例來進(jìn)行讀寫铆铆。

三蝶缀、粗糙版demo

完成上面幾個步驟后,基本可以搭建產(chǎn)品demo算灸,正常實(shí)現(xiàn)記錄與閱讀的功能扼劈。而且產(chǎn)品也具有一定味道驻啤,不至于湮沒大眾菲驴。讀者只需要進(jìn)行一些bug調(diào)試工作即可。
下面給大家看第一版粗糙的demo

介紹頁

主界面

閱讀頁

編輯頁

四骑冗、改進(jìn)版demo

當(dāng)然赊瞬,上面有點(diǎn)粗糙,而且不支持豎排文字贼涩,這是原版設(shè)計(jì)風(fēng)格的一大缺失巧涧,所以本人在改進(jìn)版中支持用戶選擇豎排瀏覽方式,而且作為一款新產(chǎn)品遥倦,獲取用戶的反饋是極為重要的谤绳,故也添加反饋入口(由于沒搭后臺,只能先讓用戶以郵件形式反饋??)袒哥。
下面是改進(jìn)版的demo截屏缩筛。

介紹頁
主界面
支持`左右滑動`的豎排方式瀏覽
支持`上下滑動`的橫排方式瀏覽
設(shè)置界面
簡詩-new icon.png

五、下載及版權(quán)

  1. 36Kr NEXT推薦堡称。
    稀土掘金 推薦
    [稀土掘金日報(bào)] andriod開發(fā)新資源新干貨
  2. apk 下載網(wǎng)址:JianShi lastest version in Fir.im
  3. 源代碼:簡詩——GitHub瞎抛,歡迎各位fork并和我一起豐富簡詩
  4. Follow me. 歡迎在Github上follow我哦却紧,??
  5. 若有幸簡詩得到各位喜愛桐臊,希望能把郵箱發(fā)給本人(私信)胎撤,之后若有更新會通知你的??
  6. 設(shè)計(jì)草稿創(chuàng)意使用已獲得作者Kevin同意
  7. 本產(chǎn)品用作分享與學(xué)習(xí),若轉(zhuǎn)載須征得本人同意断凶,勿作任何商業(yè)用途

六伤提、服務(wù)端

本人從2016/09月開始進(jìn)行服務(wù)端的開發(fā),最新的代碼請關(guān)注 https://github.com/wingjay/jianshi认烁。

目前已經(jīng)完成了v2.0的服務(wù)端開發(fā)飘弧。

如果讀者有任何意見,可以與本人聯(lián)系:yinjiesh@126.com砚著。

感謝次伶!

七、必備工具推薦

謝謝!

wingjay

GitHub: https://github.com/wingjay
微博: http://weibo.com/u/1625892654

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舌镶,一起剝皮案震驚了整個濱河市柱彻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌餐胀,老刑警劉巖哟楷,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異否灾,居然都是意外死亡卖擅,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門墨技,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惩阶,“玉大人,你說我怎么就攤上這事扣汪《峡” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵崭别,是天一觀的道長冬筒。 經(jīng)常有香客問我,道長茅主,這世上最難降的妖魔是什么舞痰? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮暗膜,結(jié)果婚禮上匀奏,老公的妹妹穿的比我還像新娘。我一直安慰自己学搜,他們只是感情好娃善,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布论衍。 她就那樣靜靜地躺著,像睡著了一般聚磺。 火紅的嫁衣襯著肌膚如雪坯台。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天瘫寝,我揣著相機(jī)與錄音蜒蕾,去河邊找鬼。 笑死焕阿,一個胖子當(dāng)著我的面吹牛咪啡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播暮屡,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼撤摸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了褒纲?” 一聲冷哼從身側(cè)響起准夷,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎莺掠,沒想到半個月后衫嵌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡彻秆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年楔绞,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掖棉。...
    茶點(diǎn)故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡墓律,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出幔亥,到底是詐尸還是另有隱情,我是刑警寧澤察纯,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布帕棉,位于F島的核電站,受9級特大地震影響饼记,放射性物質(zhì)發(fā)生泄漏香伴。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一具则、第九天 我趴在偏房一處隱蔽的房頂上張望即纲。 院中可真熱鬧,春花似錦博肋、人聲如沸低斋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膊畴。三九已至掘猿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間唇跨,已是汗流浹背稠通。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留买猖,地道東北人改橘。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像玉控,于是被迫代替她去往敵國和親唧龄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容