IAQ: Infrequently Answered Questions

Here we collected some questions (and answers to them of course) that are not directly answered in the developers' documentation. Answers to such questions can often be found on discussion boards, or not easily found at all.

Table of contents

Q: Can I start developing for the iPhone or iPod touch without being in the iPhone Developer Program?

Yes, you can. You are limited to running the apps in the iPhone simulator, but you can start. Here' a list of what you can and can't do.

You can:

  • Download and install Xcode Tools and iPhone SDK, including the iPhone Simulator.
  • Code, build, and debug your apps in the Simulator.
  • Analyze memory usage and object allocation with Instruments.
  • Create and test app icon, app settings, app settings icon, and the 'default' application loading placeholder.

You can't:

  • Build apps for the actual device.
  • Run your apps on the actual device.
  • Analyze actual CPU load with Instruments.
  • And of course yo cannot publish or distribute your app.

Please see the iPhone Developer Center for the complete list of membership benefits.

Q: Can I run my app on an actual device if I'm not a Developer Program member?

As stated above, no. There is no technical way* to do that. iPhone and iPod Touch can only run code-signed code. The code must be signed with a certificate acquired from the Apple certification center. Developer Program members can create the certificates in seconds, but those cannot be created otherwise. So, no, it is impossible.

* unless you do some technically difficult, dangerous, and illegal stuff

Q: What is better for animation: Core Animation or OpenGL?

Core Animation is well integrated with the UIKit framework, so unless you are creating a game you most probably will use it. It has many features, complete and convenient Objective-C interface, and is ready to use. All you have to do is to tell it what kind of animation you want, and it will do the rest. You don't have to draw every frame, you don't even need to create any timers—the framework will do it for you.

The only drawback is performance. Even though it's integrated in the OS, the Core Animation will be slow with hundreds of layers animated. Also, fast creation and distruction of layers (as needed for particle systems, for example) will not work well.

With OpenGL you are responsible for everything and have to handle all drawing and timing. Optimization is also your responsibility. But well optimized, a graphical engine based on OpenGL will work much better with retatively high load.

Also, Core Animation works only with 2D graphics (except for transforms and transitions that have 3D look). OpenGL can handle both 2D and 3D.

Core Animation:

  • easy to use;
  • rich functionality;
  • lower performance with high load, especially with custom transforms used;
  • cannot use advanced blending modes for layers (screen, multiply, etc.)

OpenGL:

  • high performance with proper optimization;
  • can handle 3D graphics;
  • low level API, you will have to create or use a framework on top of it.

Q: What framework or class should I use to play background music, play sounds, receive accelerometer data, etc.?

Please see Frameworks and classes for common tasks to find the table of frameworks by task along with direct links to their documentation at the ADC website.

Q: How can I debug apps that are using accelerometer with the iPhone simulator?

It is possible to make a laptop's built-in accelerometer work as the iPhone accelerometer in the simulator. That is you can tilt your Mac, and it will work as if the iPhone was tilted. Please note that the accelerometer in a Mac works differently, and the results will be different from the ones on a real iPhone.

Also, you can use the app accelerometer-simulator to transmit the accelerometer data to your development machine from an iPhone via the UDP protocol over the network. All you have to do is add an include to your project and install an app on the iPhone.

Note that you will have to build and install the transmitter app yourself as a developer—it is not available on the AppStore. This means that you can't use this method if you are not a member of the iPhone Developers Program.

© 2009-2010 AppAlbum.com | Privacy Policy | Disclaimer | Advertising | Contact us