xournalpp / xournalpp

Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.
https://xournalpp.github.io
GNU General Public License v2.0
11.26k stars 803 forks source link

GTK Android Backend #5892

Open Sposito opened 1 month ago

Sposito commented 1 month ago

Is Your Feature Request Related to a Problem?

Since Flutter thing seems pretty much dead in water by now, I was looking for alternatives when I stumbled upon this: Draft: Introducing new android backend

Feature Description

What I have in mind is exploring if with this new backend it would be possible to have a somewhat straightforward Android build directly from this code base. (Although I imagine some UI changes would make sense in a mobile app, my objective here is to have it "as is" on Android, at least for now.

Alternative Solutions

We do have the Flutter thing, but it always felt like its own separate thing anyway. If someone picks up where it was left maybe this proposal would become a double development burden, but since it has been a couple years since anything was pushed to that repo, I believe it is ok to conduct some exploratory work from my part. If by the time I have something worth of a PR the Flutter is being actively maintained again, I guess it would be worth considering it, otherwise we don't have much to loose.

Additional Context

As the very gtk merge request title suggests it is a WIP, but it seems interesting. I do have some free time, but I am still in the phase of getting used to the Xournal++ code base, I am no C++ programmer, but I am an ok C programmer (what may help with the GTK backend part?)

Anyway if any progress is made by my part I will make sure to post it here, for now I hope this Issue catch the attention of somebody else and hopefully I could get some help in the future.

bhennion commented 1 month ago

That's interesting. Note that since this backend is targetted for GDK4/GTK4, you will need to work from #5615 (which has its own bugs - see first post therein). The key question is how this new GDK4 backend handles touch and stylus input. If they are both detected properly, things should work fine (provided there is a c++17-compliant compiler for Android)