drawpile / Drawpile

A collaborative drawing program
http://drawpile.net/
GNU General Public License v3.0
1.04k stars 131 forks source link

Help Wanted: Port to iOS/iPadOS #1095

Open Charmandrigo opened 1 year ago

Charmandrigo commented 1 year ago

Know this been said on the latest news post so it might be just a suggestion. If in theory Drawpile could be compiled on ipad, why not releasing it via other sideloading methods like on a AltStore repository or just an ipa file to sideload using that app? Certain clients of other apps apple would never accept like 4chan clients are on ios devices that way, at least that's one way. AltStore has commonly been used to load console emulators on ios devices and so.

askmeaboutlo0m commented 1 year ago

We don't currently have any developer who even owns an iOS device, so I don't know if that would be a feasible option or not. It would require a developer who has the required equipment, an Apple developer account (probably?) and is familiar with the material to even try it out.

askmeaboutlo0m commented 6 months ago

As of March 2024, EU users can install applications on iOS/iPadOS from other sources than the App Store. So it no longer requires "sideloading".

We'd still need someone that owns the necessary devices and is part of the Apple Developer Program to even try this though. The buy-in for Apple's ecosystem is very high.

askmeaboutlo0m commented 6 months ago

First step to getting this working would be to build a bare-bones Qt application for iOS and getting that running. I've made such an application over here: https://github.com/askmeaboutlo0m/barebones-qt-app

Instructions on how to get Qt going on iOS are here for Qt 5 and here for Qt 6. It's kind of a toss-up which one works better on which platform. I'd try 6 first anyway, since it's newer.

If that's working, other dependencies need to be built. You can look for example at the Emscripten setup.bash script for inspiration. It builds Qt for the host to be able to cross-compile, then for the target platform, then libzip, which is the only non-Qt dependency the browser has. Most of the Qt building logic is in that build-qt cmake script it calls.

Then Drawpile itself needs to be compiled. This part is something I can probably help with by borrowing a Mac and banging around on the CMake scripts, iOS like needs a bunch of special-cases, just like every other platform does too.

Once that's running, there'll probably be issues with asset loading, file handling and networking. Those just need to be dealt with as they are discovered, similar to Android and the browser.

MorrowShore commented 6 months ago

If you're an IOS developer and could perhaps experiment with this, consider joining the #drawpile channel on libera.chat or Drawpile's Discord server for real-time access to us.