Platform
Now that we know the class of application we want to develop, we need to think about the delivery platform. If you are going to develop for UI-hosted apps, such as native mobile apps or Adobe Air, you may again want to modify how to approach your coding. Typically, when creating an app for the iPhone or other mobile platform, many of our UI elements are going to be handled on the device. You also will want to minimize the amount of traffic going back and forth as much as possible. Therefore, you should design your application around the output, which could be XML, JSON, or some custom bitcode. In this case, the organizational structure you choose will dictate how you structure your backend code. Because we have the luxury of storing information on our target platform, we can focus on speed and ease of architecture. Even though our backend code is not responsible for the presentation layer (display), you still need to follow the basic tenants of good programming design by keeping the business logic separate from the API calls; don't fall into the trap of making each call from your application as a separate instance, as you may with the Pure Chat approach. You never know when your application starts to take on more features than you planned.