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.
A basic ExtJS6 Classic Toolkit responsive technique for going from vertical to horizontal based on tall/wide screen, is by using responsiveConfig on a Viewport running Border layout, and change desired child's regions from i.e. South to West. However, what if you want to do the same, but using an HBox vs. VBox layout, to get that additional flex functionality? Turns out it's not as straightforward, however still pretty simple. You just need to use Box layout (ancestor of HBox and VBox) with "vertical" boolean config changing inside the responsiveConfig of the viewport. Here is the sample source code from Sencha Fiddle; click the link below to experiment with it in different window sizes:
Recently I wrote about my dissatisfaction with ExtJS 6 for being an "ExtJS 5 + Sencha Touch in disguise".
However, I came to realize that the beloved IE8 browser is essentially what's paying my bills. IE9 as well. It is easy to make jokes about how bad the browser is (compared to the latest and greatest):
You can do these all day long; just hit up image search for "ie8 meme".
However, let's address this one:
Recently I discovered a rather interesting "issue" that all big ExtJS apps will hit eventually: the app will start "misbehaving" in a sense that very complex sections will sometimes render only partially and the UI will become unresponsive. This one will be extremely painful to figure out, as this is actually a result of a "silent failure" by the ExtJS layout system, due to a pre-emptive assumption of "if you're running too much layout, you probably did something wrong" by the framework. Read on for an easy fix...
A few weeks ago I was at SenchaCon 2015 and majority of the sessions I attended revolved around ExtJS6 and Sencha's responsive strategy. In summary: an effort has been made to converge ExtJS5 and Sencha Touch 2, but ultimately you will still be building a separate ExtJS and a separate Touch app. You do not end up with truly "one framework", which is what I hoped for. Read on for details...