Building Powow from scratch in 4 weeks
Using cross platform frameworks to push out iOS/Android MVP
About 2 months back, we started building Powow apps for Android & iOS with near-zero knowledge of Mobile development ecosystem to bring it to life. After several iterations, App store reviews and few beta users over next few weeks, this is the current state of app. Continue along for how.
After some consideration rather than going native from get go, we leaned towards hybrid app development.
Considerations:
- Move fast and make things
Given one barely knows the users behaviour and product direction in the start, it makes sense to us in pushing out product in real world rather than making the perfect masterpiece when running against time. - Wide range of devices
People use apps from various devices with wide range of orientations, configurations and sizes. Rather than handling the quirks of different OEMs, need something that abstracts hardware layer. - Wide variety of Operating Systems
Android, iOS, Windows etc. Rather than digging into n different platform docs, need something that abstracts OS layer quirks regarding access to lifecycle, settings, permissions, sensors, network etc. - Powerful performant devices
Although native apps have advantage in user experience, transitions and performance (as of now), smartphones are getting performant by day indicating it’s just a matter of time when they catchup fully. - Great existing web ecosystem
Having had built lots of backend systems and familiar with web development ecosystem, where innovations are accelerating on daily basis waiting to be ported for mobile platforms, makes it preferable.
Application stack
Operating Systems
We shortlisted support down to iOS/Android. Given, these two combined capture majority of devices, cover both price ends of market and are leaders in terms of early adapters, making it a decent hypothesis.
Frameworks
After comparing wide range of cross platform mobile frameworks, we narrowed down to the current set of tools after accounting for Open Source systems, existing active development, breadth of tools around them.
- Ionic
Ionic fits in appropriately for handling UI looks, feels & interactions for the app. It provides icon pack, live device reloading, platform specific layouts, command line tools right out of box.
It also comes with a SaaS platform, that allows us to prototype early versions of the app to generate code and app analytics at later stages. - AngularJS
Angular handles application logic, data binding, server communications. It provides powerful UI interactions, gestures, animations, and other things to make life easier. - Apache Cordova
Cordova deals with native APIs, platform customisations & packaging of apps for native environment. Cordova plugins provide interfaces to almost all the native device apis on heterogeneous set of platforms.
Although, these libraries & frameworks provide all the major drop-in functionalities, they are readily amenable to customisation for your brand. Need to tweak a display for iOS, transitions for Android, Custom connection manger, just override the default behaviour and voila.
Languages
All the familiar tools of web readily available for perusal.
- HTML
Use for creating markups, structures and layouts. - CSS
Use vanilla CSS or SASS for tweaking layouts, designs & customisations. - Javascript
Use JS or ES6 for controlling the interactions.
Along with these, all the cutting edge goodness is readily available while building your apps. Bower for frontend package management, Gulp for automating tasks work just great with the overall stack.
To see all Powow tech stack components, check us out on AngelList.
In case you have any suggestions / feedbacks / reviews, please reach us out at hey@powow.info, we would love to hear from you.