More than 2 years ago, I created a lightweight point of sale system (POS) for our restaurant in Jalandhar called SkewerSpot (SS). I wrote the thing in under a week (cowboy coding, yodlee yodlee youdoo) in Ionic/Angular. Essentially, it’s a collection of hybrid mobile apps that allows a restaurant to manage orders in real-time via Firebase. The 3 apps in this collection are:
SS Menu — to take orders
SS Orders — to manage orders
SS Stats — to view sales data
Nothing too complicated. The thing has been running quite reliably since 2.5 years. So why the rewrite?
Recently, Dad asked me to change a few things in SS Menu. When I got to working on the changes, I realized that my Ionic tooling had somehow become broken. I just couldn’t create new builds. I left it as is and informed Dad I didn’t have sufficient time to fix things around. But he insisted. So much that I finally decided to just rewrite the entire thing in a more modern mobile SDK — Flutter.
I donned my cowboy hat again and sat down to create the menu app from scratch using a skill I had just recently acquired. I think I was able to spit out a functional version of the app in 4-5 non-contiguous days. Creating in Flutter is such a blissful experience. I loved every bit of it.
Flutter makes it infinitely easy to create 100% custom interfaces inspired by designs at Dribbble. You are never crippled by the difficulty of customizing platform’s underlying UI controls. You are always in the driver’s seat.
— Me, after having created several Flutter apps based on designs at Dribbble
Unlike the last time, I created the app from day 1 with open-sourcing in mind. I also made sure that my git history was readable enough to help others starting in the world of Flutter learn quickly from my development experience.
But due to a lack of time, I had to make certain trade-offs: the code lacks automated tests, i18n, l10n and accessibility options. There’s also no iOS version as of now. What a bummer!
Check out the code and more details about the app on GitHub:
It’s getting serious everyday. It’s not just the internet, a lot of people around me are talking about it. So, it did not come as a surprise when I found that a popular Indian app was built in Flutter. Dream11 is what people are talking about this IPL season. Given the massive fan following of IPL and the craze for safe online betting, one thing is sure — Flutter can damn well handle scalability. I do not use the app myself, but it sure looks pretty on friends’ phones.
I am getting more and more impatient now to build my next mobile app in Flutter. Until that happens and I have stories to tell about my time with Flutter, watch Dream11’s Flutter story:
You have no doubt heard of Progressive Web Apps by now, PWA for short, haven’t you? No? That’s okay. The thing is still pretty new.
Although the concept is not entirely unique, recent advances in web standards & technologies have now made it possible to create mobile-first web apps that work equally well on desktops web apps that look good & consistent on different devices and that can “progressively” use additional underlying features in a device. Still don’t get what’s new?
Google presented the concept in its I/O developers’ conference earlier this year. As per Google:
A Progressive Web App uses modern web capabilities to deliver an app-like user experience.
I had been hearing about the hype since a few months but didn’t care much to explore it in detail. Up until Ionic, my favorite mobile app SDK, made their PWA support official.
I think it’s a smart move by Ionic to include PWA support. Until now, Ionic apps were too mobile-ish to be used as web apps. PWA support is an important update to an already great mobile SDK, and I hope this changes many things for the good.
Today, creating a new app essentially means (a) creating a solid backend API (b) creating client apps for various popular platforms (Android, iOS, etc.), and (c) optionally, creating a complementary web app for the desktop. PWA could be a game changer as it takes care of both (b) and (c) in a single development cycle.
While browsing the Google developer website, I stumbled across a very interesting case study for PWA.
Flipkart, India’s largest e-commerce site, decided to combine their web presence and native app into a Progressive Web Application that has resulted in a 70% increase in conversions.
In 2015, Flipkart, India’s largest e-commerce site, adopted an app-only strategy and temporarily shut down their mobile website. The company found it harder and harder to provide a user experience that was as fast and engaging as that of their mobile app. But then, Flipkart decided to rethink their development approach. They were drawn back to the mobile web by the introduction of features that made the mobile web run instantly, work offline, and re-engage users.
Yep, going app-only was a really stupid move by Flipkart. Thank God sense prevailed.