Platforms

The Elements compiler supports building (compiling) projects for several different platforms.

Since Elements' main focus is to leverage the existing platforms it supports, it does not come with an extensive runtime library, class framework or a "platform" of its own – in contrast to many other "cross-platform" development tools that try to abstract platform differences under a new meta-platform.

When using Elements on .NET, Cocoa, Android and Java, the class libraries you work with are those provided by the platform vendor, as well as any free, open source or commercial third-party libraries available for the platform (RemObjects Software even creates some of those as well, independent of Elements). On the lower-level native target, you work directly against the low-level platform APIs (such as the Win32/Win64 API, or the core Linux/Unix "C" APIs), and Elements' own core RTL.

The following links dive into detail on each of the supported platforms (or platform groups):

.NET, including ASP.NET, .NET Core, and Mono

Build managed projects that can run on the Common Language Runtime (CLR), including the "full" Microsoft .NET Framework, ASP.NET, .NET Core, Silverlight, Universal Windows projects and Mono/Xamarin. It is a great platform for building Windows GUI applications, as well as cross-platform servers and command line tools.

Cocoa, for Apple's macOS, iOS, iPadOS, tvOS and watchOS

Build native applications for the Apple platforms, using the high-level Cocoa APIs and Frameworks such as AppKit or UIKit. It is the recommended target for building apps for macOS, iOS, iPadOS, tvOS and watchOS, and can also be used for building macOS command line tools and other projects.

Android, both SDK and NDK

Build applications for the Android platform, with access to both the regular Android SDK as well as the Android NDK for native extensions.

Java

Build projects that compile to Java byte code and can run anywhere that the Java Virtual Machine (JVM) is supported, including Java SE, Java EE and the OpenJDK.

Windows (native)

Build CPU-native Windows projects against the Win32 API. — Supports 64-bit (x64) and 32-bit (i386) Windows.

Linux (native)

Build CPU-native Linux projects against the Linux/POSIX APIs mdash; Supports 64-bit Intel (x64_64) and both 32-bit and 64-bit ARM (armv6, aarch64).

WebAssembly

Build WebAssembly modules that can run in the browser and interact with JavaScript code and the HTML DOM.

Cross-Platform Development

Elements supports many platforms, but it is decidedly focused on creating apps for multiple platforms, not single one-size-fits-all cross-platform apps. The following links dive into this distinction and cross-platform development considerations in general: