iPhone App Development

iPhone Programming Limitation


iPhone programming is different from developing a PHP web application or a Java desktop application. Instead of having nearly limitless visual real estate at your disposal, you have a relatively small 320×480 pixel screen on the iPhone. Instead of letting the garbage collector take care of all your memory issues for you, you are now responsible for making sure every allocated byte is accounted for. You are about to develop on a platform that is a fraction as powerful, a fraction as fast, with a fraction as much space as today’s beefy desktops. These constraints drive innovation. You have to think more creatively to solve problems that have an obvious solution on the desktop.

For various good reasons, Apple restricts how your application interacts with the rest of the operating system. These are some of the constraints you are under as an iPhone developer:

  • Only one app at a time: Your app can run only in the foreground. After the user closes your app, it is dead and gone and does not run until the user manually starts it again.
  • Sandbox: When your app launches, you are given a “sandbox” to play in by the iPhone OS as a protective mechanism. This means that you cannot reach out and corrupt another application’s data, or worse, the core iPhone OS. This also means that you cannot communicate directly with other apps on the phone.
  • No garbage collection: Most modern programming languages have some form of garbage collection that handles the nitty-gritty details of memory management for you. However, the iPhone does not have any garbage collection, and instead you alone are responsible for making sure memory is handled correctly.
  • Limited memory: You have a limited amount of memory to use at your discretion. If the iPhone OS begins to run low on available memory, it may ask your application to reduce your usage. It may even forcibly quit your app entirely if memory is at critical levels.
  • Limited screen size: The iPhone’s screen is only 320×480 pixels. Most desktop monitors are considerably larger than either of these devices. Designing your interface for a small form factor is one of the main challenges you will face as a developer.
  • Your app can (and will) exit unexpectedly: If you have used an iPhone before, you know that users do not politely ask for an application to close. When you are done, you instantly hit the home button with no regard to what the app is doing. The best apps are the ones designed with this interaction in mind—apps that facilitate short, quick bursts of activity.
  • Limited access to system services: You do not have direct access to certain data on the device. In particular, you cannot access the user’s calendar data, SMS database of text messages, or the user’s call history or voicemails. Whether you love them or hate them, these constraints are realities of iPhone development. Instead of railing against Apple for enforcing these limitations, take a look at other apps to see how they creatively worked within these constraints.
Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *

ALl Rights Reserved @Nawras Tech2017
All Rights Reserved 2017 NawrasTech