Extending 4D Applications
Overview
The 4D project architecture is open and can be extended in different ways. If you need a feature that is not available natively in 4D, you can always integrate it into your application in a variety of ways, i.e.:
- System workers allow the 4D code to call any external process (a shell command, PHP, any script, etc.) and monitor its execution.
- SQL commands allow you to connect and use various SQL data sources.
- The built-in HTTP client can request any HTTP server and process data.
- Web Areas can give access to web pages or various HTML contents within your forms.
- Components. Components are made of 4D code. 4D proposes a set of utility components (see below) that you can install and use depending on your needs. You can also develop your own 4D components, or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the
4d-component
topic). - Plug-ins. Plug-ins can be built using any language. Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in this page, you can develop your own plug-ins. A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the
4d-plugin
topic.
Components developed by 4D
4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the 4D github repository.
A subset of these components is listed by default in the Dependency Manager, including:
Component | Github repository | Description | Main Features |
---|---|---|---|
4D AIKit | https://github.com/4d/4D-AIKit | Set of classes to connect to third-party OpenAI APIs | OpenAIChat , OpenAIImage ... |
4D NetKit | https://github.com/4d/4D-NetKit | Set of web service tools to connect to third-party APIs | OAuth2Provider class, New OAuth2 provider , OAuth2ProviderObject.getToken() |
4D Progress | https://github.com/4d/4D-Progress | Open one or more progress bars in the same window | Progress New , Progress SET ON STOP METHOD , Progress SET PROGRESS , ... |
4D QPDF | https://github.com/4d/4D-QPDF | Extract attachments from PDF/A-3 files | PDF Get attachments |
4D SVG | https://github.com/4d/4D-SVG | Create and manipulate common svg graphic objects | SVGTool_Display_viewer , multiple SVG_ methods |
4D ViewPro | https://github.com/4d/4d-view-pro | Spreadsheet features in your forms | See 4D View Pro documentation |
4D Widgets | https://github.com/4d/4D-Widgets | Manage DatePicker, TimePicker, SearchPicker 4D widgets | DatePicker calendar , DateEntry area , TimeEntry , SearchPicker SET HELP TEXT , ... |
4D WritePro Interface | https://github.com/4d/4D-WritePro-Interface | Manage 4D Write Pro palettes and table wizard | WP PictureSettings , WP ShowTabPages , WP SwitchToolbar , WP UpdateWidget |
Build4D | https://github.com/4d-depot/Build4D | Compile, build, and sign projects | CI/CD |