我是如何從0開始開發(fā)一款應(yīng)用的

在五月份,我花了大概三個星期的時間做了一款簡單的iOS應(yīng)用】衩兀現(xiàn)在將整個開發(fā)過程分享給大家磅甩,希望對在入門開發(fā)應(yīng)用的同學(xué)有些幫助。

需求分析

在這里是站著技術(shù)人員角度去做需求分析绩社,比專業(yè)產(chǎn)品需求分析是要簡單很多的。我需要做的是一款日記應(yīng)用技掏,觸發(fā)動機是我找不到我想要的日記應(yīng)用铃将。我用過很多工具來寫日記。比如有有道云筆記哑梳,印象筆記劲阎,QQ郵箱的記事本,Day One等鸠真,也體驗過其它用戶比較多的日記應(yīng)用悯仙,依然滿足不了我的需求。
從自身需求出發(fā)去做應(yīng)用吠卷,這對于大眾產(chǎn)品設(shè)計來說锡垄,是非常不適合的,不過我要做的就是一款給我這樣需求的用戶的小眾應(yīng)用祭隔,所以首先滿足我的需求货岭,也不為過,至少做出來自己用的好呀。
我自身是有寫日記的習(xí)慣的千贯,我的需求是這樣的

  • 要快屯仗,打開應(yīng)用可以馬上記錄發(fā)生的事情
  • 時間線,我需要記錄一天發(fā)生的多次事件
  • 需要記錄圖片搔谴,圖片方便裁剪
  • 隱私安全魁袜,這點特別重要,我不希望數(shù)據(jù)保存在別人的服務(wù)器上面
  • 數(shù)據(jù)安全敦第,數(shù)據(jù)可以以通用格式導(dǎo)出峰弹,方便打印成冊,畢竟對于日記是要存在幾十年的芜果,而很多互聯(lián)網(wǎng)公司熬不過5年鞠呈,特別是多數(shù)的移動互聯(lián)網(wǎng)公司兩年就死掉了。
  • 按日歷查找數(shù)據(jù)

對于隱私安全數(shù)據(jù)安全师幕,這兩個是特別重要的粟按,這不僅是我自己的要求,參考了多個應(yīng)用的App Store的評論霹粥,和知乎上面關(guān)于日記的討論得出來的,所以這兩個是最重要的疼鸟。

另外出于收益考慮后控,對于一些功能需要購買開通使用,也是重要需求空镜。

技術(shù)評估

針對上面的需求浩淘,探求實現(xiàn)的可能性和初步的技術(shù)方案。大部分的需求的實現(xiàn)都是比較簡單吴攒,特別需要處理的是隱私安全數(shù)據(jù)安全這兩個需求张抄。

隱私安全

數(shù)據(jù)不能保存到應(yīng)用服務(wù)器,防止別人服務(wù)器被hack是一個原因洼怔,最重要的是防止數(shù)據(jù)被開發(fā)者利用(當然也是在說我自己)署惯,畢竟日記數(shù)據(jù)是非常隱私的。所以多方面考慮下镣隶,數(shù)據(jù)保存到蘋果的iCloud是較好的做法极谊。數(shù)據(jù)放在大廠上面,對短期數(shù)據(jù)保存是比較放心的安岂,安全度較高轻猖,蘋果也是一家把用戶隱私放在首位不惜和FBI懟上的這么一個公司,數(shù)據(jù)放在iCloud上面域那,也避免了應(yīng)用提供商存儲用戶數(shù)據(jù)導(dǎo)致數(shù)據(jù)被非法利用的問題咙边。

數(shù)據(jù)安全

數(shù)據(jù)保存到iCloud是相對安全的了,但是依然不夠,數(shù)據(jù)能夠?qū)С鼋唤o自己才是最放心的败许。對于導(dǎo)出的數(shù)據(jù)格式選擇是一個難題王带,目前包含文本和圖片的富文本格式方案不多。如下列表

  • RTF 也稱富文本格式(Rich Text Format, 一般簡稱為RTF)檐束。雖然表面上說是非常流行的文檔格式辫秧,但國內(nèi)就沒怎么見人用過,國外情況不知曉被丧,也就不考慮了盟戏。
  • Doc/Docx 這個是微軟Word文檔格式,是通用的格式甥桂,是富文本方案比較好的選擇柿究。不過要導(dǎo)出這個格式不容易,Word文檔格式極為復(fù)雜黄选,iOS下面沒有好的庫可以用蝇摸,自己實現(xiàn)比較繁瑣,因此方案待定
  • PDF Portable Document Format的簡稱办陷,意為“便攜式文檔格式”貌夕。這也是一個比較流行的文檔格式,格式也比較復(fù)雜民镜,不過蘋果內(nèi)置PDF生成接口啡专,因此比Word文件更為可行
  • MarkDown 這是一種純文本格式,不過可以引用外部圖片路徑制圈,所以也可以作為導(dǎo)出的格式選項们童。不過MarkDown的排版單一,對于需要打印成冊這個需求不友好鲸鹦,也作為待定考慮

綜合多個格式慧库,目前優(yōu)先先去PDF這個格式。

原型設(shè)計

將需求落實到原型上面馋嗜。原型設(shè)計是很重要的一步齐板,在這一步需要多花點時間,好的原型可以加快后面所有的步驟嵌戈。另外按照多年的經(jīng)驗覆积,也不可能設(shè)計出周全不需要后續(xù)修改的原型,因此后續(xù)稍作優(yōu)化也是必然的事情熟呛。原型工具我使用的是MockPlus宽档,它內(nèi)置了很多基本控件,通過簡單拖拉就可以完成了設(shè)計庵朝,非常方便吗冤。如下圖是其中一個原型

原型圖-首頁-輸入.png

UI設(shè)計

UI設(shè)計這個環(huán)節(jié)是大多程序員的痛又厉,如果資金充足,或者項目比較重要椎瘟,找一個UI設(shè)計師來設(shè)計覆致,是強烈推薦的,千萬不要干自己吃力不討好的事情肺蔚。在大多數(shù)領(lǐng)域里面煌妈,顏值都是關(guān)鍵的一個環(huán)節(jié)。由于我的項目宣羊,功能簡單璧诵,第一個版本先自己完成設(shè)計。
我使用的設(shè)計工具是Sketch仇冯,比起PS之宿,這個工具更廉價杰扫,并且對于移動UI設(shè)計泄鹏,它更簡單克懊,高效脂凶。
設(shè)計對于程序員來講,真的是很難的杯活,如果沒有一定的研究矛渴,那就需要找一些相關(guān)書籍來補充一些基本知識臣嚣,這對于以后和設(shè)計進行良好的溝通也打下堅實的基礎(chǔ)娇昙。我覺得《寫給大家看的設(shè)計書》的設(shè)計書值得看项滑,里面會教會大家基本的配色,對齊涯贞,字體等,這些內(nèi)容非常重要危喉,它會使的之前一團糟(當然如果自身沒有基本的美學(xué)概念宋渔,也不覺得一團糟)的設(shè)計,變得基本美觀辜限。
在有了基本的設(shè)計指導(dǎo)之后皇拣,想要設(shè)計出像樣一點的東西,也是很難的薄嫡,這時候就要參考大量主流的UI設(shè)計案例氧急,它們會增強你對潮流的感知能力,也會給你帶來一些靈感毫深。我常去的網(wǎng)站有:

  • http://dribbble.com 這里有非常多優(yōu)秀的設(shè)計案例
  • http://collectui.com 這是一個專門收集UI設(shè)計的網(wǎng)站吩坝,包含了大量移動端設(shè)計的案例,而且是每日更新哑蔫,強烈推薦
  • http://huaban.com 這是國內(nèi)著名的花瓣網(wǎng)站钉寝,里面也收集很多案例弧呐,特別適合國情。雖然很過國外的設(shè)計看起來很漂亮嵌纲,但是不符合國內(nèi)審美的俘枫,國內(nèi)大眾喜歡界面熱鬧一點,國外的喜歡設(shè)計簡潔一點逮走。

另外UI設(shè)計過程中需要很多設(shè)計資源鸠蚪,特別是圖標資源。圖標資源我找到了一個比較好的網(wǎng)站http://www.iconfont.cn 师溅。這是阿里巴巴的阿里媽媽UED出品的一個圖標資源網(wǎng)站茅信,非常好用。
需要特別聲明的一點是险胰,國內(nèi)的版權(quán)意識慢慢好了起來汹押,因此使用第三方網(wǎng)站素材的時候,要注意版權(quán)問題起便。

在UI設(shè)計的時候碰到一個難點就是數(shù)據(jù)導(dǎo)出PDF的一個板式的問題棚贾。板式設(shè)計在平面設(shè)計系統(tǒng)中是非常重要的一項。為了習(xí)得板式的一些皮毛榆综,立馬購買了兩本和板式設(shè)計有關(guān)的數(shù)據(jù)妙痹,分別是

日本板式設(shè)計原理

平面設(shè)計中的網(wǎng)格系統(tǒng)

書是挺不錯的,但是也不可能一看書就能獲得真髓鼻疮,只是輔助一下不至于設(shè)計跑偏那么厲害怯伊。

代碼實現(xiàn)

來到了自己流程最在行的一個環(huán)節(jié)了。由于這不是一篇側(cè)重技術(shù)的文章判沟,所以不再這里闡述過多的技術(shù)問題耿芹,主要是把開發(fā)的重要環(huán)節(jié)拿出來分享一下。

建立代碼倉庫

我使用的是https://coding.net 的Git倉庫挪哄,覺得還不錯吧秕,不用Github主要是因為在國內(nèi)它慢。我是偏向工具流迹炼,而不是命令流砸彬,我用的Git客戶端工具是SourceTree,免費好用斯入。

建立工程

工程文件組織結(jié)構(gòu)貼下

文件結(jié)構(gòu).png

Pod用到的庫如下

pod 'Aspects'
    pod 'AVOSCloud', '~> 3.10'
    pod 'LeanCloudSocial', '1.0.0-beta3'
    pod 'AFNetworking', '~> 3.0'
    pod 'Bugly'
    pod 'SDWebImage', '~> 4.0'
    pod 'ReactiveCocoa', '~> 2.5'
    pod 'DateTools'
    pod 'NYXImagesKit'
    pod 'M13OrderedDictionary'
    pod 'Mantle'
    pod 'MBProgressHUD'
    pod 'CocoaLumberjack'
    pod 'EAIntroView'
    pod 'Realm'
    pod 'FSCalendar'
    pod 'TOCropViewController'
    pod 'NYTPhotoViewer'

項目的后端是使用LeanCloud的服務(wù)砂碉,服務(wù)接口是運行在LeanCloud的云引擎上面的,我使用的是Node.js版本的云引擎刻两。我覺得云引擎是很好的一個東西增蹭,它讓我只關(guān)注我的業(yè)務(wù)實現(xiàn),我只需要寫一些業(yè)務(wù)代碼就行了闹伪。我本地存儲使用的是Realm沪铭,為啥選擇它壮池?因為對我來講,它是目前使用最簡單的杀怠。

技術(shù)難點

這個項目雖然功能簡單椰憋,但也是有些難點的。

iCloud備份

之前的iOS開發(fā)中并沒有使用過iCloud赔退,所以對iCloud基本不了解橙依。如何快速學(xué)習(xí)一個新的技能,這本身就是一個非常重要的技能硕旗。我是這么辦的窗骑,首先搜索iCloud相關(guān)的教程,有一個基本了解漆枚,然后搜索iCloud相關(guān)的坑(多年經(jīng)驗告訴我创译,誰家的技術(shù)都是充滿了坑的,知道他好墙基,更好知道他的丑)软族,最后查看官方詳細文檔,全面了解他的細節(jié)残制。
數(shù)據(jù)備份到iCloud和iCloud數(shù)據(jù)同步到應(yīng)用流程還是略微復(fù)雜的立砸,面對流程復(fù)雜的問題,請記得一定要作圖初茶。要知道其實人腦是非常不善于處理這些邏輯復(fù)雜的問題的颗祝,所以只能借助工具幫助我們完成復(fù)雜的問題。我使用的是 https://www.processon.com 的在線作圖恼布。在這里我特別提一下螺戳,客戶端大部分的流程都是和用戶操作混在一起的,所以我作圖使用的是一種事件驅(qū)動方式作圖折汞,只包含事件和處理兩種元素温峭,非常簡單易懂。下面是iCloud備份環(huán)節(jié)的一小塊流程圖截圖

部分流程圖.png

方框的是處理字支,箭頭代表事件。其中看到的有布爾事件奸忽,用戶操作事件等堕伪。如果有更好的圖示方式,請告訴我栗菜。

導(dǎo)出PDF

iOS有接口生成PDF欠雌,這個是降低了導(dǎo)出PDF的難度。現(xiàn)在面臨的問題就是疙筹,如何按照板式靈活排版富俄。我采用的一個方法是禁炒,建立板塊和板式管理器。板塊負責(zé)他的內(nèi)容繪制霍比,決定他的字體幕袱,顏色,板塊內(nèi)布局悠瞬,板式管理器負責(zé)板塊布局们豌,文檔分頁等。這樣將日記數(shù)據(jù)傳入板式管理器浅妆,就可以自行生成PDF了望迎。

PDF板式

測試

很多程序員不喜歡測試,但是這個一個極壞的做法凌外。自己的程序必須全面自測辩尊,這可以加快整個項目的進度,也可以建立測試部對開發(fā)部的信心康辑,和個人威信摄欲。把功能做出來沒啥了不起的,關(guān)鍵指標是可用性和性能問題晾捏。
對于我的應(yīng)用蒿涎,一般采用如下測試流程

功能測試

自己使用幾天,使用所有的功能惦辛,你會發(fā)現(xiàn)各種各樣的問題劳秋,一邊修復(fù)一邊測試。特別有個現(xiàn)象要說明一下胖齐,bug最喜歡出現(xiàn)在上線第一天玻淑,如果不想經(jīng)常干緊急修復(fù)這樣自己都不好意思的事情,請認真對待測試呀伙。

性能測試

在用了幾天沒啥問題后补履,需要進入性能測試。粗略評估用戶每個月產(chǎn)生的數(shù)據(jù)15M左右剿另,對此我進行了如下測試

  • 測試超過1G的數(shù)據(jù)箫锤,在不同的設(shè)備上面測試iCloud的寫入和讀取性能
  • 單日1000條事件測試,查看UI顯示性能
  • 多月多年數(shù)據(jù)測試雨女,測試數(shù)據(jù)讀取和顯示是否正常

小規(guī)模內(nèi)測

發(fā)布到fir.im谚攒,要求親朋好友使用,獲取反饋氛堕。這個很重要馏臭,通常有些bug不會在自己這里產(chǎn)生,但是一到別人手里讼稚,馬上就暴露括儒,這是因為每個人的使用習(xí)慣不一樣绕沈,因此少量用戶內(nèi)測也是比較有必要的。

發(fā)布

發(fā)布這里問題不大帮寻。主要是iTunes Connect的宣傳圖麻煩一點乍狐,不過我找到一個可以制作漂亮宣傳圖的網(wǎng)站 https://theapplaunchpad.com 。缺點是國外的網(wǎng)站付費都比較貴规婆,算了一下自己制作的成本后澜躺,咬咬牙購買了他們的Pro功能。

總結(jié)

應(yīng)用已經(jīng)在幾天前上線抒蚜。自己開發(fā)完整的一個app實屬不容易掘鄙,更不容易的現(xiàn)在app市場趨于飽和了。幾年前移動互聯(lián)網(wǎng)市場還是無限暢想的嗡髓,現(xiàn)在發(fā)現(xiàn)不是這樣的操漠,你會發(fā)現(xiàn)手機上面的軟件就是那么幾個,都是大廠壟斷了饿这,現(xiàn)在app store上面分類下面的app連新品展示的地方都不給了浊伙。那些想去做獨立開發(fā)者的同學(xué),如果你不能做出令蘋果眼前一亮的產(chǎn)品长捧,那么在app store上面是等于扔進了垃圾堆∠桑現(xiàn)在做app要解決的都是啥問題?推廣和運營串结!現(xiàn)在app用戶獲取成本高的直接讓你虧損哑子。為啥?因為現(xiàn)在用戶都是別人的肌割,如同人家老婆卧蜓,要去撩人家老婆,那可是很大代價的哦把敞。

最后大家覺得我的分享對你有用弥奸,希望體驗一下我的應(yīng)用,可以點擊去下載 簡日記奋早。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盛霎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子耽装,更是在濱河造成了極大的恐慌摩渺,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剂邮,死亡現(xiàn)場離奇詭異,居然都是意外死亡横侦,警方通過查閱死者的電腦和手機挥萌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門绰姻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人引瀑,你說我怎么就攤上這事狂芋。” “怎么了憨栽?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵帜矾,是天一觀的道長。 經(jīng)常有香客問我屑柔,道長屡萤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任掸宛,我火速辦了婚禮死陆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唧瘾。我一直安慰自己措译,他們只是感情好,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布饰序。 她就那樣靜靜地躺著领虹,像睡著了一般。 火紅的嫁衣襯著肌膚如雪求豫。 梳的紋絲不亂的頭發(fā)上塌衰,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機與錄音注祖,去河邊找鬼猾蒂。 笑死,一個胖子當著我的面吹牛是晨,可吹牛的內(nèi)容都是我干的肚菠。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼罩缴,長吁一口氣:“原來是場噩夢啊……” “哼蚊逢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起箫章,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤烙荷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后檬寂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體终抽,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了昼伴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匾旭。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖圃郊,靈堂內(nèi)的尸體忽然破棺而出价涝,到底是詐尸還是另有隱情,我是刑警寧澤持舆,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布色瘩,位于F島的核電站,受9級特大地震影響逸寓,放射性物質(zhì)發(fā)生泄漏居兆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一席覆、第九天 我趴在偏房一處隱蔽的房頂上張望史辙。 院中可真熱鬧,春花似錦佩伤、人聲如沸聊倔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耙蔑。三九已至,卻和暖如春孤荣,著一層夾襖步出監(jiān)牢的瞬間甸陌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工盐股, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钱豁,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓疯汁,卻偏偏與公主長得像牲尺,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子幌蚊,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

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