On Friday, 2 June 2017 at 08:36:49 UTC, Dušan Pavkov wrote:
On Thursday, 1 June 2017 at 19:31:28 UTC, Joakim wrote:
The beta release of ldc 1.3, the llvm-based D compiler, is now
It is accompanied by a non-trivial sample app from the Android
NDK, ported from C++ to about 1.2 klocs of D: the classic Utah
Teapot (https://en.wikipedia.org/wiki/Utah_teapot), updated
with mobile touch controls. This app also demonstrates
calling Java functions from your D code through JNI, though
most of it is written in D.
There are two builds of ldc, a cross-compiler that you can use
from a linux/x64 shell to compile to Android/ARM, and a native
compiler that you can run on your Android device itself. As I
pointed out last year, not only is ldc a large mixed D/C++
codebase that just worked on ARM, but it is possible to build
arbitrarily large Android apps on your Android device itself,
a first for any mobile platform:
This is the way the next generation of coders will get into
coding, by tinkering with their Android devices like we did
with Macs and PCs decades ago, and D is one the few languages
that is already there.
I will write up instructions on how to write an Android app in
D _on_ your Android device by using ldc and the Termux app,
and get ldc into the Termux packages, a package repository for
Thanks for the post. I have tried to run apk on 2 devices:
1. LG-E440 phone with Android 4.1.2
2. Orange Pi Lite (development board with Allwinner H3 CPU)
On both devices there was only gray rectangle with "Teapot"
notification at the bottom for about a sec and then in upper
left corner the FPS info (around 60 on both devices), but
without any graphic. I have tried taping, dragging etc.
Are Android versions a problem or it could be something else?
Thanks in advance.
I'd guess that's the issue, as I haven't tested against those
older versions of Android and this app links against Android API
21, ie 5.0 Lollipop:
I'm pretty sure it'd work for your older Android versions if
built slightly differently, as I used to support back to Android
API 9 until a couple months ago:
It can be still made to so but I set API 21 as the minimum,
because anything older has been declining for some time now: