Very cool!   Congrats!  Glad to see another android app on the play store built 
with gnustep!

Sent from my iPhone

> On Oct 12, 2020, at 11:53 AM, Gregory Casamento <[email protected]> 
> wrote:
> 
> 
> 
> Frederick,
> 
> Congratulations, I am glad we could be a part of it!
> 
> GC
> 
>> On Mon, Oct 12, 2020 at 8:59 AM Umberto Cerrato <[email protected]> 
>> wrote:
>> So cool!
>> 
>> > Il giorno 12 ott 2020, alle ore 14:35, Frederik Seiffert 
>> > <[email protected]> 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
>> > 
>> > 
> 
> 
> -- 
> Gregory Casamento
> GNUstep Lead Developer / OLC, Principal Consultant
> http://www.gnustep.org - http://heronsperch.blogspot.com
> https://www.patreon.com/bePatron?u=352392 - Become a Patron
> https://gf.me/u/x8m3sx - My GNUstep GoFundMe
> https://teespring.com/stores/gnustep - Store

Reply via email to