bauerj / paperless_app

An Android/iOS app for Paperless
https://play.google.com/store/apps/details?id=eu.bauerj.paperless_app
GNU General Public License v3.0
523 stars 45 forks source link

iOS support #54

Open bauerj opened 2 years ago

bauerj commented 2 years ago

An iOS version is currently in development.

If you would like to test, you can find it on testflight: https://testflight.apple.com/join/ToncPdxU

Please open a new issue if you find a bug in the iOS version.

If you would like to help developing, please let us know here. The current progress can be found here: https://github.com/AliKarpuzoglu/paperless_app/tree/clean_update


This issue will be used to coordinate the effort to distribute Paperless App to the Apple app store.

A developer has been able to successfully run the app on their iOS device, with only minor changes. More details will follow soon.

While all features work, there are some further changes necessary to make it feel like a proper app on iOS, especially regarding the user interface. Currently there are still some layout problems and missing navigation elements.

Once the app works good enough to release it to the public, we will have to:

qcasey commented 2 years ago

That's great! I'm out of the country right now, but I'd be able to help TestFlight once I'm back in the states.

I know this is still in the early stages, but is there a plan for publishing? My apple developer account has lapsed. However I'm happy to pitch in for the cost of the shared account.

pilaski commented 2 years ago

As Johann already indicated, I have a version for iOS running. I supports the main functions and only required very small modifications. In case anyone is interested to test it, please let me know. You can see the changes in my fork of this repository.

A few things are still not working perfectly but I would consider most of them as minor problems. Here are the issues I discovered so far:

Apart from this everything seems to be working fine. Anyone interested in testing, please let me know.

andreheuer commented 2 years ago

I would also be able to test the iOS app. Can you invite me to test flight?

BR

zeeshan-m commented 2 years ago

Happy to test if you need more testers :)

dereitz commented 2 years ago

Same - happy to test if you need more testers!

pilaski commented 2 years ago

Good to see so many people interested to test. Now I just need your e-Mail addresses. Please write to my first name at my last name dot de.

Unfortunately I can't offer a link for public beta test. I tried to submit the app for review to Apple but that failed. Apple needs access to a Paperless server in order to test the app. Does anyone know if there is a demo instance of Paperlesss available anywhere?

qcasey commented 2 years ago

I don't know of an official one. You're all welcome to hammer my demo instance, if you'd like:

https://paperless-demo.quinncasey.com/ paperless paperless

Eldiabolo21 commented 2 years ago

I sent you an email as well, thanks for taking care of it!

fyrfli commented 2 years ago

Looking forward to this.

JDFS404 commented 2 years ago

Happy to test as well @pilaski, just sent you an email!

2600box commented 2 years ago

I sent an email too. Hoping to be able to try it out! Thanks!

Eldiabolo21 commented 2 years ago

Has anyone ever heard back from sending an emai? I haven't since I wrote in December last year.

dereitz commented 2 years ago

I heard back from @pilaski back in Nov, but nothing since. I have the app in Test Flight and submitted some feedback through that. Perhaps other life priorities have taken over? It's hard to know with the lack of response.

bauerj commented 2 years ago

@dereitz and everyone else who has been able to test this: Can I get some feedback on how well this worked? Did you notice any bugs or things to improve?

dereitz commented 2 years ago

My memory is a little foggy on this as it has been 3 months since I tested and I only tested the app one night. I'm also unable to test via TestFlight now since the beta period has expired.

That said, from what I recall, the app worked very well overall. There were some minor rendering issues which were compounded by my lack of familiarity with the app since I've never used the Android app. I'd love to see this supported on iOS. For me personally, the biggest impediment for my personal use would be multi-page documents as outlined below: https://github.com/bauerj/paperless_app/issues/34

For now, I'm using the Nextcloud image scanner which can do multi-page documents.

fyrfli commented 2 years ago

I also am a little vague on what I found when I tested. I think I sent in two feedback messages in either TestFlight or within the app, but I don't really remember what they were.

Overall, I found it to be a really good first version and would love to see it be up on the app store.

If I can fit it in this week, I'll see if I can re-test and/or find those issues I submitted and post here.

pilaski commented 2 years ago

Please let me comment on the current testing issue. Unfortunately the testing via TestFlight is not possible right now. The old beta version has expired and I can currently not upload a new version as I have an issue with the build environment. I hope to fix that soon.

AliKarpuzoglu commented 2 years ago

@pilaski any way to help? I forked your version and built it after updating from bauerj/paperless_app#master, fixing some conflicts. it's building and running now, I didn't really test it yet though.

I'll do another quick check and then push it here: https://github.com/AliKarpuzoglu/paperless_app

Also: did the camera scan work for you? I can upload files but I couldn’t save the scans.

Edit: I just see it works when you remove EdgeDetection.useInternalStorage(true); in https://github.com/bauerj/paperless_app/blob/master/lib/scan.dart

It's running now, but it doesn't auto-refresh when a new file is uploaded. I could upload the app, or send you a build if you like, so maybe we can get a build up on the app store in the near future

On https://github.com/AliKarpuzoglu/paperless_app/tree/clean_update I uploaded a current running version. If I understand correctly, you have added some changes to edge_detection as well @pilasky? have they been merged? are they important? I have tried to get the current master to just run and it kind of worked.

thefiredragon commented 2 years ago

Could I also get an invite for testflight? @pilaski

adadnc commented 2 years ago

@pilaski any way to help? I forked your version and built it after updating from bauerj/paperless_app#master, fixing some conflicts. it's building and running now, I didn't really test it yet though.

I'll do another quick check and then push it here: https://github.com/AliKarpuzoglu/paperless_app

Also: did the camera scan work for you? I can upload files but I couldn’t save the scans.

Edit: I just see it works when you remove EdgeDetection.useInternalStorage(true); in https://github.com/bauerj/paperless_app/blob/master/lib/scan.dart

It's running now, but it doesn't auto-refresh when a new file is uploaded. I could upload the app, or send you a build if you like, so maybe we can get a build up on the app store in the near future

On https://github.com/AliKarpuzoglu/paperless_app/tree/clean_update I uploaded a current running version. If I understand correctly, you have added some changes to edge_detection as well @pilasky? have they been merged? are they important? I have tried to get the current master to just run and it kind of worked.

Your fork does not build, it still has merge conflict markers in several files.

AliKarpuzoglu commented 2 years ago

@pilaski any way to help? I forked your version and built it after updating from bauerj/paperless_app#master, fixing some conflicts. it's building and running now, I didn't really test it yet though. I'll do another quick check and then push it here: https://github.com/AliKarpuzoglu/paperless_app Also: did the camera scan work for you? I can upload files but I couldn’t save the scans. Edit: I just see it works when you remove EdgeDetection.useInternalStorage(true); in https://github.com/bauerj/paperless_app/blob/master/lib/scan.dart It's running now, but it doesn't auto-refresh when a new file is uploaded. I could upload the app, or send you a build if you like, so maybe we can get a build up on the app store in the near future On https://github.com/AliKarpuzoglu/paperless_app/tree/clean_update I uploaded a current running version. If I understand correctly, you have added some changes to edge_detection as well @pilasky? have they been merged? are they important? I have tried to get the current master to just run and it kind of worked.

Your fork does not build, it still has merge conflict markers in several files.

Did you try the master branch or one of the two updated branches? I did not change the master branch, but I cleaned up the merge conflicts and updated from parent on the ‚Bauerj-master‘ branch and did a clean fork of this master on ‚clean-update‘

pilaski commented 2 years ago

@AliKarpuzoglu thanks for sharing your progress. I will give it a try myself. Part of my problem lately was also cleanly merging my changes with the original repository. Maybe you can teach me how to do that ;)

adadnc commented 2 years ago

@AliKarpuzoglu would you mind sharing some more information on how you build your fork 'clean-update'? Or would share a Testflight link?

cutzenfriend commented 2 years ago

Also ready for testflight if possible!

elmocito commented 2 years ago

Would also be up for a testflight 😎

TheDarthFather commented 2 years ago

++

AliKarpuzoglu commented 2 years ago

@AliKarpuzoglu would you mind sharing some more information on how you build your fork 'clean-update'? Or would share a Testflight link?

You should be able to just build it as seen in the instructions:

flutter pub run build_runner build however you need to run pod install in the iOS folder

I can look into uploading a testflight build

chriscn commented 2 years ago

Not sure if this has already been suggested but could you use something like MacStadium to do this. If not I’d be more than happy to release this on the IOS Store

TheDarthFather commented 2 years ago

I am not owning a Mac and I am not knowledgeable into compiling for IOS, so if someone could release it for IOS will be great! @chriscn

AliKarpuzoglu commented 2 years ago

Not sure if this has already been suggested but could you use something like MacStadium to do this. If not I’d be more than happy to release this on the IOS Store

I don't know anything about MacStadium, but I would also not pay 100+ Euros a month for any publishing.

I have uploaded a testflight build, I'll share a link when it's ready. More comments asking for it won't speed it up though.

@pilaski once you're ready I would disable my build, just shoot me a message.

AliKarpuzoglu commented 2 years ago

Hi everyone

https://testflight.apple.com/join/ToncPdxU

feel free to try the app.

It's called "no paper app" because apple wouldn't let me use 'paperless app'

Tagging the people that were interested:

@TheDarthFather @chriscn @elmocito @cutzenfriend @adadnc

Edit:

As one person already realized: you can take a screenshot in the app and send a bug report, I'll gather them here. Alternatively you can leave a comment.

Bugs:

  1. Thumbnails might not load correctly ( I am not sure how to reproduce it though)
elmocito commented 2 years ago

Tried to login. @AliKarpuzoglu

Thats what I got :-/

I am aware that you would need proper details to reproduce, but I am not at my desk right now 🙈 image

adadnc commented 2 years ago

@AliKarpuzoglu thank you very much. I was able to compile it myself, for which I used your clean_build branch. I've it running on my paperless-ngx instance for a few days and so far I didn't face any issues with the thumbnails, nor did I come across the above connection issue. I could switch over to your testflight build, but those are just 90 days valid. If you need a particular test, let me know and I'll subscribe to your testflight.

bauerj commented 2 years ago

The error message posted by @elmocito is unrelated to this app build.

This seems to be a server configuration issue. Please check your reverse proxy config. If you need help with that, please open a separate issue.

AliKarpuzoglu commented 2 years ago

@AliKarpuzoglu thank you very much. I was able to compile it myself, for which I used your clean_build branch. I've it running on my paperless-ngx instance for a few days and so far I didn't face any issues with the thumbnails, nor did I come across the above connection issue. I could switch over to your testflight build, but those are just 90 days valid. If you need a particular test, let me know and I'll subscribe to your testflight.

I wouldn’t worry about the 90 days. I could always reupload builds or create a full release

dereitz commented 2 years ago

Is it possible to rename the document when capturing using your camera in the paperless app? I tried to click the name but then it gets covered by a blank gray area. Also, I received an error after uploading a document that was captured via my camera similar to the one posted above. I uploaded the screenshot via testflight but can include it here if it is helpful. BTW, I have the paperless app directly connecting to the paperless server (currently hosted as a container on unraid).

AliKarpuzoglu commented 2 years ago

link

is this the image in question?

JDFS404 commented 2 years ago

@AliKarpuzoglu thanks so much for your hard work! @elmocito this is an issue with your NGINX config. Took me a little while to figure it out, I'm using SWAG and the following config works.

Note that I am using paperless.domain as well as paperless-api.domain. The latter is being used to connect to the app.

paperless config:

# make sure that your dns has a cname set for paperless and that your paperless container is not using a base url

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name paperless.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    # enable for ldap auth, fill in ldap details in ldap.conf
    #include /config/nginx/ldap.conf;

    # enable for Authelia
    #include /config/nginx/authelia-server.conf;

    include /config/nginx/proxy-confs/organizr-auth.subfolder.conf;
    auth_request /auth-0;

    error_page 401 $scheme://organizr.app/api/v2/organizr/error/$status?return=$scheme://$host$request_uri;

    error_page 400 402 403 404 405 408 500 502 503 504  $scheme://MYOWNDOMAIN/api/v2/organizr/error/$status;

    location / {
        # enable the next two lines for http auth
        #auth_basic "Restricted";
        #auth_basic_user_file /config/nginx/.htpasswd;

        # enable the next two lines for ldap auth
        #auth_request /auth;
        #error_page 401 =200 /ldaplogin;

        # enable for Authelia
        #include /config/nginx/authelia-location.conf;

        include /config/nginx/internal.conf;
        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app INTERNALIPADDRESS;
        set $upstream_port 8000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;
    }
}

paperless-api config (for accessing the app):

# make sure that your dns has a cname set for paperless and that your paperless container is not using a base url

server {
    listen 443 ssl;
    listen [::]:443 ssl;

    server_name paperless-api.*;

    include /config/nginx/ssl.conf;

    client_max_body_size 0;

    root /config/www;
    index index.html;

    location ~ (/paperless-ng)?/api/ {

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app INTERNALIPADDRESS;
        set $upstream_port 8000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/paperless-ng)?/static/ {

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app INTERNALIPADDRESS;
        set $upstream_port 8000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }

    location ~ (/paperless-ng)?/ws/ {

        include /config/nginx/proxy.conf;
        include /config/nginx/resolver.conf;
        set $upstream_app INTERNALIPADDRESS;
        set $upstream_port 8000;
        set $upstream_proto http;
        proxy_pass $upstream_proto://$upstream_app:$upstream_port;

    }
}
subbiesub commented 2 years ago

@AliKarpuzoglu thank you for sharing the testflight link!

@all Is it possible to enable the app with a client certificate, to make it more secure? So normaly I would use ssl_verify_client within the nginx configuration.

ruudschilders commented 2 years ago

I installed it using Testflight, thank you. I will submit issues when I find them.

TheDarthFather commented 2 years ago

I need to fix my proxy ... unfortunately I use the one on Synology and not very sure what is missing .... as I cant edit the files but rather using the interface .. PS: I can edit the files, but needs some extra work :)

2600box commented 2 years ago

Thanks for sharing the TestFlight. It is great to finally see it in action.

Works great for viewing uploaded documents.

For uploading, is it not possible to make use of the iOS multi-page PDF scanning functionality?

Unless I missed it, it is not possible to send PDFs from files to this Paperless.app for uploading ?

I suspect this is part of the limits of flutter?

bauerj commented 2 years ago

Hey everyone,

there is some news that I would like to share with you:

@shilprecht and @tilwegener have stepped up and offered to build and distribute the iOS version! They have access to a developer licence and know how to use the tools. They will start working next week or so and give an update once there's some progress.

Since we have a lot of people willing to help, I would like to collect information about who's willing to help with what:

To ease further development, I would like everyone who tested the iOS version so far to open new issues with whatever you think could be improved. No matter if something is not working or something doesn't work as it should with iOS. Please use this template.

Thanks to everyone who helped so far!

perry-mitchell commented 2 years ago

@bauerj Hi! Any news on the actual release since your last comment? I don't see it in the store. If it's released, perhaps we could update the readme with a link?

lucemans commented 2 years ago

Heya! Looking for this too! Keep us posted!

bauerj commented 2 years ago

Sorry, I didn't hear any news either.

mfreeman451 commented 2 years ago

Is this dead or what? Wondering if someone needs to take this over? I have everything to push to the store

tilwegener commented 2 years ago

Hello @mfreeman451, I wanted to upload the app in the app store, but I haven't got around to it yet. If you want, we can team up, feel free to email me.

AliKarpuzoglu commented 2 years ago

Pushed an update to testflight since it was about to expire.

All testers should be able to update and get notified, I think

federicolucca commented 2 years ago

Maybe i am the only one, but i tried to build the app, i resolved all the issues in this comments but right now when i try to open the camera, the app crash. I didn't find somewhere permission about camera. It is my fault or someone has the same problem?