How to become an iPhone developer in eight easy steps

 

[Note]: The oirginal link of the article: http://www.guardian.co.uk/technology/gamesblog/2009/feb/10/gameculture-apple

 

------------------------------------------------------------------------------------------------------------------------

How to become an iPhone developer in eight easy steps

The developer of iShoot quit his day job after earning $22,000 a day at the top of the App Store charts. Here's what you have to do to be next...

iShoot

iShoot: written in six weeks. Mostly while holding a baby...

You've probably heard all about iShoot. Written by a programmer at Sun Microsystems in his spare time,this Worms-style artillery shooter blasted to the top of the App Store charts earlier this year and stayed there for weeks earning its creator enough money to pack in his day job and become a professional developer.

You may also have seen the news this week about nine-year-old programming prodigy Lim Ding Wen who has developed his own simple painting app for the iPhone. Doodle Kids is doing reasonable business,attracting 4,000 downloads in less than a fortnight and gaining its author international news coverage.

There's no question about it,iPhone has become the people's platform. While the PC maintains a healthy indie development scene, Apple's handset,with its low barriers to entry and seamless consumer purchasing system,is the real rags-to-riches machine. In practically a month,you can develop an application that will be available to a global market of enthusiastic downloaders.

Publishers? Distribution partners? Specialist development hardware? None of it is necessary. In the same way that cheap,accessible digital technology has brought film and music making to the masses,iPhone seems to have sliced through the painstaking game production pipeline. Everyone can be Will Wright now.

Or can they? How exactly do you go about creating an iPhone title?

I've spoken to iShoot coder Ethan Nicholas and two British studios involved in iPhone development - FluidPixel,responsible for fun Lemmings-style platformer, KamiCrazy and Connect2Media's Manchester team,currently finishing off the hugely promising, Go! Go! Rescue Squad. Here are their tips to any burgeoning app stars…

1. Buy a Mac
You'll need one with an Intel-based processor,running the Leopard version of MacOS X. It doesn't have to be a top of the range model,though. Ethan Nicholas wrote iShoot on a banged-up old MacBook with 1GB of memory,knackered Wi-Fi and an Ethernet port that needed to be wiggled around to get it to work. The machine did however,afford him the manoeuvreability he needed: "most of my available development time involved holding a baby on the couch so my laptop was better suited to the task."

Peter Scott,CTO at Connect2Media suggests Mac Minis,"they are more than powerful enough,small,easy on desk space when you already have PCs,three LCD monitors and a bunch of devices. They are also easy to move round,developers can take them home at the weekend if they want to continue to work."

2. Down the SDK (software development kit)

"Apple provides the free SDK for iPhone development from theirDeveloper site," explains Stuart Varrall,Creative Director at Fluid Pixel. "This includes everything you need to get going,including the development environment Xcode,the iPhone Simulator for testing,performance analysers,interface builders and the full documentation reference library."

3. Learn Objective C

This is the primary programming language for iPhone development. "It's an extension of C to include object-orientated principles," says Varrall. "It has scripting elements to it,so is easier to pick up than some languages and anyone with programming experience should be able to transfer their skills."

"Here's a short history of Objective C," offers Scott,"It was born out of Smalltalk which was a very early Object Oriented Programming language developed in Xerox PARC (where Window/Mouse computing really begun) and as a consequence was heavily adopted by Apple since as early as the Lisa. Smalltalk is very similar to C."

"Objective C was actually created by Next Computing owned by a certain Steven Jobs. When Jobs returned to Apple,he sold Next to the company and so Objective C became the main development environment for the Apple Mac. It is liked because in similar ways to Java,it deals with many of the problematic parts of programming…. It's nice,simple,hides the complexities of the hardware away from the developer and deals with (on the whole) the major cause of programming issues in C and C++ which is memory leaks."

Go! Go! Rescue Squad: written in C++,but Objective C is fine for iPhone-only projects.

All well and good,but what's the best way to actually pick up the language? "This really depends on where you are starting from," explains Scott. "If you are proficient in C/C++ or Objective C then the learning curve is in getting to grips with the APIs of the iPhone - the best place to start is the iPhone developer site. If you need to learn the programming languages themselves then the best place to start is a beginners book,actually the For Dummies series is very good for this. Also look at one of the many free tutorials online - Googleing 'objective C tutorial' throws up many places to get these."

"The official Apple SDK has a wealth of detail along with examples of implementing various features," adds Varrall. "The Apple developer forum is rapidly growing to be the best place for specific questions or to get further clarification on something". He also mentions that iPhone supports Open GL ES which allows heavy optimisation when working in 3D. So if you're thinking beyond a scrolling shooter or Tetirs clone,you'll need to look into that as well. Also,many professional studios write their games in C++ rather than Objective C,especially if they're planning to port the code onto other platforms such as N-Gage of Xbox Live Arcade. 

4. Start writing something!

Forget theory; forget mastering Objective C with your first attempt. Just set yourself a project and start working. "I knew nothing about Objective C,Cocoa,or OpenGL prior to starting iShoot. In fact I barely even knew C," admits Ethan Nicholas. "I hadn't really touched it in a decade. I was a Java programmer for twelve years and it was quite an adjustment moving from a nice safe language like Java to one where a single misplaced byte can instantly crash your program."

Nicholas' first aim – and this is more or less standard procedure in the development community when presented with a new platform – was to get something to appear on the screen. "The first thing I worked on was the ground. I wanted to create a destructible landscape with falling dirt. Since I had no idea how to load textures at that point,and had just grasped the basics of Objective C and OpenGL,my dirt "texture" was just solid white. So the first thing I got onscreen was just a white rectangle that represented the ground. My wife was fortunately tolerant enough to understand my excitement at getting anything,even just a simple white rectangle,on the screen.

"By day two,my featureless white rectangle had morphed into a properly textured landscape and most of the dirt-descruction code was working. By the end of the first week I had a tank on the screen firing shots randomly,blowing holes in the ground. When I finally got it on to an actual phone and not just the simulator,I found that it only ran at one frame per second,so I had some considerable optimisation work ahead of me."

If you can't face starting out on an original project,however,Varrall suggests a couple of modification tasks. "The SDK actually comes with a whole host of sample projects that cover most aspects of development. So the best place to start would be to take one of those and reverse engineer it and work out how it has been constructed. You can then build on these by adding new features and create your very own game very quickly."

5. Sign-up as an official developer
If you plan on releasing your masterpiece at any point,you'll need to sign up with the iPhone Developer Program. The Standard cost is $99,and it involves agreeing to Apple's terms and conditions,and signing and returning the contract. Even if you're nowhere near completing the project,you'll need to sign up in order to test your code on an actual iPhone rather than an onscreen emulator. Once you're on the Developer Program you're sent a certficate,which allows you to pair up with an iPhone device.

6. Prepare for a few weeks of work…
Depending on the time available,and your level of programming knowledge,developing an iPhone game can mean as little as a couple of months' work. "Including learning Objective C,and OpenGL,I spent exactly six weeks on iShoot," says Nicholas. "The hardest part was adjusting to an unsafe language... after twelve years working in Java,it's very difficult to get back into the proper mindset for debugging crashes. I had one memory corruption issue where it turned out that literally only a single byte was being corrupted,and it didn't cause the program to crash until several minutes after the corruption occurred. It took me three days to find that one…"

KamiCrazy: six weeks to develop with a team of five...

The professional studios I spoke to provided similar timeframes,though they involved teams rather than lone coders. "KamiCrazy took three months to develop part-time,so could be done in a month full-time," reckons Varrall,who used three programmers,one artist and a producer. "The programming was focussed on the most part into making the robust engine that drives the game and included the level editor,allowing the levels to implemented with ease. This means that this technology can be re-used and future titles could be turned around in less time. The art took three weeks in total to produce."

7. Submit your app to Apple
Okay,this is the big one. "Finished games have to be submitted to the App Store using the same interface as music producers use," explains Varrall. "It's a straightforward process of zipping up the file,uploading it with a description,a large and small icon,and screenshots. If everything is alright then it usually takes Apple a week to approve the content and it finds itself in the store. If there is a problem,such as obvious bugs or Lite apps that are mentioned as demos or aren't fully featured,then this can take longer to review and ultimately reject. In this instance you can fix the issue and resubmit as many times as you like."

"Any iPhone developer will tell you that the provisioning and code signing is a pain,but once I had that sorted out the submission process was trivial," agrees Nicholas. "Fill in the fields,wait a few days,eagerly anticipate your first sales report... and then watch everybody completely ignore your app as you sell fewer than 20 copies a day. iShoot wasn't exactly a resounding success in the beginning…"

8. Adapt,market and survive!
The work doesn't finish once you've made it onto App Store. As it's unlikely you'll have your own in-house QA department,some bugs and design issues may only surface when hundreds of gamers get their hands on the code. Consequently,it may be necessary to submit several alterations.

And as Nicholas mentioned,don't expect an immediate response to the release – App Store is an open market,featuring around 20,000 applications and 2,000 games. To get noticed,you'll need to build a buzz around the game: engage with the development and gaming communities,start a blog about the programming process,produce screenshots and mail out press releases to iPhone news sites like Pocket GamerTouch Arcade and FingerGaming. And,of course,utilise social networking sites like Twitter,Facebook and Bebo.

The iShoot profit graph: releasing the Lite version had a reasonably dramatic effect on sales of the original...

Or just produce a free demo version. iShoot was widely ignored for several weeks before Nicholas decided to produce a cut-down 'Lite' version which he made available for free. "it quickly became the #1 free application,and iShoot sales followed suit. Here is an actual graph of my daily sales from iShoot's launch through to when it became number one. To put things in perspective,you see the biggest spike before iShoot Lite was released? That tiny little bump? That was Christmas Day,when I made over $500 in a single day. I was quite excited about that at the time."

While at the top of the Paid Apps chart,iShoot was getting over 10,000 downloads a day,at $2.99 each. Take out Apple's standard 30% commission and Nicholas was pulling in $21,000 a day. He quit his job at Sun and is now working on a new game ("My next project involves airborne sheep,but I'm afraid that's all I can share at the moment"). You could be next….

Useful links
Stuart Varrall of FluidPixel kindly provided some helpful links for wannabe App developers…

The KamiCrazy development blog
The official iPhone development site
Idevgames - a developers site
Iphonedevsdk - a community development forum
Mobile Orchard - information and useful blog posts 
148apps - an app review site

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


我正在用TitaniumDeveloper编写一个应用程序,它允许我使用Javascript,PHP,Ruby和Python.它为API提供了一些可能需要的标准功能,但缺少的是全局事件.现在我想将全局热键分配给我的应用程序并且几乎没有任何问题.现在我只针对MAC,但无法找到任何Python或Ruby的解决方案.我找到了Coc
我的问题是当我尝试从UIWebView中调用我的AngularJS应用程序中存在的javascript函数时,该函数无法识别.当我在典型的html结构中调用该函数时,该函数被识别为预期的.示例如下:Objective-C的:-(void)viewDidLoad{[superviewDidLoad];//CODEGOESHERE_webView.d
我想获取在我的Mac上运行的所有前台应用程序的应用程序图标.我已经使用ProcessManagerAPI迭代所有应用程序.我已经确定在processMode中设置了没有modeBackgroundOnly标志的任何进程(从GetProcessInformation()中检索)是一个“前台”应用程序,并显示在任务切换器窗口中.我只需要
我是一名PHP开发人员,我使用MVC模式和面向对象的代码.我真的想为iPhone编写应用程序,但要做到这一点我需要了解Cocoa,但要做到这一点我需要了解Objective-C2.0,但要做到这一点我需要知道C,为此我需要了解编译语言(与解释相关).我应该从哪里开始?我真的需要从简单的旧“C”开始,正
OSX中的SetTimer在Windows中是否有任何等效功能?我正在使用C.所以我正在为一些软件编写一个插件,我需要定期调用一个函数.在Windows上,我只是将函数的地址传递给SetTimer(),它将以给定的间隔调用.在OSX上有一个简单的方法吗?它应该尽可能简约.我并没有在网上找到任何不花哨的东西
我不确定引擎盖下到底发生了什么,但这是我的设置,示例代码和问题:建立:>雪豹(10.6.8)>Python2.7.2(由EPD7.1-2提供)>iPython0.11(由EPD7.1-2提供)>matplotlib(由EPD7.1-2提供)示例代码:importnumpyasnpimportpylabasplx=np.random.normal(size=(1000,))pl.plot
我正在使用FoundationFramework在Objective-C(在xCode中)编写命令行工具.我必须使用Objective-C,因为我需要取消归档以前由NSKeyedArchiver归档的对象.我的问题是,我想知道我现在是否可以在我的Linux网络服务器上使用这个编译过的应用程序.我不确定是否会出现运行时问题,或者可
使用cocoapods,我们首先了解一下rvm、gem、ruby。rvm和brew一样,但是rvm是专门管理ruby的版本控制的。rvmlistknown罗列出ruby版本rvminstall版本号   可以指定更新ruby版本而gem是包管理gemsource-l查看ruby源gemsource-rhttps://xxxxxxxx移除ruby源gemsou
我有一个包含WebView的Cocoa应用程序.由于应用程序已安装客户群,我的目标是10.4SDK.(即我不能要求Leopard.)我有两个文件:index.html和data.js.在运行时,为了响应用户输入,我通常会使用应用程序中的当前数据填充data.js文件.(data.js文件由body.html上的index.html文件用于填充
如何禁用NSMenuItem?我点击后尝试禁用NSMenuItem.操作(注销)正确处理单击.我尝试通过以下两种方式将Enabled属性更改为false:partialvoidLogout(AppKit.NSMenuItemsender){sender.Enabled=false;}和partialvoidLogout(AppKit.NSMenuItemsender){LogoutI
我在想,创建一个基本上只是一个带Web视图的界面的Cocoa应用程序是否可行?做这样的事情会有一些严重的限制吗?如果它“可行”,那是否也意味着你可以为Windows应用程序做同样的事情?解决方法:当然可以创建一个只是一个Cocoa窗口的应用程序,里面有一个Web视图.这是否可以被称为“可可应
原文链接:http://www.cnblogs.com/simonshi2012/archive/2012/10/08/2715464.htmlFrom:http://www.idev101.com/code/Cocoa/Notifications.htmlNotificationsareanincrediblyusefulwaytosendmessages(anddata)betweenobjectsthatotherwi
如果不手动编写GNUmake文件,是否存在可以理解Xcode项目的任何工具,并且可以直接针对GNUstep构建它们,从而生成Linux可执行文件,从而简化(略微)保持项目在Cocoa/Mac和GNUstep/Linux下运行所需的工作?基本上,是否有适用于Linux的xcodebuild样式应用程序?几个星期前我看了pbtomake
我正在将页面加载到WebView中.该页面有这个小测试Javascript:<scripttype="text/javascript">functiontest(parametr){$('#testspan').html(parametr);}varbdu=(function(){return{secondtest:function(parametr){$('#testspan&#039
我正在尝试使用NSAppleScript从Objective-C执行一些AppleScript…但是,我正在尝试的代码是Yosemite中用于自动化的新JavaScript.它在运行时似乎没有做任何事情,但是,正常的AppleScript工作正常.[NSAppactivateIgnoringOtherApps:YES];NSAppleScript*scriptObject=[[NSApple
链接:https://pan.baidu.com/s/14_im7AmZ2Kz3qzrqIjLlAg           vjut相关文章Python与Tkinter编程ProgrammingPython(python编程)python基础教程(第二版)深入浅出PythonPython源码剖析Python核心编程(第3版)图书信息作者:Kochan,StephenG.出
我正在实现SWTJava应用程序的OSX版本的视图,并希望在我的SWT树中使用NSOutlineView提供的“源列表”选项.我通过将此代码添加到#createHandle()方法来破解我自己的Tree.class版本来实现这一点:longNSTableViewSelectionHighlightStyleSourceList=1;longhi=OS.sel_regist
我的Cocoa应用程序需要使用easy_install在用户系统上安装Python命令行工具.理想情况下,我想将一个bash文件与我的应用程序捆绑在一起然后运行.但据我所知这是不可能的,因为软件包安装在Python的“site-packages”目录中.有没有办法创建这些文件的“包”?如果没有,我应该如何运行ea
摘要: 文章工具 收藏 投票评分 发表评论 复制链接 Swing 是设计桌面应用程序的一个功能非常强大工具包,但Swing因为曾经的不足常常遭到后人的诟病.常常听到旁人议论纷纷,”Swing 运行太慢了!”,”Swing 界面太丑嘞”,甚至就是说”Swing 简直食之无味”. 从Swing被提出到现在,已是十年光景,Swing早已不是昔日一无是处的Swing了. Chris Adamson 和我写
苹果的开发:   我对于Linux/Unix的开发也是一窍不通,只知道可以用Java.不过接触了苹果过后,确实发现,世界上确实还有那么一帮人,只用苹果,不用PC的.对于苹果的开发,我也一点都不清楚,以下是师兄们整理出来的网站. http://www.chezmark.com/osx/    共享软件精选 http://www.macosxapps.com/    分类明了,更新及时的一个重要Mac