We’re building a telco that also happens to be an app, or, we're building an app that also happens to be a telco. Whichever way you look at it, everything you expect from your wireless provider needs to be inside our app. It's more than traditional telco self-care, it needs to do more than display usage, push bill notifications, and upsell shiny new phones. Our app needs to do it all.
Paradoxically, the app isn’t doing anything at all. The app is an interface, a window, a replacement for waiting on hold with a call centre or driving to the closest retail store to get a SIM card.
To build a telco we need a core network to manage the service, from provisioning to call switching, all the way through to counting how many ones and zeros flow in and out of your phone. We need a product catalogue for services and another one for accessories or other physical products. Databases of information to power machine learning, connections to partners who pack and ship things, links to systems that confirm product and service compatibility with your device.
None of that goes in the app, because that would be madness. Instead, we put a layer of microservices and micro applications between the app and the chaos. This microservices layer does the heavy lifting, it manages all the relationships, and when things update and change it handles that too.
Your app, well, it has one job - to give you control.
To make this a reality, we’ve decided to build the app using Flutter - Google’s UI toolkit for building beautiful, natively compiled applications from a single codebase.
Using Flutter means we can design a responsive, modern interface and code it once. From this, we can compile a native version for both Android and iOS. One codebase means we can iterate faster, build a consistent experience across devices, and make efficient use of development resources.
What do we give up? Well, Flutter is designed for coding a user interface - the beautiful and responsive part of the app that gives you control over your experience. There are some things it can’t do. If that thing is important enough, you’ll need to build some extra native code for both ecosystems.
What we don’t give up is the performance of a native application. Flutter is designed to accommodate the differences between Android and iOS when it splits the code base into two native applications. From scrolling to animations, everything has the buttery smooth performance you expect from apps built for your phone. Assuming your phone is already buttery smooth… we can’t make your phone faster.
Flutter is also free and open source. The community is fresh but growing, and smart developers around the world are creating time-saving widgets and plugins or sharing their elegant solutions to complex challenges.
When we first conceived of dotmobile, we imagined a mobile provider that was powered by the community. A service that didn’t discriminate based on your choice of phone. A company that was nimble, responsive, and built on modern technology.
Flutter is the perfect fit. We can’t wait to start sharing what we’re building with it.