问题
For a college project, my group was planning on making a cloud messaging app for Android. Initially we began development by studying and using Ionic Framework and Phonegap to create a Hybrid app.
Based on what we had read and learnt so far what we understood was with Hybrid app development allows us to code with web technologies(HTML, CSS Javascript) which we were quite familiar with in far less time than building a Native app. It also had the plus of running on multiple platforms with very minor tweaking.
But as we moved forward we got some strange feedback from many of our colleagues and people in the field which all pointed to one thing; a general distrust and doubtfulness about Hybrid apps.
Eventually we decided to go for a Native app due to this feedback among other reasons but it always bothered us why people felt that way.
回答1:
Yes, the general sentiment is that Hybrid apps are inferior to Native apps. While this can be frustrating for developers more familiar with web technologies, it does come for good reason:
- Inability to interact with native components: Although plugins such as
cordova-plugin-statusbar
exist, there are limitations interacting with and manipulating native components using web technologies. One great (and frustrating) issue I have personally run into is the inability to have an input at the top of they keyboard as the keyboard animates in. This sounds like a nonissue until you look at an app where this is an essential feature such as in a chat app like Slack. - 300ms delay: Although modern browsers are beginning to phase this out, the fraction of a second delay present on Hybrid apps makes the app feel slow and non-native. This issue is becoming less of a factor as more users adopt workarounds such as FastClick.js and some frameworks such as Ionic eliminate it by default.
- The haters are right (sort of): While Hybrid app development has come a long way, there are still minor glitches and laggy functions that are just not present in a Native app. Screen transitions, app switching, and battery life are still common areas for bugs to appear and likely will be for some time, even if they are starting to become less and less noticeable.
- There are some great Native solutions: With newer languages such as Apple's Swift it is becoming easier to code in a Native language. That being said, tools such as React Native fall into a gray area between Native and Hybrid by allowing developers to code in friendly technologies such as JavaScript but compile into native code.
The moral of the story is that it really depends what is important to your specific use case. Hybrid apps have become a viable option and are no longer an embarrassing side show. Conversely, there are still minor aspects of interacting with the Native UX that are not yet possible except with a Native app.
Overall, I recommend mapping out your project and determining if your app needs any of the benefits of a Native app. With tools such as the Ionic View app it is easy to put together a basic mockup of your app and test on a real device whether or not a Hybrid app will work for you.
来源:https://stackoverflow.com/questions/43551246/are-hybrid-mobile-apps-generally-considered-inferior-to-native-apps-by-developer