Disclaimer: I consult OutSystems in developer outreach. And while I enjoy money, I despise blatant marketing. And OutSystems hates phrases like, “blatant marketing,” go figure. ¯\_(ツ)_/¯
That’s why I wrote this piece from my perspective and my voice. And I published it on my personal account. If they discredited me as an independent agent and claim that my views do not express their own, that means this all went to shit and I’m out of the job.
I’ve been a native developer since I first started working with Android in 2011. Then PhoneGap came out and popularized the idea of hybrid apps. Soon after, “hybrid” became synonymous with “dumpster fire.” Using a hybrid app was like getting a sweater for Christmas: you thought you were getting an app but when you opened the box it was a God-damned sweater.
I swore I’d never work with hybrid apps. They didn’t run offline, and they were unbearably slow. Worst of all, they looked like real apps trapped in a Phantom Zone powered by Internet Explorer 6.
And three months ago, OutSystems waved cash in my face, begging me to review their product. I resisted for exactly zero seconds and threw all that dogma out the window. “Hybrid? Best thing since sliced bread, I’ve always said!” I’m a sucker for cash.
They wanted an honest opinion of their upcoming platform update from a native developer’s perspective — and I kicked the living sh*t out of it. More on that in another post, perhaps.
I came from a hands-on background. And I love, as most coders do, to get into the weeds and hack away at problems. But OutSystems is a “low-code” platform. I could’ve named three Kardashians sooner than telling you what the hell a low-code platform was — Kylie, Khloe, and Kim Jong-Un.
Exactly how low was this code? Was it depraved? Did it scurry off into the night and perform repulsive sexual acts? Was it willing to sell priceless family heirlooms just to pay off its gambling debt? No. Apparently, low-code referred to the amount of code you wrote, as in, low…
I learned how to build apps the OutSystems way: by dragging stuff and dropping it onto other stuff. And while I enjoyed my experience and the speed at which I could build things, I couldn’t shake the feeling that I was producing scum of the Earth hybrid apps, you know? Apps like this TechCrunch RSS reader:
I was surprised by how well OutSystems simplified, and at times annihilated boilerplate work. But one feature in particular won me over. After a long web-only preview process, I installed the tutorial application on my Android device.
And as I trudged through the next checkpoint of their developer course, I experienced something incredible. As soon as I committed new changes, the app updated itself.
This is known as hydration, a process originally coined by PhoneGap. Hydration updates the front-end mobile client much like we refresh a web page to see the latest changes. This meant that I could improve the experience without sending users a massive app update — and that’s a big f@#king deal.
It’s like recapping, but about crap. For those who aren’t familiar, publishing a mobile app to either primary portal is the opposite of fun.
Assuming you get past the Orwellian bureaucratic nightmare that is Apple’s signing certificates, you then submit your app to the App Store. Then you have to wait for the review process to complete. The quality assurance overlords take anywhere from days to weeks to review an application before giving it the green light. And this happens every. Time. You. Update.
On Google Play, you generate the signed APK and after you submit it, you wait anywhere between 30 minutes and 6 hours for your update to go live. Both delays suck, but Google’s is arguably preferable.
This delay was so business-critical to Zynga (my first employer) that each deploy went through meticulous testing for bugs and adherence to content policies. Botching an update was so costly, they couldn’t afford even one.
And to avoid screwing an update, Zynga, and many modern developers hide new features inside each release. On the surface, a user might read that the app update comes with “bug fixes.” But in reality, two to three new features sneak in along with it, Trojan Horse style.
And Zynga used remote configurations to enable these features dynamically. This allowed them to deactivate any feature that was causing more trouble than it was worth. And that’s how they avoided pushing builds out just to fix a critical bug.
But in situations where Zynga deployed an update that was FUBAR, they worked out a deal with Apple to get their fixes reviewed in record breaking time. How?
Apple provided Zynga a figurative handbrake that they could pull up to four times per year. Pulling this brake would move any update to the front of the review queue. And just like cutting the line for a kidney transplant, it was a dick move.
With an OutSystems-like tool, you can undo anything from a small text change to an entire flow with the click of a button. But this doesn’t work in all cases. For example, if your app needs new device permissions or you change its configuration (name/icon/etc.), users will have to perform a full update.
But in most situations, a hybrid PaaS crushes the fear of the update process into dust. Here’s a demo of the behavior with the same TechCrunch app. Did you notice how fugly those images looked? Watch me fix it:
OutSystems is an enterprise-grade software. They’re not exactly targeting the average Joe Schmo or Jane…Schmane? Platforms like PhoneGap, the Ionic framework, and others offer a similar benefit that’s more cost-effective.
But this experience piqued my interest in hybrid and gradually changed my opinion. Android runs WebViews faster than ever before, popular hybrid frameworks support offline, and some provide native API integrations.
With a spoon full of they-told-me-so, I concede that hybrid is no longer a “dumpster fire.” In fact, it’s moved pretty high up in my book. All the way up to “drunk octopus in roller-skates.”
If you want to tinker with the platform, the personal edition offers limited storage, but it’s free to use.