PWAs...hang on, did time stand still and then loop back on itself?

Back in the day, I purchased one of these phones.  (Wow! was it really in 2013?...I suppose it must have been)  https://en.wikipedia.org/wiki/ZTE_Open
The cool thing about it at the time was, it wasn't Android, Apple or Microsoft.  It had it's own OS and had the potential to investigate "other options" for apps.  As it was backed by Firefox / Mozilla, it made sense that it was driven by the Web and more specifically, Web apps that run in web browsers.  Hey, that suited me fine, s'what I've been mostly doing since, well, since, for far too long.

Whilst I have no issue, when the need requires,  to code for a native Android java app, or flip my head the other way and code in Swift for an iOS device, it did kind of irk me that I had to start following the code religion camps again... it also conflicted that I wasn't focused on just coding for the device itself, but having to code for the server-side APIs and usually a web app that also offered the same functionality.

Now, maybe it's my issue and not other peoples (most likely), but when I want to make something pretty fast, I fall back onto what tools / coding languages that I can use to help with that and to me that's good old HTML, possibly some JavaScript Framework and some UI Framework too...

Back to the ZTE phone - to make an app for this, you basically built a web app that you could host, like any other web app, on a web server, you just needed to create a manifest file that would get downloaded and the phone would then create an "app icon" on the home screen and when you pressed it, it would load the web app just as you would from the web browser - there were some little tweaks you could do to start to make the web app more "mobile friendly" and it showed some great creative thinking..... it also handled local caching and the concept of "offline" usage too.  (Which raised my eyebrows back to the good old AvantGo days)

...then the Firefox OS and ZTE phone's went into decline and so did this novel approach to this progressive approach to web app creation for mobile devices.  The Android and iOS app stores then got flooded with millions of native apps and the common census was that was the way to go.
Tooling like Cordova was mocked by the purists on each platform (yawn), and no-one really wanted to work outside the "in crowd" (okay, maybe there was myself and quite a few others, but you get the idea - most people just follow the crowd of least resistance) .

Hey, I even built native Android Java apps for very high profile clients in San Francisco and native Swift iOS phone/tablet apps for major car manufacturers in Europe.  Sometimes, you just do what is needed and for both those occasions native was what was defined.  The amusing thing being, both projects then evolved to require a server-side nodeJS REST API component (JavaScript) and a matching web application (AngularJS & Bootstrap).  Now, those skills are complimentary, HTML/JavaScript/CSS and JavaScript again.... so we'd need more people involved and you know what happens when you add more people to the mix.... ;-)

Now, the above was back in mid-2016, early-2017.... (I haven't done much/any mobile apps, okay, I did a couple for some examples to demonstrate Watson APIs, but nothing major, just come simple 3hour coding apps).

Now, zoom forward to February 2018...and lo-&-behold I see this article:  What are Progressive Web Apps
and on the same day, I then get an invite to an Ionic 3 PWA YouTube live-stream...whoa?!what?...


Okay, having a bit of a read through, it seems like the early days have 'progressed' rather well and it looks like some sense is coming back to the world.

Google is even working on (and I seem to remember this from the "back in the day" era) a WebAPK app that converts your PWA to a native APK file to install as an app.

Apple is also allowing for adding PWA features into Safari....so it looks like the planets might finally be starting to align.


I also note that my favourite Mobile / Web app UI tool IONIC are going the way of the PWA:



As I was saying earlier, you had the mobile app developers who had to learn and become experts in a specific language and platform and all of it's oddities/quirks and they were able to make re-usable things which helped with speed of development and deployment..... but and here's the boring business-headed sided view of things.... what happens after that?
Well, you have the "now I must submit my app for review to the App store" cycle.  Where you have to wait for "them" to assess, review and possibly reject your app.  then it can appear on the "App store".
Then you do some more work and want to release an update (big or small), you have to go through the same cycle, time, cost & effort being munched up....
Then you realise that you need an urgent fix, you have to repeat the above.  There is NO guarantee that the end users will actually download your latest update and install it - I know that I quite often swipe "that way" and ignore the "you have 23 updates to install" on my phone.
You now have to support multiple versions of your app on multiple different device on the same platform and if you have decided to make apps for both platforms you need to manage all of the above...hmmm... starting to get rather expensive all this and for not a lot of return on benefit.

Whereas, back in the good old days when you had yourself a static web site, you could just FTP a set of new files and job done.  Then you morphed to a web app, that had some static but mostly dynamic content, you could update the content and boom, it was there, it was live.  If there was a structural change, you could release that on it's own and it was up to you to approve it.

Maybe, by going forward so quick, there is a realisation that you are now silo'd into 2 companies controlling the apps that get to the end users and you are now paying quite a lot of money to manage and maintain your apps to use these 2 companies to get out to your user base.  Did you really realise the lock-in that you were walking into?  Probably not.
Also, if you were to launch a new app today - you'd get buried inside millions of other apps and your target audience user might not ever get to you app because of all the noise.  They might know your URL (after all, wasn't that also the big thing before: "get your web domain, so everyone will know your brand and how to reach you" - that seemed to have been thrown out with the bath water).
Back "in the day", you could just make your web site/app, host it someplace, get traffic to it via different marketing methods and people just used it....you didn't need the overhead of "app stores"...  Revolution time, well, small/tiny revolt time...

As Ionic quite nicely put it, visit here as:


It seems to be the hipster thing to be doing....but like all hipster things, they are just those youngsters doing the thing that us oldsters were doing previously, but were told we were uncool, until now, when it is now cool....(oh, I don't know!?)  All I do know is that I'm sticking with PWA for 2018!




Yes, I'll probably do some article soon on making a PWA that calls Watson REST APIs from both the Desktop web browsers and Mobile browsers and see how to cater for both from different devices.  In fact, I'll probably start doing that in the evening this week, as I have a requirement for it.....

until then HEREs a walkthrough of taking an existing Ionic app and making it PWA.  (did someone say, service-worker.js?! more on that later!)


oh, and for the people who remember AvantGo....I find this little nod to the invention of AvantGo amusing:

Comments