Jump to page: 1 2 3
Thread overview
D for Android beta
Jun 01, 2017
Joakim
Jun 01, 2017
Ali Çehreli
Jun 02, 2017
Joakim
Aug 26, 2017
Joakim
Aug 30, 2017
Joakim
Sep 08, 2017
Joakim
Sep 08, 2017
kinke
Sep 10, 2017
thinwybk
Mar 19, 2018
Joakim
Jun 01, 2017
Johan Engelen
Jun 02, 2017
Laeeth Isharc
Jun 04, 2017
Joakim
Jun 02, 2017
Guillaume Piolat
Jun 02, 2017
Dušan Pavkov
Jun 02, 2017
Joakim
Jun 02, 2017
Joakim
Jun 02, 2017
Joakim
Jun 19, 2017
vondes
Jun 02, 2017
Joakim
Jun 02, 2017
Jonathan M Davis
Jun 11, 2017
Joakim
Jun 11, 2017
Joakim
June 01, 2017
The beta release of ldc 1.3, the llvm-based D compiler, is now out:

https://github.com/joakim-noah/android/releases

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:

http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org

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 Android:

https://play.google.com/store/apps/details?id=com.termux&hl=en
June 01, 2017
Very exciting! :)

On 06/01/2017 12:31 PM, Joakim wrote:

> I will write up instructions on how to write an Android app in D _on_
> your Android device

I hope it will be detailed enough for people who are very new to programming on the Android.

Ali

June 01, 2017
On Thursday, 1 June 2017 at 19:31:28 UTC, Joakim wrote:
> [awesome text]

This is great stuff Joakim!
It's very nice to see your detailed release notes, with links to the patches. Hope we can get much of that into LDC master soon.

Cheers,
  Johan

June 02, 2017
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 out:
>
> https://github.com/joakim-noah/android/releases
>
> 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:
>
> http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org
>
> 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 Android:
>
> https://play.google.com/store/apps/details?id=com.termux&hl=en

Congratulations, Joakim!
https://www.reddit.com/r/programming/comments/6eqv46/write_mixed_dc_android_apps_even_build_them/
and news.ycombinator.com

Looking forward to termux.


June 02, 2017
On Thursday, 1 June 2017 at 19:31:28 UTC, Joakim wrote:
> 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.
>

Fantastic news, congrats!
June 02, 2017
On Thursday, 1 June 2017 at 19:45:17 UTC, Ali Çehreli wrote:
> Very exciting! :)
+1!
>
> On 06/01/2017 12:31 PM, Joakim wrote:
>
> > I will write up instructions on how to write an Android app
> in D _on_
> > your Android device
>
> I hope it will be detailed enough for people who are very new to programming on the Android.

Me too :D
mt.


June 02, 2017
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 out:
>
> https://github.com/joakim-noah/android/releases
>
> 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:
>
> http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org
>
> 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 Android:
>
> https://play.google.com/store/apps/details?id=com.termux&hl=en

Hello,

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) Android 4.4.2

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.


June 02, 2017
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 out:
>>
>> https://github.com/joakim-noah/android/releases
>>
>> 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:
>>
>> http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org
>>
>> 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 Android:
>>
>> https://play.google.com/store/apps/details?id=com.termux&hl=en
>
> Hello,
>
> 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) Android 4.4.2
>
> 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:

https://github.com/joakim-noah/android/blob/master/samples/Teapot/build-apk#L17

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:

https://gist.github.com/joakim-noah/f475b0be37b3834b4e50d68996b6ee1d#file-ldc_1-1-0_android_arm-L3438

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:

http://blog.davidecoppola.com/2016/12/android-version-distribution-history-visualization-2012-2016/
June 02, 2017
On Friday, 2 June 2017 at 08:58:01 UTC, Joakim wrote:
> 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 out:
>>>
>>> https://github.com/joakim-noah/android/releases
>>>
>>> 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:
>>>
>>> http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org
>>>
>>> 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 Android:
>>>
>>> https://play.google.com/store/apps/details?id=com.termux&hl=en
>>
>> Hello,
>>
>> 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) Android 4.4.2
>>
>> 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:
>
> https://github.com/joakim-noah/android/blob/master/samples/Teapot/build-apk#L17
>
> 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:
>
> https://gist.github.com/joakim-noah/f475b0be37b3834b4e50d68996b6ee1d#file-ldc_1-1-0_android_arm-L3438
>
> 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:
>
> http://blog.davidecoppola.com/2016/12/android-version-distribution-history-visualization-2012-2016/

Just FYI, I have the same issue with Android 6.0.1.
June 02, 2017
On Friday, 2 June 2017 at 08:58:01 UTC, Joakim wrote:
> 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 out:
>>>
>>> https://github.com/joakim-noah/android/releases
>>>
>>> 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:
>>>
>>> http://forum.dlang.org/thread/ovkhtsdzlfzqrqneolyv@forum.dlang.org
>>>
>>> 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 Android:
>>>
>>> https://play.google.com/store/apps/details?id=com.termux&hl=en
>>
>> Hello,
>>
>> 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) Android 4.4.2
>>
>> 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:
>
> https://github.com/joakim-noah/android/blob/master/samples/Teapot/build-apk#L17
>
> 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:
>
> https://gist.github.com/joakim-noah/f475b0be37b3834b4e50d68996b6ee1d#file-ldc_1-1-0_android_arm-L3438
>
> 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:
>
> http://blog.davidecoppola.com/2016/12/android-version-distribution-history-visualization-2012-2016/

I investigated this a little, as I remembered that I have an old Android 4.4 Kitkat tablet lying around.  I am able to reproduce the grey screen, with no teapot.

I tried recompiling and linking the native D portion of the app against API 9, but noticed that the resulting native D library was exactly the same, with the same SHA hash.  Then I remembered that I built the small Java portion of the app against API 21 also.  My guess is that is what is causing the problem, since the Java source has to do a bit of setup so that both the Java and D code can share the UI:

https://github.com/joakim-noah/android/blob/master/samples/Teapot/src/com/sample/teapot/TeapotNativeActivity.java

This is needed because this sample app demonstrates using JNI to call the Java functions showUI and updateFPS, to send the framerate from D to the Java functions to display at the top left.

I will note the Android 5.0 requirement on the release, thanks for reporting.
« First   ‹ Prev
1 2 3