I love native apps, but for large enterprise projects they've been making less and less sense as mobile devices have become more powerful and the modern browser capabilities have exploded in the recent years.
One particularly important aspect of mission- critical mobile app is the risk involved with rolling out each new version. Imagine waiting out the 10 day approval period from Apple only to discover that you had a royal screw up and now the production version is unusable. Now you need a day or two to fix the issue, then another 10 days for approval, all while your app is unusable? A single occurrence can be enough to destroy your business.
Consider the advantages that a hybrid app can offer you in this case, illustrated in the following fictitious scenario, based on real life implementations I've been involved with:
- The hybrid app stack is based on PhoneGap and Sencha ExtJS6
- Has not needed an app store redeploy in years because the native code has no need to change
- A seamless transition between different versions of code occurs as the user navigates between different organizational units
This approach allows you to perform staged rollouts of new production code, or to perform AB testing on potential code candidates, within isolated organizational units, without risking mass disaster, with no regards for the app store or the 10 day waiting period. Try doing that with a native app.
Now some of you might be thinking "but it's against some policies to remote download code" and I say "welcome to the big league, boys". When we are talking about multi billion dollar enterprises, it costs peanuts to "persuade" Apple to "overlook" these policies and countless businesses operate based on this model.
I've been wishing for this for a long time and the fine folks at Google delivered. Imagine being able to see the full stack trace when debugging, i.e. when tracing against an AJAX or a setTimeout()! You can do this in Chrome Canary already; read on for how to set it up:
I've been meaning to say a few words about this for a long time: stop comparing ExtJS to AngularJS!
It's like comparing a car to a tire:
- One is not better than the other; it's an invalid comparison
- If you need a car, you probably shouldn't buy just the tire
- If you need just a tire, you probably shouldn't buy an entire car
Consider this: minified version of ExtJS 4.2.2 is 1.4 MB (ext-all.js) and that's not counting all the CSS and resources. By contrast, AngularJS 1.2.13 is just over 100 KB.
Now when I'm calling AngularJS a "tire" what I mean is that if you are building an app of any magnitude, you will probably be bundling it with some other libraries. I'm guessing many newer apps will have a bare minimum of AngularJS + jQuery + Bootstrap.
So, when would I chose one over the other, if I were equally proficient in both?
- If an important objective is fast page load times (i.e. landing page), I would go with a lean stack on top of AngularJS
- However, if I'm building an enterprise portal with a ton of UI and functionality, I would probably go with ExtJS
- Now how about both? I've built apps that had a lean landing page with just jQuery that would then transition to the "app" in ExtJS; I think LastPass is an excellent example of that.
A few years ago I wrote about ExtJS4 Dev Tools of a Pro, where I mentioned a FireFox plugin called Illuminations. Since then I've switched to Chrome as my dev platform where I missed my cherished Illuminations plugin.
I believe only last week the creators of FF's plugin have released a version for Chrome: https://chrome.google.com/webstore/detail/illuminations/hbhnkfhblakpfhcpepeoogmakimflibk
It doesn't feel like a full port, but it does have the one feature I care most about: similar to how you can right-click on a page and "Inspect Element" to bring up dev tools and pinpoint the target in the DOM tree, you can now right-click and "Illuminate:"
At which point you will pinpoint the target in the Ext component tree:
Combined with Sencha Inspector for Chrome, the Chrome browser is now a powerhouse for ExtJS/Sencha Touch development!
...this is all drag-and-drop, in browser! Even works in IE! Windows-GUI-quality component!
If there are more companies out there, please let me know; only other one I heard of is Extensible.