AlertDialog.Builder songOptsDBuilder = new AlertDialog.Builder(Rock.this);
songOptsDBuilder.setTitle(“Name”);
songOptsDBuilder.setAdapter(
new ArrayAdapter<String>(
getApplicationContext(),
android.R.layout.select_dialog_item,
android.R.id.text1,
getResources().getStringArray(R.array.song_options)),
new PlaylistOptionClickListener(
songId,
mSongOptionSelectedHandler));
songOptsDBuilder.setOnCancelListener(
new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// Reverse the animation
mRockOnRenderer.reverseClickAnimation();
}
});
songOptsDBuilder.show();
随着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开发,但就是怕单干太寂寞。我的回应是,如果你要决心创业的话,首要条件就是要奈得住寂寞,特别是利润没有来到之前,特别是你雇不起专业人员的时候。老大说过,只有当工作当成是兴趣的时候,你的兴趣就是工作的时候,你才不会寂寞。
虽然方向不一样(android) ,但楼主的这篇文章让我受益匪浅。非常感谢!
祝楼主创业成功
祝成功
加油
1. App的idea形成 - 设计师
2. App的主要功能设计 - 设计师
3. App的大概界面构思和设计 - 设计师
4. 部分功能实现(包含学习和课题研究,准备边做边学)-包含界面和模块
4. 大功能模块代码编写
5. 大概的界面模块编写
不知道Iphone的开发模式工作的,我的思路还是界面和功能同时做(小步迭代)。demo试用和体验交给设计师,根据反馈修改
6. app的alpha 版本完成后可以加入production的图标和部分UI图片
7. 没有大错误后,设计师外部用户测试并提供反馈
8. 根据测试用户的反馈,重复 6 - 8的步骤
9. app完成后,加入app icon, iTunesArtwork等等UI元素。反复测试无错误后上传iTunes
开发周期初步准备定在3个月之内。呵呵,有点盲人摸象的感觉。
非常喜欢这句话:
Listen to your users and keep improving it.
设置当前的Activity的屏幕亮度,而不是设置系统的屏幕亮度,退出当前的Activity后恢复系统的亮度。
直接看代码好了
WindowManager.LayoutParams lp = getWindow().getAttributes(); lp.screenBrightness = 0.5f; getWindow().setAttributes(lp);
screenBrightness的值范围是0到1。
注意不要设成0,屏幕会黑掉,完全看不到。