I haven’t posted anything on here in over a year, but boy have we been busy with some really, really fun stuff. It’s show and tell time…Today’s topic: Limits.
I’ve long believed that limits are a good thing. True in music, engineering, software, relationships, you name it. For me, it brings out the creativity in me. For example…I get a lot of request to build “apps”. When most people think of apps, their mind quickly goes to the app store. These are called Native Apps, meaning the code is compiled and uploaded to the Apple (or Android) servers where they are reviewed and (hopefully!) approved. I’ve never liked this model, mostly because you are hamstrung by the gatekeepers at the app stores for urgent bug fixes and whether or not they feel like approving your app or update.
So what do we do, instead, Mr. Cynical Code Monkey?
PWAs. Progressive Web Apps. Think of it as your mobile browser on steroids, and no need to ask permission (or forgiveness) from the Tyrranical (see what I did there?) Overseers and Overlords. Need access to the camera on your phone? How about the GPS? Easy, peasy, lemon squeezy. The only thing you can’t do (without some grey-market wizardry) is fetch user or device information from the phone or tablet. Instead, you can just politely ask for it, like in a web form.
I recently built a number of connected applications for a new startup called Kustomine. The idea was really pretty smart:
Capture customer data into a custom CRM solution for better email and SMS outreach and reporting for an industry that has been historically pretty bad about staying in contact with customers.
There were some fun challenges along the way, most notably the idea of integrating with some legacy applications that aren’t exactly friendly to “outsider” apps looking to sniff their data. Kustomine’s founder had some brilliant insight and made the following observation:
“Why does our app need to be a client of <difficult vendor’s> data? Couldn’t they be a client of our data?”
Well raise my rent. Turns out we could be the first point of customer contact and feed our data into theirs. Changed the whole game. Rather than fight with authentication schemes, paying for access to their API and Head-desking for hours trying to sort out their access rules, we just said…yeah, no thanks. We’ll send our data to them, paying careful attention to an industry-standard format that they gleefully accept (according to their documentation). Game, set, match.
Had their not been this limitation, who knows how long we would have spent trying to come up with the “right” way to play nice with an unfriendly vendor?
Limits are good things, sometimes.
Here’s the data flow we decided on once we moved our app to the front of the line…
It’s certainly an interesting time to be a code-monkey. Everything is connected. Everything is insecure. It’s just a matter of how bad some bad actor wants access to your data. Hell, I can remember a time even recently where personal computers didn’t even use passwords. The hellspawn iPhone didn’t have a passcode lock at first. It only took a New York minute to figure out why that was a bad idea once they launched the App Store. But I digress.
I’m all over the place here, but I do have a point. Limits can be a good thing. Ask George Martin…The Beatles recorded the White Album on 4 (and yes, subsequently 8) tracks. Talk about pushing boundaries and necessity being the mother of invention.
Limits work great for directing your users to only what is important as well. Dare I say, the browser is the operating system for most modern applications. Any web developer will tell you that the back button is a great invention, but has led to sleepless nights, code refactoring, rethinking one’s career path and questionable coding practices (not necessarily in that order). A PWA will hide all that stuff. Bare-bones browser. Back-end code, Service workers and a RESTful API. What could be better?