discuss-gnustep
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Android app using GNUstep


From: Umberto Cerrato
Subject: Re: Android app using GNUstep
Date: Mon, 12 Oct 2020 12:42:56 +0000

So cool!

> Il giorno 12 ott 2020, alle ore 14:35, Frederik Seiffert 
> <frederik@algoriddim.com> ha scritto:
> 
> Hi all,
> 
> I’m happy to share that we launched our app "djay" on Android using GNUstep:
> https://play.google.com/store/apps/details?id=com.algoriddim.djay_free
> 
> It’s using the Android toolchain scripts to cross-compile GNUstep and its 
> dependencies for Android:
> https://github.com/gnustep/tools-android
> 
> The basic setup is Clang with libobjc2 using the 2.0 runtime, GNUstep-Base 
> and libdispatch. Those components allow us to compile and run essentially all 
> of our existing non-UI / non-platform specific code for Android without 
> changes, which is multiple 100k LOC using ARC, on 4 ABIs (armeabi-v7a, 
> arm64-v8a, x86, x86_64). I’m still amazed how well it all works.
> 
> For the UI we went with Qt/QML, which turned out to be a great fit. Like 
> ObjC, Qt/QML is very dynamic at runtime, which enabled us to write some glue 
> code that lets us do two-way bindings between QML UI components and our ObjC 
> model using KVO/KVC. As the app is driven by Qt’s run loop, we’re driving 
> NSRunLoop and libdispatch from Qt, which is currently done by swizzling 
> NSRunLoop on launch.
> 
> We also wrote a Java-ObjC bridge that allows us to register ObjC blocks as 
> native callbacks from Java (using libffi via Mike Ash’s MABlockClosure). It 
> e.g. allows us to hook into the Android notification system and call ObjC 
> methods when the user triggers playback controls on the home screen.
> 
> It’s been a challenging but very rewarding project, and it’s also been great 
> to see how it improved our shared code base by forcing us to more strictly 
> separate platform-specific code. I’m also happy that we could make some 
> contributions to the GNUstep code base ourselves (67 PRs and counting ;)).
> 
> But most importantly we really could not have done it without the incredible 
> work and support from the GNUstep community, including Greg, David, Fred, 
> Richard, Niels, Ivan, and others. Thank you all for your help!
> 
> Frederik
> 
> 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]