My Android project nearing beta

Andre Pany andre at s-e-a-p.de
Thu Dec 19 11:48:21 UTC 2019


On Wednesday, 18 December 2019 at 19:57:43 UTC, Adam D. Ruppe 
wrote:
> On Tuesday, 17 December 2019 at 18:29:32 UTC, H. S. Teoh wrote:
>> Runtime initialization is now working, and you can create a 
>> Java VM
>
> I now have this tested and working on Windows and Linux.
>
>> - Method overloading;
>
> This is fixed in the newest commit too.
>
>
> ```D
> import arsd.jni;
>
> final class Test : JavaClass!("wtf", Test) {
>         @Import this();
> 	@Import void cool();
> }
>
> void main() {
> 	auto jvm = createJvm();
>
> 	auto h = new Test();
> 	h.cool();
> }
> ```
>
> ```Java
>
> package wtf;
>
> public class Test {
>         public native void test_();
>         void test() { test_(); }
>
>         void cool() {
>                 System.out.println("********* super cool 
> *******");
>         }
> }
> ```
>
>
> As you can see there, the D code uses the java class almost as 
> if it was native D. Overloads work now too as well as many 
> types in many places, but not all in all cases. Still a good 
> chunk of work to do but already super cool.
>
>
> I've gotta shift my attention to COM and .net for a little 
> while now though...


Thanks a lot for this fantastic work. I want to do s.th. similar
for Delphi (For developing windows, android and ios applications)
and your work gives me some good inspiration.

I wonder whether D could be enhanced in future to make the CRTP
idiom a little bit nicer:

   class JavaClass(string javaPackage, CRTP) : IJavaObject {}

   final class Hello : JavaClass!("", Hello) {}


It would be nice, if I could specify s.th. like that:

   class JavaClass(string javaPackage = "", CRTP = @child) : 
IJavaObject {}

then I could just say:

   final class Hello : JavaClass

Kind regards
André





More information about the Digitalmars-d-announce mailing list