HTML5 Mobile Applications VS Native iOS Android Applications - sahajss/knowledge_base GitHub Wiki
#Do I build a HTML5 Application, a native Android Application, or a native iOS Application? When I began working on my senior research process, this was the second major issue my partner and I hit (the first one, of course, being the topic of our research itself). But to answer this question, we first needed to understand the three options we had.
##Android When people enter the Mobile Lab, Android is usually what they default to. After 2 years of Java and a semester of Mobile, it's just what makes the most sense. And if it is what works for you, then knock yourself out. Many people choose Android because they don't want to need to spend too much time learning a new form of app development, on top of everything they will be doing. And there's nothing wrong with that! Another reason to choose Android might be if you are using a wearable or IoT device that is best compatible with Java (any Google device, for example, like the Android smartwatch). But what if you want to try something different?
##iOS A really obvious alternate choice would be developing an iOS app. This was what I wanted to do when I set off on my Mobile Research journey. I'm a diehard Apple customer, and thought it would be incredibly cool to develop an app that I could use on my own phone. I also really wanted to learn a new language my senior year, and thought that combining that goal with my senior research was the best way for me to accomplish that. As I began working, however, I realized what I was doing was not working for two reasons. 1) Learning Swift, a relatively new language, in an almost brand-new version of Xcode, with little available documentation and even fewer updated online tutorials, and trying to make it do the complex functions I needed, was taking me far too long. Although Xcode is, in some aspects, similar to Android Studio, mostly everything is completely different. Figuring out how to write the code to open a new View on button click alone took me two class periods--integrating Bluetooth functionality into my application seemed almost impossible. But this was a very minor issue, one I could have gotten past eventually. The bigger issue was 2) iOS was not compatible with the IoT device I was using. And to jump back a section for a moment, neither was Android. I was using the RFduino Microchip, something that was almost brand-new in the developer community. This also had very little documentation. "How to" guides were almost non-existent. Even though iOS was not the right choice for my project, it is still a great language to learn and explore in the senior research lab. Just remember, to be able to actually run an iOS application on an Apple device, you will be needing a developer's license!
##HTML5 My perfect solution came in the form of HTML5. As I was searching for something I could use without undue difficulty, I came across something called Evothings Studio. Evothings is a development environment built 1) specifically for certain wearables, like Arduinos and RFduinos, and 2) allows you to build a mobile application using HTML, CSS, and Javascript. Once your application is done, there are numerous options, ways to export your HTML application package into a native Android/iOS app. Another option, if you are interested in using HTML5 to build a cross platform app, is the online software Ionic, which is a bit more commonly used, so easier to find documentation on.
#So what should you do? When you are deciding which environment you should build your application, don't make any rash decisions. Of course, no matter what you choose to do at first, you can always change your decision, but a little research and planning in the beginning can save you a lot of wasted time and effort in the end, when you realize what you are doing may not be the best way to accomplish your goal.
Regardless of what you choose to do, GOOD LUCK!!! And don't forget to have fun :)