I’m about to start building my first mobile app and wanted some direction. The app will need to:
- run on iPhone, Windows Phone, and Android
- access data from a database
- be able to determine where it is (e.g., when I cross a state border, when I enter a city, or, generally, when I change locales)
- the GUI will be relatively straightforward
After doing a bit of research, I have a few questions:
- Should I use a framework (e.g., Rho, Appcelerator, or PhoneGap) or HTML5/CSS3/JS? Or, would I use both of those in combination?
- I want to sell the app, so does that preclude building it as a website (i.e., HTML5/CSS3/JS)? In other words, if I build it as a website, doesn’t that mean a user won’t have to download it and install it like a native mobile app? I like the idea of making it a “native” mobile app vs. a website, although maybe I shouldn’t.
- Is REST the best way to access my data? My thought is to have a SQL Server database and build a REST service using .NET.
And other tips or guidance would be greatly appreciated.
Thanks,
Jay
If you use a tool such as Appcelerator then you the end product will be native. Appcelerator framework obfuscates the underlying native interfaces for android/iOS. There are a few instances where you’ll need to know the differences between the two, for example when to use what Appcelerator class for each device, but in essence, you can write once and deploy to each device. Been using it for a while and is very nice. Appcelerator will give you all the hooks you need to tap into the devices natively.
PhoneGap will just wrap up your app and create a ‘web app’. Basically a packaged website. IMO Appcelerator would be the way to go. This is more similar to your second bullet. You’ll build the website, you just won’t host it on a server. It will be packaged up and deployed to the device. In essence the phone becomes the ‘web server’ but only in the sense that the device is reading web pages that are local to the device.
As far as data, REST might be the best way to go. the calls would be quick. You may not really need to build your own DB. You might want to look and see if some of the data you are going to use is already out there. Unless you are collecting data. I don’t know the details of your app so I’m not sure what help this opinion provides.
Hope this helps.