Butterfly icon indicating copy to clipboard operation
Butterfly copied to clipboard

[Feature request]: Stabilize iOS support

Open attzonko opened this issue 1 year ago • 45 comments

Update

Initial iOS support was merged. Download here! Click here to get to the latest update.


Is your feature request related to a problem? Please describe

No response

Describe your feature request!

Amazing work! Do you have any plans to add an iOS app and support using the Apple Pencil? If not would you consider it?

Additional context

No response

Code of Conduct

  • [X] I agree to follow this project's Code of Conduct

attzonko avatar Aug 09 '22 14:08 attzonko

Hello,

iOS and Mac support (#191) are planned. But unlike mac, you need an apple developer account to get apps on the iPhone. For android you don't need to register and if you want you only need to play 15$ once. On apple you need to pay 99$ yearly. I can't afford this. Do you have any other ideas how I can do this without paying this yearly?

CodeDoctorDE avatar Aug 09 '22 14:08 CodeDoctorDE

For now you can use the web version: https://butterfly.linwood.dev It has the same functionality and you can use it offline.

CodeDoctorDE avatar Aug 09 '22 17:08 CodeDoctorDE

Hello,

iOS and Mac support (#191) are planned.

But unlike mac, you need an apple developer account to get apps on the iPhone.

For android you don't need to register and if you want you only need to play 15$ once.

On apple you need to pay 99$ yearly. I can't afford this.

Do you have any other ideas how I can do this without paying this yearly?

Maybe with Patreon? Or just Support via PayPal, BuyMeACoffe etc.?

MrDrache333 avatar Aug 14 '22 09:08 MrDrache333

That's planned. But I don't know if I'll make a minus financially then. It needs to pay yearly and if I want to have a partreon/paypal, I want to have some money for me. Additionally I need to buy a mac to test it and look if everything works. And a mac costs more than 1000€ https://www.apple.com/de/mac/ Additionally the web version has all features as the native version and I can test it on my linux/windows device. Safari has also the feature to let it run offline: https://caniuse.com/?search=service%20worker.

CodeDoctorDE avatar Aug 14 '22 09:08 CodeDoctorDE

That's planned. But I don't know if I'll make a minus financially then. It needs to pay yearly and if I want to have a partreon/paypal, I want to have some money for me. Additionally I need to buy a mac to test it and look if everything works. And a mac costs more than 1000€ https://www.apple.com/de/mac/

Additionally the web version has all features as the native version and I can test it on my linux/windows device. Safari has also the feature to let it run offline: https://caniuse.com/?search=service%20worker.

For an affordable Mac take a look at scaleway.com. There you're able to rent a mac mini for a couple of euros per month. I've used it for some time and it works perfectly 😄👍🏻 And it's definitely cheaper then buying a mac yourself 😄

MrDrache333 avatar Aug 14 '22 09:08 MrDrache333

Does the web version work with the Pencil?

attzonko avatar Aug 15 '22 16:08 attzonko

Should be, you can try it. I tested it on windows and linux and it works fine

CodeDoctorDE avatar Aug 15 '22 16:08 CodeDoctorDE

Please let it open that other users can find it too

CodeDoctorDE avatar Aug 25 '22 05:08 CodeDoctorDE

I bought an iPad to install this app.

I thought that Apple App Store, like Google Play Store, only takes money from developers once, but now that I understand, I don't want to use it anymore.

Apple's store system is very bad and causes no free or open source apps to be made for iOS.

I hope that in the next version of iPadOS (iOS) it will be possible to sideload apps.

(Sorry for my bad English)

xmha97 avatar May 19 '23 19:05 xmha97

Oh yeah. In europe ios needs to be able to sideload apps. I hope I can add support for ios after that

CodeDoctorDE avatar May 19 '23 19:05 CodeDoctorDE

You can run MacOS in a VM on Proxmox.

thomastthai avatar Dec 18 '23 08:12 thomastthai

I tried it but I didnt get metal to work and flutter currently only supports metal

CodeDoctorDE avatar Dec 18 '23 09:12 CodeDoctorDE

Temporary solution, downgrade Flutter to the last working version until they fix the situation. That atleast gets you going.

thomastthai avatar Dec 18 '23 17:12 thomastthai

Hmm, I don't know if this is worth my time. Apple puts a thousand hurdles in front of me and I don't know how I can get it running. Downgrading doesn't help because I'm using the latest features of flutter and I don't know where they introduced it. The web version is one solution for ios users that wants to use my app. I'm open for any prs that fixes it

CodeDoctorDE avatar Dec 18 '23 17:12 CodeDoctorDE

Sorry, Apple's wall garden sucks.

thomastthai avatar Dec 18 '23 17:12 thomastthai

Sorry for the bad updates, but... Apple is making bad decisions to comply to the eu regulations... https://www.youtube.com/watch?v=cVEbxpOE13s I won't pay a runtime fee for a free app

CodeDoctorDE avatar Jan 27 '24 08:01 CodeDoctorDE

I wished those people who buy Apple products realize the corporate behaviors they are supporting. It comes down to greed.

I need to buy a Mac Mini or MacBook Air to develop an app. Not looking forward to paying $100/year on top of 15-30% Apple tax.

thomastthai avatar Jan 27 '24 16:01 thomastthai

If you own a mac and an Apple ID you can develop for iOS (without paying anything), just not distribute the app using the appstore. It is sufficient to log in to developer.apple.com once and accept the terms. distributing an ipa isn't that uncommon for projects that simply aren't allowed on the app store (UTMapp is an example). The issue I see with app store distribution is (apart from apples bs with their fees) the license, afaik gplv3 (and therefore agplv3) are fundamentally incompatible with apples terms

fritzlb avatar Feb 08 '24 20:02 fritzlb

Hmm, I wouldn't change the license, I like the license for a end user application. And I wouldn't pay money for a platform where I don't know any device. I heard the app needs to be also verified and signed if you distribute it with a file?

CodeDoctorDE avatar Feb 08 '24 21:02 CodeDoctorDE

Yesn‘t. You can (with apples new terms and runtime fees) get the app signed and then everyone can sideload it using an alternative App Store, but that’s not what I meant. Everyone with an Apple ID can sideload up to 3 apps to their devices, but the certificates do expire after about a week or so. There are tools like sideloadly or AltStore that run on a pc in your local network and automatically refresh the app certificates once in a while. So in theory it would be possible to distribute an unsigned ipa file and everyone who‘d like to install it has to sign it themselves - either with a paid dev account, then the certs last one year or with a free account, then they‘ll have to renew every week. Still not nice what Apple does to their developers

fritzlb avatar Feb 09 '24 07:02 fritzlb

Hmm, very developer and user friendly... I think I need to add a guide to the documentation to explain this. If I have this ipa, should I simply add it to the downloads? If you are a bit familiar with this, it would be nice if you could create a pr for this. The build.yml needs to have a new build-ios step.

CodeDoctorDE avatar Feb 09 '24 09:02 CodeDoctorDE

Yeah I can probably do that, might take a while bc of my university exams though

fritzlb avatar Feb 09 '24 14:02 fritzlb

No problem. There is no hurry. I assigned you to this issue so I can see that's your issue

CodeDoctorDE avatar Feb 09 '24 14:02 CodeDoctorDE

Okay, the ipa does build in my fork. It's not pretty (yet) and the app is quite large, by setting the minimum ios version to something like 14.4+ we could probably get our file size down from ~90mb to ~30mb.

fritzlb avatar Feb 09 '24 19:02 fritzlb

Wow that's wonderful. Can you test if everything works fine on it? 90mb is really quite large but removing an 3 year old operating version isn't good. I'm also supporting windows 7 and android 5. How about releasing 2 binaries: one smaller with 14.4+ requirement and one for older devices? You could solve this for example by creating a script in app/scripts and replacing it with higher requirements

CodeDoctorDE avatar Feb 09 '24 20:02 CodeDoctorDE

for some reason compiling locally reduces file sizes by a lot for me, with the right settings (14.4+) I got the file size down to 16mb, while compiling using github actions creates files with ~80mb. two binaries would be an option, idk how xcode stores the minimum ios version and idk either how to change it with a script or sth. anyway... the app needs a lot of work before ios becomes usable, importing packages is impossible, trying to use the camera will result in a crash, including images doesn't work, ... maybe a dependency isn't compatible with ios or requires a newer minimum version? also the build number isn't the app version number right now

fritzlb avatar Feb 09 '24 22:02 fritzlb

I commented on this issue. Can you look if the min requirements are at iOS if it is set to iOS 12? Also to work with imports, we need to add Uniform Type Identifiers to all XTypeGroups (you can search for this in the code. If you are familiar with this you can add this in your pr, otherwise I will try adding it after that

CodeDoctorDE avatar Feb 10 '24 08:02 CodeDoctorDE

Update 2024-02-10:

Initial iOS support was merged. It will be available in nightly versions starting with 2.0.3-rc.1! I renamed this issue to better reflect the current state. Please report all iOS problems here. I will post updates here to the current status. After stabilizing, this issue will get closed and all issues should be reported as normal issue. Known issues:

  • Exporting document, images and svg does not work

CodeDoctorDE avatar Feb 10 '24 18:02 CodeDoctorDE

Just tested the build, works beautifully so far! As for the camera thing simply adding the camera permission nscamerausagedescription to info.plist doesn‘t change anything except that the apps asks for camera permissions before crashing Also export seems to be broken

fritzlb avatar Feb 10 '24 18:02 fritzlb

It should already be fixed in the latest commit. Can you test it and maybe debug it? Here is a guide for this: https://docs.flutter.dev/tools/vs-code#run-app-with-breakpoints, https://docs.flutter.dev/platform-integration/ios/ios-debugging or maybe it works with xcode?

CodeDoctorDE avatar Feb 10 '24 18:02 CodeDoctorDE