Skip to main content
Version: Next

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:

ComponentGithub repositoryDescriptionMain Features
4D AIKithttps://github.com/4d/4D-AIKitSet of classes to connect to third-party OpenAI APIsOpenAIChat, OpenAIImage...
4D NetKithttps://github.com/4d/4D-NetKitSet of web service tools to connect to third-party APIsOAuth2Provider class, New OAuth2 provider, OAuth2ProviderObject.getToken()
4D Progresshttps://github.com/4d/4D-ProgressOpen one or more progress bars in the same windowProgress New, Progress SET ON STOP METHOD, Progress SET PROGRESS, ...
4D QPDFhttps://github.com/4d/4D-QPDFExtract attachments from PDF/A-3 filesPDF Get attachments
4D SVGhttps://github.com/4d/4D-SVGCreate and manipulate common svg graphic objectsSVGTool_Display_viewer, multiple SVG_ methods
4D ViewProhttps://github.com/4d/4d-view-proSpreadsheet features in your formsSee 4D View Pro documentation
4D Widgetshttps://github.com/4d/4D-WidgetsManage DatePicker, TimePicker, SearchPicker 4D widgetsDatePicker calendar, DateEntry area, TimeEntry, SearchPicker SET HELP TEXT, ...
4D WritePro Interfacehttps://github.com/4d/4D-WritePro-InterfaceManage 4D Write Pro palettes and table wizardWP PictureSettings, WP ShowTabPages, WP SwitchToolbar, WP UpdateWidget
Build4Dhttps://github.com/4d-depot/Build4DCompile, build, and sign projectsCI/CD