jmiskovic / hexpress

Modern mobile music instrument
The Unlicense
95 stars 4 forks source link

[Feature request] Add the app to the F-Droid repo #10

Open Sitavi opened 3 years ago

Sitavi commented 3 years ago

Because I, and a lot of people, use F-Droid, it would be very nice to have the app directly in the F-Droid repo. I'm sure that the app will be more popular :)

Is there a technical limitation to that?

jmiskovic commented 3 years ago

Thanks for opening this issue. I would definitely be interested in F-Droid listing in spirit of open source.

I don't have experience with F-Droid, but when I looked into this some years ago it seemed too complicated to set up everything so that they can produce their own build from source. With the state of Android NDK I was barely able to make a local build through the ever-changing Android Studio. In the mean time the Love2D framework improved the Android building process, so this could be easier to accomplish now.

jmiskovic commented 3 years ago

Having read through the F-Droid integration process I see no bigger issues, just a moderate amount of effort to make it happen. The app ticks all F-Droid perquisites for inclusion.

The Hexpress repository currently only has Lua files and sound samples. The missing part is the love-android framework code, on top of which there are some trivial changes in manifest and gradle files (changing app name, icon and permissions). As first step the love-android source should be somehow integrated into Hexpress repository so that anybody can reproduce APK file.

Then all the F-Droid metadata should be developed and tested against local instance of F-Droid server. After it is working, the merge request is sent to F-Droid and they review the whole thing before making the app available on their store.

jmiskovic commented 3 months ago

Hexpress is on F-Droid

shuvashish76 commented 3 months ago

Currently it's available on IzzyOnDroid repository which is a third-party repo. The original request was for official F-Droid repo...please keep the issue open.

shuvashish76 commented 3 months ago

Hexpress is on F-Droid

As the size is now 63MB which is double of (IzzyOnDroid's size limit), I guess unfortunately @IzzySoft has to remove from his repo ‽😔

IzzySoft commented 3 months ago

What happened that blew up the size this much? It was 16 MB with the previous release. That's now 4 times the size of the previous release – and the release notes just say the new version "fixed a crash" (quite a huge fix I'd say :speak_no_evil:).

What @jmiskovic could do about it is providing per-ABI builds and we switch to armeabi (the smallest one) at IzzyOnDroid: native libraries are stored uncompressed in the APK, so dropping x86 (rarely used) plus arm64 (works on 64bit devices only) would save about 30 MB there (each of the two has 16 MB native libs currently; armeabi has 12 MB and works on all 32bit devices plus almost all 64bit ones).

jmiskovic commented 3 months ago

To fix the startup crash it was required to update the underlying framework love-android. They are the ones that put in the effort to support the ever-changing Android environment.

I've now made a few changes to their build process to test building only the armeabi-v7a. The APK file then comes down to 24Mb and the app function is not impacted, but on arm64 phone it runs with the ugly Android system message on startup: "This app isn't compatible with the latest version of Android. Check for an update or contact the app's developer."

@IzzySoft thanks for lib size investigation :heart: How do you select the file from the list in a GH release to use on IzzyOnDroid, is it automated? Would it be enough to use a file naming convention like hexpress-ARMv7-only-v41.apk and "hexpress-multiplatform-v41.apk" variants?

IzzySoft commented 3 months ago

thanks for lib size investigation ❤️

Gladly done!

How do you select the file from the list in a GH release to use on IzzyOnDroid, is it automated?

Yupp. Name a file RegEx pattern, and I can glue the updater to that. Like, /armeabi-v7a/i would do if that's part of your armeabi-v7a APK name. You tell me, I put it.

IzzySoft commented 2 months ago

Looks like something's wrong with your latest release. It's supposed to be versionCode 41, but…

package: name='com.castlewrath.hexpress' versionCode='33' versionName='12.0'

Not saying this to have you replace that APK (one should never do that for stuff already distributed) – but to take care with future ones. Thanks to the version mismatch, it self-removed before getting published here, so I had not to roll-back manually :see_no_evil:

That said, any ETA for the new split releases?

jmiskovic commented 2 months ago

Sorry for the trouble.

I'll try to make some time this week for the split, as well as two other small improvements lined up.

IzzySoft commented 2 months ago

Thanks a lot! Looking forward to your next ping then :smiley:

jmiskovic commented 2 months ago

@IzzySoft ping For the v42 release I've created per-ABI binaries, as well as the combined multiplatform APK.

With versions: app.version_code=42 app.version_name=0.42.0

IzzySoft commented 2 months ago

Thanks! Switched to the arm64 build for IzzyOnDroid and re-enabled daily update checks.

Btw: would you mind establishing Fastlane structures, so you can keep app description & graphics up-to-date and maintain how your app is presented? I can send you a PR with what's established here at IzzyOnDroid if you wish (or you can start your own from the scratch). The IzzyOnDroid Fastlane Documentation can be used for guidance.

Oh, and be welcome to pick a badge to link to Hexpress at IzzyOnDroid if you like :smiley:

licaon-kter commented 2 months ago

This depends on https://github.com/love2d/love-android/issues/220