In the first part of this series I discussed planning your mobile application and how to decide between HTML5 vs Native, iOS vs Android, and how to get started going live with a mobile app. In this post I will dive into some considerations when developing a mobile application.
With a large and mature developer ecosystem there are ample development resources available. With mature open source frameworks for both iOS and Android it is easy to have a solid foundation by standing on the shoulders of giants. Github is your friend when it comes to discovering the open source communities that power so many iOS and Android applications. While iOS is developed closed source, there are many libraries available like AFNetworking, SSToolkit, PonyDebugger, and KIF. Android is a primarily open source operating system with many libraries available like GreenDAO ORM, Picasso, and OkHttp.
Development consideration: PaaS vs IaaS vs SaaS
When undertaking a new mobile application you must decide to integrate your existing backend or build a new one. In the case of building a new backend for your mobile application you must consider whether to use an existing mobile cloud like Parse, Stackmob, Kinvey, Helios, or Cloudmine. These mobile cloud platforms allow you to develop new applications quicker with APIs for writing custom application code, storing user and application data, managing push notifications, and instrumenting with analytics. Mobile cloud platforms as a service are the fastest way to get to market if you don’t have existing server side APIs. More often than not you will need to integrate your existing application data to your mobile experience. When you choose infrastructure as a service, or platform as a service, you are really deciding which problem set to focus on. Either you can focus 100% on your application, or have more flexibility (and ongoing maintenance) by using a lower level provider that gives your infrastructure as a service.
Development consideration: Degrade gracefully for a smooth online and offline experience
When designing a modern mobile application you must plan for a variety of conditions from high-speed, low-latency Wi-Fi connections to low-speed, high-latency 2g/3g/4g connections to even being offline altogether. Adapting to the sheer variety in devices, form factors, CPU speeds, and memory variability is a daunting task. It’s important to be able to support online interactions and gracefully fail back to offline while maintaining state and a consistent user experience.
Mobile insights with AppDynamics
With AppDynamics for Mobile, you get complete visibility into the end user experience across mobile and web with the end user experience dashboard. Get a better understanding of your audience and where to focus development efforts with analytics on device, carriers, OS, and application versions:
Want to start monitoring your iOS or Android application today? Sign up for our beta program to get the full power of AppDynamics for your mobile apps.
In the next post in this series I will dive into launching a mobile app in the app stores. As always, please feel free to comment if you think I have missed something or if you have a request for content in an upcoming post.
Take five minutes to get complete visibility into the performance of your production applications with AppDynamics Pro today.