没有上来写东西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的一些屏幕截图已经贴到了附件中,欢迎大家的各种意见。
note能不能共享,能不能在iphone/ipad上同步?
请问楼主是怎么做SOHO的啊,一天都做些什么事情啊
请问楼主是怎么做SOHO的啊,一天都做些什么事情啊
创业的第一条件就是耐得住寂寞啊,特别是利润还没有来临的日子。 一天的事情可多了,开发,测试,市场,客户服务什么都是你自己做啊
最简单的区别,我的iNotes的图片和文字记录是合并在一个view的不同层来显示,图片可放大/缩小,可剪切。而evernote的图片和文字记录是分开的,更像一个email,正文和附件。这是我最不喜欢evernote的地方。你不可以在evernote的图片上画圈,标注出你要的重点,而iNotes最强的地方在于这里。
最简单的区别,我的iNotes的图片和文字记录是合并在一个view的不同层来显示,图片可放大/缩小,可剪切。而evernote的图片和文字记录是分开的,更像一个email,正文和附件。这是我最不喜欢evernote的地方。你不可以在evernote的图片上画圈,标注出你要的重点,而iNotes最强的地方在于这里。
那和onenote有啥区别呢
有时候需要统计手机的型号和版本号,利用程序可以获取到相应的手机信息,见:
这是我手机milstone的相关信息。
获取的方法是:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView textView = (TextView) findViewById(R.id.text);
textView.setText("Product Model: " + android.os.Build.MODEL + ","
+ android.os.Build.VERSION.SDK + ","
+ android.os.Build.VERSION.RELEASE);
}
注:android.os.Build.VERSION.RELEASE获取版本号
android.os.Build.MODEL 获取手机型号
某些打不开需翻()墙
Customizing the background/border colors of a UITableView (grouped style)
http://pessoal.org/blog/2009/02/25/customizing-the-background-border-colors-of-a-uitableview/
UITableViewCell Dynamic Height
http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/
How to Make Custom Drawn Gradient Backgrounds in a Grouped UITableView with Core Graphics
http://code.coneybeare.net/how-to-make-custom-drawn-gradient-backgrounds
Adding shadow effects to UITableView using CAGradientLayer
http://cocoawithlove.com/2009/08/adding-shadow-effects-to-uitableview.html
Shadow offset in custom UITableViewCells (for the inner OCD in you)
http://runmad.com/blog/2009/11/shadow-offset-in-custom-uitableviewcells/
Fast Scrolling in Tweetie with UITableView
http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/