These days I see a lot of confusion about all the different frameworks, libraries & services that are popping up everywhere at an ever-increasing rate.
In this post, I want to clarify some of the decisions you need to make based on the following diagram:
Let’s first consider the type of project you have (see arrow A at the bottom): is it mobile, web or desktop? Since a few years, it makes a lot of sense to use web technologies not only for browser based apps, but also for mobile & desktop applications. Why? These web technologies became mature enough for most of the use cases that you need to implement on any of these platforms. The biggest benefit is that you don’t need special skilled developers anymore for your mobile or desktop projects, instead you can reuse your team’s skills for the complete spectrum of devices.
There are of course still cases where you want to develop for the native platforms, but I would suggest to consider web technologies first.
So here are the 3 decisions you need to make:
1/ Backend service
Although it is not the focus of this post, it is a very important decision you need to make.
There are a lot of cloud-technologies you can choose from:
- Microsoft Azure
- Amazon Web Services
- Google / Firebase
- IBM Cloud
This is really a choice of where your expertise is or what your customer wants. We are doing for instance a lot of Azure developments at Da Vinci IT, but we can recommend Firebase for any project to get started very quickly.
More complex applications might even connect to different back-ends.
2/ UI infrastructure framework
We make a clear distinction here between the UI infrastructure & the UI skinning framework.
Now we will decide upon the UI infrastructure framework. Some examples are: Angular, React, vue.js.
This type of framework can/will provide you with:
- a certain method to split up your application in different components & modules (both graphical & non-graphical)
- a routing mechanism to navigate through your UI components
- specifications to setup services, html templates, events
- data binding to bind data between your html templates and your code
Generally, it is more focused on programming and less on html.
3/ UI skinning framework
The UI skinning framework will determine more the look & feel of your application. It will provide the layout and all the UI controls needed to build an application (text input, data input, menu’s, …).
Generally, it is more focused on html. Good examples are Bootstrap & Material Design.
It is not always possible to draw a clear line between the UI infrastructure & the UI skinning layers. The Ionic framework is a good example of this: it provides all controls to do the skinning of your application, but it also extends the Angular framework with extra functionalities on the infrastructure level.
We will make a top 3 of existing skinning frameworks in an upcoming post. Just be sure to select one that is actively maintained because a lot of these frameworks are started by a few fellows and suddenly abandoned.
When starting a new web or mobile project you will need to select a back-end service and a UI infrastructure & skinning framework. Be sure to select frameworks you feel comfortable with and that have broad support from the community!