X-factor of ‘internal’ control library in RAD
It is always a dilemma whenever a new project starts when it comes to UI. The user interface is becoming a natural victim due to continuous change in requirements.
- Quality vs Performance
- RAD vs Flexibility
- Cost vs Risk
- Etc.
Although 3rd party control libraries are fast to integrate and help RAD but at the same time, it introduces risks like
- Performance concern
- Privacy concern
- Security concern
- Unpredictable
- Unintended consequences
- Lack of flexibility
On the other hand, developing control separately for each project have concerns related to
- Reinvent the Wheel
- Do More with Less Code
- Save Time — You Don’t Code Your Own OS, Do You?
- Chances Are, You aren’t The Expert
- Speed Thrills
- Impact on RAD
- Cost
Well, this is something we resolved with our internal control library.
Let’s talk about internal UI control library and its importance in RAD. One of the things which we really like to do in any development environment is to set up a library of UI controls that can be shared between all of the applications developed by the team. Developing an application with a control based or component based user interface provides us sustainable technical architecture, saving time and costs. It also ensures a consistent experience across an application. In the following discussion, we’ll emphasize on the importance of the control-based UI approach to development.
What is a “Control”?
First of all, one should need to know what Control is.
A control is a UI component which is business logic independent, standalone, highly reusable and configurable piece of software. This enables teams to develop UI interfaces very quickly and thus saving time and energy. Controls consists of number of options which allows developers to customize it as per their needs.
Now the most important thing is to understand the benefits of this approach because then only we can decide should we inherit control based approach in our development process or not. Following are the most important benefits of this approach –
1. Reusability and Flexibility
As discussed earlier also, Controls are standalone and business logic independent with number of options thus allows us to reuse them in future application development. This Control library can be used with different applications as every application needs controls like drop-downs, text inputs, search controls, check-boxes, radio buttons, buttons, date controls etc. Having your own control library allow you to easily tweak them as per your need and apply your changes in all of your applications in a single go.
2. Time and Cost Saving Approach
As we all know time is money and if any development approach allow us to accelerate the development of the application, it is the biggest plus of the approach. Control Based Development does the same as we can reuse the controls and this forces to follow same pattern in all over the application thus developer need not worry about the effect of the used control as it is already tested.
Suppose you need to implement a listing of users of an application. With the help of control library, you can easily implement it by simply using table control of the library by passing column data and user data to it and in return you will get all the functionalities which table control provides. Sample hierarchical table scenario could be as follows:
Also if a new requirement arises then a developer can focus on extending the existing control or creating new control which inherits old control. This optimizes the development ultimately expedites development because of higher rate of re-usability.
3. Consistent UI
It is very necessary for an application to provide a consistent user experience to the user. With the help of UI control library, we can easily achieve this consistency in UI because of high rate of reusability of the controls. If we are reusing any control so we are maintaining the same look and feel also maintaining the same user experiences and interactions. This makes an application highly interactive and usable without much challenges.
On development side, one can incorporate all UX standards in control library and by using this control library in the application, one can easily comply with UX standards across the application.
4. High Maintainability
In every application development, one of the challenges is to keep the code maintainable over the period of time and believe me it is not an easy job. Control driven development makes it easier.
Suppose you have a new requirement in a grid to have filter on columns and if you were using a grid control of control library, then it is easy to extend that control with new functionality and you will get this new functionality all over the application. You would not have to make changes wherever grid is implemented in the application. Also suppose you have a defect in the application, then you can easily resolve that if you were using UI control library.
In Control driven development, you can easily maintain your code as your code is divided into controls and every control has its specific set of properties.
At last I would like to say that the control-based UI approach enables you to develop highly interactive, highly maintainable and cost effective applications with less effort and worries. It also enhances the productivity and helps you to accelerate the whole development process.