苹果应用程序实训报告Snowfall小程序.docx
- 文档编号:3638126
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:12
- 大小:139.28KB
苹果应用程序实训报告Snowfall小程序.docx
《苹果应用程序实训报告Snowfall小程序.docx》由会员分享,可在线阅读,更多相关《苹果应用程序实训报告Snowfall小程序.docx(12页珍藏版)》请在冰豆网上搜索。
苹果应用程序实训报告Snowfall小程序
12
苏州市职业大学
实习(实训)报告
名称 SnowFall
2013年1月7日至2013年1月12日共一周
院 系计算机工程系
班级11软件外包
姓名蒋思思
系 主 任李金祥
教研室主任梁颖红
指导教师郝允辉马志明
王德鹏李爱军
目录
目录1
一、题目说明2
1.1程序开发背景2
二、总体设计3
2.1.系统开发平台:
3
2.2.系统流程图:
4
2.3功能结构图:
4
三、详细说明5
3.1系统实施5
四、遇到的问题和解决方法8
五、实训总结9
六、参考文献10
附录(源程序代码)10
一、题目说明
打开SowFall程序时雪花回慢慢从顶部落下来,形成降雪的动画。
1.1程序开发背景
iOS是由苹果公司开发的手持设备操作系统。
苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPodtouch、iPad以及AppleTV等苹果产品上。
iOS与苹果的MacOSX操作系统一样,它也是以Darwin为基础的,因此同样属于类Unix的商业操作系统。
原本这个系统名为iPhoneOS,直到2010年6月7日WWDC大会上宣布改名为iOS。
苹果IOS系统外文名:
iOS编程语言:
C语言,C++,Objective-C
开发商:
苹果公司源码模式:
混合(封闭源码,开源组件)
发行商:
苹果公司内核:
Darwin
发行时间:
2007年6月29日(初版)授权条款:
EULA(商业专有、开源组件)
系统结构:
iOS的系统结构分为四个层次:
核心操作系统(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。
最新版的IOS系统(iOS5)中,系统操作占用大概774.4MB的内存空间。
2007年10月17日,苹果公司发布了第一个本地化IPhone应用程序开发包(SDK),并且计划在2月发送到每个开发者以及开发商手中。
2008年3月6日,苹果发布了第一个测试版开发包,并且将“iPhonerunsOSX”改名为”iPhoneOS“。
2008年9月,苹果公司将iPodtouch的系统也换成了”iPhoneOS“。
2010年2月27日,苹果公司发布iPad,iPad同样搭载了”iPhoneOS”。
这年,苹果公司重新设计了“iPhoneOS”的系统结构和自带程序。
2010年6月,苹果公司将“iPhoneOS”改名为“iOS”,同时还获得了思科iOS的名称授权。
2010年第四季度,苹果公司的iOS占据了全球智能手机操作系统26%的市场份额。
2011年10月4日,苹果公司宣布iOS平台的应用程序已经突破50万个。
最新操作系统版本
二、总体设计
2.1.系统开发平台:
Xcode2.0是开发人员建立MacOSX应用程序的最快捷方式,也是利用新的苹果电脑公司技术的最简单的途径。
Xcode2.0将MacOSX的轻松使用,UNIX能量以及高性能的开发技术集合在一起。
Xcode4允许你开发基于IOS的iPad、iPhone、iPodTouch设备应用程序,只要你有MacOSXSnowLeopard10.6.2以上版本MacOS操作系统,便可安装IOSsdk,如果你有iOS设备,便可让Xcode把应用程序部署到你的iOS设备上,不然,你还可以使用iPhone仿真器进行调试。
Xcode提供了友好而方便的应用程序开发环境,这样你就可以开发出好的IOS应用程序了。
Xcode前身是继承自NeXT的ProjectBuilder。
TheXcodesuite包含有GNUCompilerCollection自由软件(GCC、apple-darwin9-gcc-4.0.1以及apple-darwin9-gcc-4.2.1,默认的是后者),并支持C语言、C++、Fortran、Objective-C、Objective-C++、Java、AppleScript、Python以及Ruby,还提供Cocoa、Carbon以及Java等编程模式。
协力厂商更提供了GNUPascal,[1]FreePascal[2],Ada[3],CSharp[4],Perl[5],Haskell[6]和D语言。
Xcode包使用GDB作为其后台调试工具。
从Xcode3.1开始附带iOSSDK,作为iOS的开发环境。
Xcode4.0于2011年3月9日正式发行。
该版本非Apple开发者注册会员亦能从MacAppStore中付费下载,收取US$4.99的费用。
从Xcode4.1开始,针对MacOSXv10.6及MacOSXv10.7用户从MacAppStore免费下载
Xcode最新主要版本是Xcode4.5,支持iOS6,可以在MacAppStore免费下载,亦可在iOS开发者计划网站下载。
2.2.系统流程图:
图1系统流程图
2.3功能结构图:
图2流程模块图
三、详细说明
3.1系统实施
(1)功能简介
利用函数来控制雪花降落的时间和位置,最终呈现出雪花缓缓降落的唯美湖面。
(2)界面关键代码和描述
设置程序的背景颜色
self.view.backgroundColor=[UIColorcolorWithRed:
0.8green:
0.4blue:
0.7alpha:
1.0];
//loadourflakeimagewewillusethesameimageoverandover我们会重复使用您下载的图片
flakeImage=[UIImageimageNamed:
@"flake.png"];
//startatimetthatwillfire20timespersecond开始时间将会20次每秒落下
[NSTimerscheduledTimerWithTimeInterval:
(0.05)target:
selfselector:
@selector(onTimer)userInfo:
nilrepeats:
YES];
}
//Timereventiscalledwheneverthetimerfires无论何时时间一开始,计时器事件就触动。
-(void)onTimer
{
//buildaviewfromourflakeimage
UIImageView*flakeView=[[UIImageViewalloc]initWithImage:
flakeImage];
//usetherandom()functiontorandomizeupourflakeattributes利用随机函数随机属性的碎片
intstartX=round(random()%320);利用函数来设置雪花降落的时间,位置和降落速度。
intendX=round(random()%320);
doublescale=1/round(random()%100)+1.0;
doublespeed=1/round(random()%100)+1.0;
//settheflakestartposition设置雪花碎片开始落下的位置。
flakeView.frame=CGRectMake(startX,-100.0,25.0*scale,25.0*scale);
flakeView.alpha=0.25;
//puttheflakeinourmainview把雪花碎片放在主视图。
[self.viewaddSubview:
flakeView];
[UIViewbeginAnimations:
nilcontext:
flakeView];
//setuphowfasttheflakewillfall建立雪花落下来有多快。
[UIViewsetAnimationDuration:
5*speed];
//setthepostionwhereflakewillmoveto设置雪花碎片落下来飘向的位置。
flakeView.frame=CGRectMake(endX,500.0,25.0*scale,25.0*scale);
//setastopcallbacksowecancleanuptheflakewhenitreachesthe设置止损回调所以我们可以清理雪花碎片当它到达
//endofitsanimation
[UIViewsetAnimationDidStopSelector:
@selector(onAnimationComplete:
finished:
context:
)];
[UIViewsetAnimationDelegate:
self];
[UIViewcommitAnimations];
(3)界面截图一张:
每一个界面说明作为独立的一小节。
该程序运行后雪花缓缓降落的画面。
图3模块调试图
该程序的主界面的logo。
图4主界面logo
四、遇到的问题和解决方法
1.遇到的问题:
当设置雪花降落的速度降落的方向位置,经常会找不准位置,函数没有能够熟练使用
解决方法:
在老师和网络的帮助下,在书上查询到了相关函数的共识,从而解决函数不会使用准确的问题。
intstartX=round(random()%320);
intendX=round(random()%320);
doublescale=1/round(random()%100)+1.0;
doublespeed=1/round(random()%100)+1.0;
2.遇到的问题:
设置雪花降落程序的背景颜色时,代码中的背景颜色的数值代码与Xcode开发工具中的代码不一致。
解决的方法:
首先先配置好Xcode开发工具中的代码的背景颜色,显示出颜色的比例,然后在大程序代码中修改,就能保持两项代码中的背景颜色一致了。
//setthebackgroundcolortosomethingCOLD
self.view.backgroundColor=[UIColorcolorWithRed:
0.8green:
0.4blue:
0.7alpha:
1.0];
//loadourflakeimagewewillusethesameimageoverandover
flakeImage=[UIImageimageNamed:
@"flake.png"];
5、实训总结
为期一个礼拜的苹果实训结束了,在这期间,我不仅学到了很多理论和实践知识,还对苹果的操作系统有了全新的认识。
苹果是个传奇,而我在这一个礼拜里整整感受到了苹果的美魅力。
早就听说苹果的性能和操作系统很不错,很稳定,接触之后发现,果真名不虚传!
人际交互界面也很人性化。
这次的实训很成功,首先,我要先感谢企业的两位老师和校内的两位老师对我的细心指导,没有你们的帮助,我不会这么顺利的完成这个实训,你们辛苦了!
在这次短暂的课程设计的过程中,我深有感触。
课程设计的时间虽然很短暂,但是我学到了不少知识。
实训中,设计手机软件发现有很多错误,有时要解决一个很小的错误要花上一大段时间,期中的错误到最后解决的时候,发现,其实很幼稚,不过这样的错误多了,在不知不觉中对一些知识分外熟悉了,并且自己的排错能力也提升了。
设计过程中有一些不明显的小错误会直接影响到整个软件的运作,可见,在校的错误不能有,我们要有细心和耐心的写程序。
这样一个小小的手机应用软件,却是通过一次次的搭建,修改之后的结果,真是令人感慨万千。
“实践是检验真理的唯一标准”。
通过自身实践,重新过滤了一遍所学知识,让我学到了很多在课堂上根本不会体验到的知识。
并且,经过自己的研究和老师的指导后,也打开了视野,增长了见识,收获颇丰。
同时对于一向都比较粗心的我来说,也更深刻的认识到要做一个合格的会计工作者并非我以前想的那么容易,最重要的还是细致严谨。
实习过程中,我发现平时学习的知识与实践环节所用到的有一定的差距,往往我觉得自己掌握的很好或者自认为很熟练的技术却在此次实践环节中出现了问题,书本上的知识只提供方法的借鉴,实践中自己必须摸索出更适合具体工作的方法,这一切都离不开钻研精神和勤学好问精神。
在人与人的相处过程中我收获更大,首先要谦虚谨慎,不能自以为是,认为自己懂得很多,而仅仅埋头苦干,而不向他人请教,工作不但是实践与应用的刚才,同时也是学习的刚才,我们必须机枪与他人的沟通学习,以便获得与他人的交流。
经过了这次磨练,我又一次感受到只有付出才能有收获,成功永远是属于不懈努力的人们的。
不过经过这一个星期来的不断拼搏,虽然有一点成功的喜悦,但是我依然感受到我的这个程序依然还有很多不足的地方,我将在以后的时间好好完善它,以求能使我的这个小程序到一个更加高的水平,同时也能从中获得更加多的宝贵的经验。
我个人认为,这次实习对于我是非常有意义的,对我个人的影响比较大,对我的成长更有莫大的帮助,让我对苹果产品有了更进一步的认识和了解。
6、参考文献
[1]《iPhone开发基础教程》作者:
DaveMark/JeffLaMarche出版社:
人民邮电出版社2009年4月
[2]《Object-c2.0程序设计》作者:
StephenG.Kochan出版社:
机械工业出版社2009年9月
附录(源程序代码)
//
//SnowFallAppDelegate.m
//SnowFall
//
//Createdbyappleon10/9/08.
//CopyrightAmuckLLC2008.Allrightsreserved.
//
#import"SnowFallViewController.h"
@implementationSnowFallViewController
@synthesizeflakeImage;
-(void)viewDidLoad{
[superviewDidLoad];
//setthebackgroundcolortosomethingCOLD
self.view.backgroundColor=[UIColorcolorWithRed:
0.8green:
0.4blue:
0.7alpha:
1.0];
//loadourflakeimagewewillusethesameimageoverandover
flakeImage=[UIImageimageNamed:
@"flake.png"];
//startatimetthatwillfire20timespersecond
[NSTimerscheduledTimerWithTimeInterval:
(0.05)target:
selfselector:
@selector(onTimer)userInfo:
nilrepeats:
YES];
}
//Timereventiscalledwheneverthetimerfires
-(void)onTimer
{
//buildaviewfromourflakeimage
UIImageView*flakeView=[[UIImageViewalloc]initWithImage:
flakeImage];
//usetherandom()functiontorandomizeupourflakeattributes
intstartX=round(random()%320);
intendX=round(random()%320);
doublescale=1/round(random()%100)+1.0;
doublespeed=1/round(random()%100)+1.0;
//settheflakestartposition
flakeView.frame=CGRectMake(startX,-100.0,25.0*scale,25.0*scale);
flakeView.alpha=0.25;
//puttheflakeinourmainview
[self.viewaddSubview:
flakeView];
[UIViewbeginAnimations:
nilcontext:
flakeView];
//setuphowfasttheflakewillfall
[UIViewsetAnimationDuration:
5*speed];
//setthepostionwhereflakewillmoveto
flakeView.frame=CGRectMake(endX,500.0,25.0*scale,25.0*scale);
//setastopcallbacksowecancleanuptheflakewhenitreachesthe
//endofitsanimation
[UIViewsetAnimationDidStopSelector:
@selector(onAnimationComplete:
finished:
context:
)];
[UIViewsetAnimationDelegate:
self];
[UIViewcommitAnimations];
}
-(void)onAnimationComplete:
(NSString*)animationIDfinished:
(NSNumber*)finishedcontext:
(void*)context{
UIImageView*flakeView=context;
[flakeViewremoveFromSuperview];
//openthedebuglogandyouwillseethatallflakeshavearetaincount
//of1atthispointsoweknowthereleasebelowwillkeepourmemory
//usageincheck
NSLog([NSStringstringWithFormat:
@"[flakeViewretainCount]=%d",[flakeViewretainCount]]);
[flakeViewrelease];
}
-(BOOL)shouldAutorotateToInterfaceOrientation:
(UIInterfaceOrientation)interfaceOrientation{
//ReturnYESforsupportedorientations
return(interfaceOrientation==UIInterfaceOrientationPortrait);
}
-(void)didReceiveMemoryWarning{
[superdidReceiveMemoryWarning];//Releasestheviewifitdoesn'thaveasuperview
//Releaseanythingthat'snotessential,suchascacheddata
}
-(void)dealloc{
[flakeImagerelease];
[superdealloc];
}
@end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 苹果 应用程序 报告 Snowfall 程序