Here at UggoDitty we have decided to start down the path of mobile app development. For now we are investigating the different frameworks. As most developers know picking the correct framework can save hours of development time whereas picking the wrong one can cause disastrous results. In this blog we will cover a little bit of our decision process.
Application Type
A large portion of picking your framework depends on the type of application that is being developed. Are you making a game or something else? Does it have 3D graphics? Does it need any special access to the platform (ie location services). Knowing the answer to these questions can really help narrow down your choices. An app that is 3D accelerated will benefit from a framework that is designed with 3D in mind. Likewise an app that helps manage lists of data probably doesn’t need 3D graphics or if it does they could be rendered in advanced. Our first application is a collection of textual data so that weighed heavily in the selection process.
Platforms
The next portion of mobile framework selection has to do with targeted platforms. Not all frameworks work with all platforms. This is hard to determine for some of the frameworks as they rely heavily on community created content. So the framework itself is cross platform but many of the available plug-ins are not. This can cause a lot of trouble down the road depending on how integral that support is to your app. Sometimes as a developer you can compensate for lack of support in a different way, other times you may be able to help the community and fill in the support for your target platform. Regardless of how this issue is dealt with it may be a deal breaker on framework choice. We kept our options open but are aiming for support for the big two mobile platforms (Android and iOS). If we can get support for Windows Phone, Amazon FireOS or other platforms that is an added bonus.
Programming Tools and Community
Many times in the development world a product is only as good as it’s user base. This is because as a framework becomes complicated it is harder and harder to master. Instead of learning the best way to accomplish a task we programmers tend to stick with the first solution that works. This is an easy trap to fall in, especially when you are unfamiliar with the programming language or platform tools. Unfortunately, this is hard to compensate for as the only true solution is to gain more experience. There are a few ways to hopefully deal with this problem. The first is try to stick with familiar development tools. If you have the choice between a framework that uses perl as a base and one that uses C# and you’ve never programmed in perl before the C# framework may be a better choice. If a framework requires using a MVC model and you are not familiar with this design you may want to learn a little bit about it before starting the project. We went with a platform that relies mostly on Javascript and HTML5 which are common development tools and we are familiar with them.
Frameworks
We looked at a few frameworks. The final two were Xamarin and Cordova. We decided to go with Cordova mostly because the style of app we are developing already closely resembles a web page and the app does not need any special permissions on the mobile device.
Final Thoughts
It is easy to get discouraged with mobile development. If you cannot figure out how to do something within a framework it is likely that you may be pushing the limits of what the framework can do. The question is really “Is the framework limited or did you make a bad design choice?”