iPad app 开发概述
?
Why iNotes? 為什么要開發(fā)iNotes? (iPad開發(fā)系列文章一)
http://anxonli.javaeye.com/blog/704248
?
文章分類:移動開發(fā)沒有上來寫東西n久了。 剛剛這個(gè)星期完成了第一個(gè)iPad app的開發(fā) iNotes for iPad。覺得有必要上來說說關(guān)于為什么我要開發(fā)這個(gè)app以及這個(gè)app的開發(fā)過程。因?yàn)閷W(xué)習(xí)了37signal和dhh所提倡的方法, promoting your thoughts by teaching people,在教別人做一個(gè)事情的時(shí)候(對我來說就是iPad的開發(fā))來傳播你的思想方法和產(chǎn)品。而且,剛剛昨天離開了工作3年的公司開始自己的soho旅程,沒有什么不可以說的了(在職的時(shí)候,不能說太多工作上的東西)。因此,在未來的一個(gè)星期內(nèi),我會總結(jié)出開發(fā)iPad app的心得和我對iPad 軟件的一些看法。
?
首先,先自我介紹一下吧,我是以下iPhone/iPad apps的開發(fā)者:
Rutter's Finder?iphone apps
Techron2Go?iphone app
VoiceCard?iphone app
iNotes for iPad (Coming Soon/即將推出)
?
參與了iPhone開發(fā)整整一年,從一開始的好奇(在公司用自己的macbook從對obj-c一無所知到4天搞出了第一個(gè)demo給老板看,再用自己的macbook在公司開發(fā)了整整1個(gè)月,老板才答應(yīng)買了一臺iMac),到現(xiàn)在開發(fā)出了多個(gè)產(chǎn)品。公司從沒有移動開發(fā)人員到現(xiàn)在的5-6個(gè)開發(fā)人員,到現(xiàn)在移動產(chǎn)品成為公司的殺手級產(chǎn)品,只花了一年時(shí)間。對iOS的開發(fā)太喜愛了,我把自己的未來賭在了這個(gè)平臺之上。特別看完了iOS 4的api后,深信蘋果的一句話,"iPhone 4 changes everything again"。這句話同樣適用于iOS app開發(fā)之上,為什么?因?yàn)樾碌腶pi+創(chuàng)意可以令你和大開發(fā)團(tuán)隊(duì)例如, tap tap revenge回到了同一起跑線上。
?
iNotes是我的第一個(gè)iPad程序,當(dāng)我看到了喬教主對這個(gè)設(shè)備進(jìn)行演示和了解完api document后,我想到,iPhone是在普通消費(fèi)者的應(yīng)用層面上帶來了巨大的革命,而iPad這個(gè)設(shè)備,是即將在商業(yè)領(lǐng)域上帶來巨大的影響甚至是革命。例如,教育界,醫(yī)療界,房地產(chǎn)界等等的行業(yè)應(yīng)用。而連接設(shè)備和這是行業(yè)的專業(yè)人士的就是我們開發(fā)者。深深考慮了這些的時(shí)候,我覺得我必須要開發(fā)iPad的軟件,iNotes就是我的第一個(gè)主意,因?yàn)樽钊菀琢畲蠹蚁氲降膇Pad的應(yīng)用場合就是筆記記錄。
?
雖然iPhone/iPad自帶的Notes軟件很漂亮,但是我發(fā)現(xiàn),整個(gè)軟件就是一個(gè)筆記本,每個(gè)記錄是一頁,在我使用一段時(shí)間后,問題很快就來了。例如,我在公司用它來做工作會議記錄,回到家后,也用它來做家庭瑣事記錄,但很快的里面就開始亂七八糟了。你做下一個(gè)會議記錄的時(shí)候,翻看上次記錄就要在list里跳來跳去。因?yàn)?#xff0c;我覺得有必要做一個(gè)筆記app,里面包含不同的筆記本,例如會議記錄是連續(xù)的一個(gè)本子,家庭記錄是另外一個(gè)本子。這就形成了iNotes第一個(gè)功能需求,Notes are orginized in different notebooks. 默認(rèn)的notes軟件更像是一個(gè)便簽式的記錄工具,而iNotes是一個(gè)不一樣的角色。
?
搜索了很多iPad上的筆記軟件后,發(fā)現(xiàn)很多以手寫為主的note程序,例如做得很好的Penultimate,但使用后,我立即發(fā)現(xiàn)這類app的缺點(diǎn)也非常明顯。手寫的確很有趣,但因?yàn)閕Pad的手寫工具是手指頭,例如寫中文的精度太低了,要把字寫得好,必須把字寫得很大,一旦寫大了,一頁紙自然不能寫多少東西。另外一個(gè)更大的缺點(diǎn)是,這些手寫文字都被保存為圖像,不能后來進(jìn)行搜索或者格式轉(zhuǎn)換,成為圖像后,字的信息量就失去了。所以,iNotes的第二個(gè)功能需求就出來了,我的app要兼容手寫但不提倡用戶用來寫文字,多數(shù)是用來畫線,畫圖,和畫出文字的重點(diǎn)部分。這樣才能包裝筆記的文字信息量,和以后的可搜索性。
?
當(dāng)我把自己套進(jìn)學(xué)生這個(gè)角色來用iNotes的時(shí)候,我會用它來記錄上課筆記,例如這個(gè)學(xué)期的數(shù)學(xué)課的筆記,一個(gè)學(xué)期完后,我就有個(gè)一個(gè)數(shù)學(xué)課的筆記本子。到了期末,要和同學(xué)之間共享這個(gè)本子。因?yàn)楫?dāng)年學(xué)生時(shí)期做得最多的就是復(fù)印班里一些同學(xué)的筆記。這樣,筆記共享這個(gè)功能就出來了,iNotes的第三大功能 - 輸出PDF后通過email分享以及拷貝到pc上打印。
?
在這三大骨架功能確定后,我在這些基礎(chǔ)上再添加了其他小功能,插入圖片,網(wǎng)頁快照(用來討論和分析網(wǎng)頁),地圖快照(快速記錄和分享地理信息),文本框功能(手寫的字太大了,用來做說明時(shí),不方便,可拖動的小文本框比較好)。
?
iNotes功能設(shè)計(jì)基本上就是這些。也是我對其需求的思考過程。這個(gè)文章就寫到這里,下一文就開始談?wù)勯_發(fā)技術(shù)上的一些心得。希望這些可以為一些希望加入這個(gè)圈子的開發(fā)者帶來幫助,和為正在做開發(fā)的一些程序員帶來一點(diǎn)共鳴,我們可以產(chǎn)生一個(gè)可以互動,互助的開發(fā)圈子。
?
iNotes的一些屏幕截圖已經(jīng)貼到了附件中,歡迎大家的各種意見。
?
?
?
?
?
?
?
http://anxonli.javaeye.com/blog/707282
?
?
隨著iNotes的第一版完成,我近期的工作也從xcode開發(fā)轉(zhuǎn)移到了產(chǎn)品推廣階段。在這里可以總結(jié)一下兩個(gè)月以來的開發(fā)經(jīng)驗(yàn)。 iNotes這個(gè)app的開發(fā)比我想象鐘推遲了差不多一個(gè)多月。初期設(shè)計(jì)階段以為可以在iPad的國際發(fā)布周(五月低)完成, 結(jié)果推到了六月低。主要原因是app的復(fù)雜度比一般的iPhone app高,屏幕大了,自然控件就多了,用戶和app的交互多了,復(fù)雜度自然增加。 根據(jù)我自己的經(jīng)驗(yàn),一個(gè)iPad或iPhone app的開發(fā)周期大概是這樣的:
?
1. App的idea形成
2. App的主要功能設(shè)計(jì)
3. App的大概界面構(gòu)思和設(shè)計(jì)(使用流程設(shè)計(jì))
4. 大功能模塊代碼編寫
5. 大概的界面模塊編寫
6. 把大概的界面和功能連接后,app的大致demo就出來了
7. demo自己試用和體驗(yàn)幾遍后,根據(jù)情況修改
8. app的0.8左右版本完成后可以加入production的圖標(biāo)和部分UI圖片
9. 沒有大錯(cuò)誤后,0.9版本可以嘗試尋找beta用戶
10. 根據(jù)測試用戶的反饋,重復(fù) 7 - 9的步驟
11. app完成后,加入app icon, iTunesArtwork等等UI元素。反復(fù)測試無錯(cuò)誤后上傳iTunes
?
上述步驟是我個(gè)人的做法,因?yàn)槲覜]有界面設(shè)計(jì)師,大部分icons是買回來的,圖片是自己photoshop做的。如果你有界面設(shè)計(jì)師,流程可能不一樣。例如,在第三步,界面設(shè)計(jì)上,可以編寫功能模塊和設(shè)計(jì)師同步進(jìn)行。這樣app的demo出來后,基本上可以有界面可以用了。Anyway, 另外要指出的是,在我的第五個(gè)步之前,我還是沒有碰過iPad, 所以只能在模擬器做大的功能開發(fā)。模擬器不夠用嗎?對于iNotes開發(fā)來說,當(dāng)然不夠用,simulator的多觸點(diǎn)(multi-touch)支持是非常弱的,很多touch的測試是無法在simulator做的。
?
在我的第四和第五步的開發(fā)過程中,基本上是weekdays每天晚上開發(fā)3-4個(gè)小時(shí),兩天出一個(gè)功能,周末集中精力開發(fā)一到兩個(gè)個(gè)大功能,例如image cropping. 很多人可能做過image cropping, 例如網(wǎng)頁上的javascript上實(shí)現(xiàn),或者flash上的實(shí)現(xiàn)。但iPhone OS上實(shí)現(xiàn)是不一樣的,至少對我來說,因?yàn)榈谝稽c(diǎn),你要注意內(nèi)存的使用(iOS開發(fā)上最最重要的思維),在網(wǎng)頁上,你可以不用考慮你使用了多少個(gè)圖片的copy,但iOS上是不可以的,每次用完原圖(大圖片)后要立即釋放內(nèi)存。第二,cocoa的圖片縮放/旋轉(zhuǎn)基本上是利用UIView的transform來完成,transform的時(shí)候還要考慮用戶的手指touch的位置??傊葁eb上實(shí)現(xiàn)要復(fù)雜,雖然OS 3.2已經(jīng)有了gesture recognition api,相對比以前輕松。
?
版本做到0.8以后,我就開始在twitter招募了5-6個(gè)測試用戶,所以非常感謝?@robbinfan,?@tinyfool?等同學(xué)對我的app的批評和意見。很多在我看來不是那么大問題的設(shè)計(jì),但對部分用戶來說非常反感,讓我在后來對這些點(diǎn)進(jìn)行較大幅度的修改。能夠在產(chǎn)品設(shè)計(jì)和開發(fā)過程中,找一部分測試用戶參與是非常有必要的。對他們的回饋的方法,可以在app發(fā)布后對這些用戶發(fā)放免費(fèi)產(chǎn)品。這個(gè)做法即可以提高你的產(chǎn)品質(zhì)量,又可令到你的測試用戶拿到免費(fèi)的軟件產(chǎn)品。
?
最后,app提交iTunes以后,大概要花7-14天來等候?qū)徟?。這個(gè)時(shí)期到底要干嘛呢?對我來說,這個(gè)時(shí)期就是買域名,架網(wǎng)站,設(shè)計(jì)網(wǎng)站,配置郵件服務(wù)器,反復(fù)修改app description,還有twitter推廣等等。對沒有做web design很久的我來說,剛是iNotes網(wǎng)站的設(shè)計(jì)和實(shí)現(xiàn)就已經(jīng)花了我兩整天了,還沒有完成呢, 繼續(xù)努力!
?
昨天twitter上有人問,他也想跳出來專門做iphone開發(fā),但就是怕單干太寂寞。我的回應(yīng)是,如果你要決心創(chuàng)業(yè)的話,首要條件就是要奈得住寂寞,特別是利潤沒有來到之前,特別是你雇不起專業(yè)人員的時(shí)候。老大說過,只有當(dāng)工作當(dāng)成是興趣的時(shí)候,你的興趣就是工作的時(shí)候,你才不會寂寞。
?
總結(jié)
以上是生活随笔為你收集整理的iPad app 开发概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IO多路复用select,poll ep
- 下一篇: 直接杀向3G市场!华为两款新手机曝光