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