What is an extension?
In the words of our CEO, “extensions are the cool stuff the bots can do”.
Extensions are different types of functionality which you can add into your apps. They are based off patterns of functionality which are commonly repeated in software products. Here at Codebots, we took note of these patterns and have recreated them within our bots so you can add them to your applications with far less effort.
If you think of you making an app like putting together a jigsaw puzzle (to stick with the example we used for What is a feature?), extensions are like a group of pieces which are already stuck together. They are super easy to put in, and though you sometimes might need some extra pieces to connect it, they can save you a bunch of effort in the long run.
You can choose if you want to use one extension, all of them, or never use one at all. It all depends on what you want to achieve and how you want to achieve it. Every extension is different, and the different bots (sometimes) offer different extensions.
Codebots extensions come with a lot of functionality out-of-the-box, but can also be customised by human developers. Some extensions, such as Forms and Workflows, may also need to be configured at run-time using the administration section of your application.
What is the difference between extensions and features?
Features are the functionality which is built into your application by default. They can’t be removed, though you can choose to not use them. Extensions are functionality which you need to deliberately choose to include in your application. Both of them can be augmented with custom code.
To understand extensions, you need to understand content reuse. Software developers aim to reuse code as much as possible. Consequently, extensions reuse code on the Codebots Platform.
Imagine for a moment that you write your first program and you need to write everything yourself from scratch. Later on, when you want to write another program you might find you can reuse bits of your first program. You can copy and paste the code, rather than writing it again. That is fine, provided you can keep the new program as organised and neat as the first program. The more programs you write, the more code you can reuse, and the faster you can complete each project. Then again, if you change one of the copied segments, you need to remember to go back and update the original. Maintenance becomes very difficult, very quickly.
Extensions allow you to reuse and share content. They are made from separate, modular blocks of code which represent one specific feature on a web application.
Extensions categorise program behaviour into clear and recognisable shapes and functions, keeping development neat. Some examples of recognisable extensions include forms for user research, timelines for tracking events and actions, and workflows for tracking the state of an object. All of these are available to be included in a Codebots application (depending on the codebot used).
When we create a new piece of functionality, and if we think it will be useful to reuse, we teach a codebot how to recreate that functionality by writing the code in a reusable module, and then let the codebots access those modules.
Using extensions for your own application.
If you want to get an idea of what extension are available to you, take a look in your Entity and Interface Diagrams, as different extensions get added in different ways.
In the Entity Diagram, you can see your available extensions by selecting an entity, and choosing the ‘Extension’ option from the floating toolbar. There you will see a list of extensions which can be added here. Clicking on the “Show Tips” button will show/hide more information about each extension.
In the Interface Diagram, the extensions are available as items which you can add to the page to get extra functionality. To see what items you have available, take a look at the Item menu on the left hand side of the diagram.
If you ever want to find out more about a extension, take a look in our Library (by searching for the extension name) or look for a qualification about it in our Academy. Some have qualifications which specify what it is, how to know when you need it, how to add it, and the most common ways you can customise it. Unfortunately, there is no easy, one-size-fits-all answer to how you can add and use a extension, as different extensions have different requirements.
How to know which extensions you can use.
When you are planning out an application, it can be very helpful to understand how your own requirements crossover with the extensions on offer so you can take advantage of the bots.
We have created a Extensions available on Codebots to help you recognise where you could use an extension to assist with your work. Not only is this process useful to help gain some visibility into potential implementation plans, but it can help you calculate how much Codebots will able to help your team develop. Alternatively, the extensions may give you ideas for new pieces of functionality which you may want to include (since it would be so easy to build them, why not?).
To best understand how to use and make the most of the extensions, we are working on a series of courses for all the available extensions. From Forms to Workflows, learn how to identify when it can be used, how to add it to your app, configure it to suit your needs, and how to customise it to take full advantage of its capabilities.