Elements is a great solution for developing for the Android platform. All six Elements Languages can be used (and intermixed) to create Android applications, mixing the best of both worlds of the Java-based Android SDK and the CPU-naive Android NDK.
Elements code compiles to pure Java byte code (that is then post-processed using DEX or D8) to be all but indistinguishable from binaries created with the Oracle's Java compiler, Kotlin or other JVM languages. It can seamlessly interact with all parts of the Android ecosystem, just as referencing standard, third party and open source libraries available as .jar
, .aar
or as Gradle packages.
At the same time, Elements can also create COU-native NDK extensions, and provides sophisticated ways to make SDK and NDK code interact seamlessly. This lets you use your favorite language(s) for all parts of your app.
A Whole Toolchain
Elements provides a complete tool chain for Android development, from the coding environment to creating the deliverables.
Powerful development environments are included for both Mac and Windows, with our Fire and Water IDEs. Using these lightweight IDEs feels like a breath of fresh air in comparison to the heavy and bloated Java IDEs of Android Studio, Eclipse or IntelliJ.
The Elements build chain takes care of the entire build process – fast and easily. From compiling your code to catering Gradle references, processing resources, running DEX or D8, combining SDK code with native extensions, to assembling the final .apk
.
And our mixed-mode debugger lets you debug both your SDK and your NDK code at the same time.
Android SDK
Most Android apps are built using the Android SDK, which uses object oriented Java-based APIs top provide a rich development experience for the Android platform – from user interface design down to the lower-level inner workings of your app.
The Elements compiler fits in as the same level as javac
or kotlinc
, compiling to java byte code and directly interfacing with the standard Android and Java APIs available on the platform. You can create user interfaces In code our using standard XML layout files, which can be visually edited by syncing your project up with Android Studio do use the layout designer.
Android NDK
Traditionally, going from the Android SDK to the NDK required leaning a whole new skill set – new lower-level languages like C or C++, new tools, etc.
With Elements, no matter which of the five languages you chose to use for your SDK work, you can seamlessly apply your knowledge of them to the NDK, and write your NDK extensions in Oxygene, C#, Swift, Java or Go, as well.
Elements will also automatically take care of JNI boiler-plate code for you, making your native extensions available to your SDK code base almost automatically.
Share Code
These days, few Android apps exist in a vacuum – chances are you or your team are also providing an iOS version of your app, and/or maintain server-side code to help with the operation of your app.
Because Elements's platform coverage extends far beyond just the Android platform, Elements makes it easy to share large parts of your code base between Android, iOS, desktop apps and/or the server – all of course without sacrificing a platform-native user experience.
For example, you can use Elements for Cocoa to bring your Android code over or share it with iOS, iPadOS and macOS – whether it's existing Java code, or new code you write sign any of Elements' five languages. Or use Elements for .NET to build your server infrastructure or web app.