Flutter or Sky as it was firstly named, is Google’s SDK for cross platform development, not only mobile but cross all platform and devices smartphones, tablets, web, desktop, mac….
Flutter was released the first time on 2017, since then it gets more and more attentions and growing community
In this article we will not discuss technical aspects about Flutter or how to buid something, but rather we will focus on how flutter is taking development to a new level in terms of scalability and softening we will discuss also how Flutter can be good bargain for companies that seek growth
1- “Software package” in development
For companies especially who produce B2B solutions, acquiring new clients is the most important thing in the firm as well as keeping the old ones, so for them development time shouldn’t be an obstacle but contrary they need to offer an attractive offer with the minimum development time
The solution here is configurability, is to build a first system (web app, mobile app, backend, API…) in a way that can be reprogrammed rapidly and regenerate another similar system with all tweaks that they want without loosing the same amount of time they did the first time and with that they can acquire new clients as fast as possible.
But software packages for developers isn’t that easy and needs experience to do it in an efficient way.
In mobile apps for example, configurability can be concretized in the app theme, UI, features, app language, API endpoint but the app core needs to be the same (for example calculation, models, database, app architecture)
The most common example of software packages are ERPs
2- Benefits for companies
So what is the benefit for companies ?
Off course money!
Acquiring new clients, means new sells and closing deals and that’s business
Apart from money programmable apps can also be very beneficial in contesting with other companies, so they can find themselves ahead in the game, what other companies can build in months they can build it in a few weeks.
Other benefit from software package is once they have a stable system with efficient tweak system they don’t have to hire talents or experienced senior developers, junior developers can do the job tweaking some features and some themes in order to generate new app.
But there are some difficulties they have to face
To create an efficient configurable system, they need a team of senior developers to do the job not only that but this team needs to be fully dedicated to this project.
Alongside that they are gaining lots of time generating new projects for new clients, the first project will take more time than a normal project due to softening, it’s building a software package
3- How mobile apps can be programmable
Building apps using flutter can be as fast as possible, and that’s the main ingredient to build programmable mobile/web apps.
The idea that I’m trying to share with you here is not the only one, there’s bunch of methods to do that and it’s up to you to choose one of them.
The idea to build programmable projects consists on creating a private framework contains all the widgets that can be used then after integrating this framework into your project you can use any widget you want.
So the widgets will be built only one time and integrated in as many projects as you want, and any maintenance or update of this framework will be available to all projects.
In addition if all the projects share some common business logic, it can be developed in one framework and integrated as well.
Those frameworks can be hosted on pub.dev or on private repositories as well on Github/Gitlab.
And by this, developing new project will be much more easier and also doesn’t need any senior skills, but all the senior resources will maintain and create frameworks while junior devs will create apps, Just like a puzzle!
As I said before, this method is one of many, you can find other solutions and it’s up to you to choose what is better for your case.
In this part we discussed what are a programmable apps, how they can be beneficial for companies as well as for developers, and we see one of the methods that can be used to create programmable apps.
I hope you enjoyed this article and you have learned new information, in part 2 we will implement a simple app using this methodology.
Thanks for giving me your time!