This is a subject that is somewhat dear to my heart. I was introduced to application development on a fluke. I knew nothing besides the fact that Hybrid Development was the way to go, with frameworks popping up like wild fires, the process had been simplified.
In fact, my assumptions we true. This form of development was the seam between learning native languages like Objective-C/Swift an Java. I couldn’t wait to dive in an boy did I… My first hybrid application was data intense. I learned Cordova/Phonegap quickly and build an app faster than I could believe. Little that I knew, device capabilities, signal quality, OS and payload would play a key role in my dismay later on.
The app utilized the upload of files as well as synchronous xhttp requests. Something you should always plan for especially if you expect to send large amounts of data. In my case, I was carrying a base64 signature image along with several photos and approximately 200 fields of form data. The server side scripts would process the data then stamp a PDF and email it to a selected recipient.
Most of our users were able to install successfully and use the app with no issue on and offline. The app was developed brilliantly (if I may toot my own horn) however, device capabilities would eventually make my life a living hell. Some users on old devices would complain about app crashes and weird behavior when submitting form data. Something I, an inexperienced app developer at that time had no clue why.
I make the claim to new app developers considering Hybrid development, ask yourself 3 things:
1. Will my app be data heavy?
2. Will I send or receive data to and from my app?
3. What type of devices will my app be used on?
These 3 things are critical. If your app is processing heavy data, sending and receiving data objects and used on specific older devices, Go Native!!! I will stress, if you answered yes to both 2 and 3, save yourself time and headache and choose to develop your app in Objective-C or Swift if targeting iOS or Java if targeting Android devices.
Looking around the web there are many articles floating around about the beauties of Hybrid development, and I am a big fan, but there are very few resources online that point you toward decisive measures to take to determine if this method will work for the life of your app. Save yourself time an headache by doing your research and probing your clients needs and use cases. Hope this helps someone in the near future.