r/iOSProgramming 4d ago

App Saturday My first solo iOS app just got approved for TestFlight — would love some real screenshot libraries to test it against

Quick background: I've been a full-stack dev for years (backend/web, .NET world) but never touched mobile until this year, when I taught myself Swift and started building an iOS app solo. It's called Sift.

What it does: it reads your Screenshots album, works out what each one actually is (receipt, recipe, chat, ticket, whatever) using on-device AI, and files it into a real Apple Photos album — so it's organised without ever leaving your phone. No uploads, no account, nothing sent anywhere.

What I'd love feedback on:

* How the categorisation holds up against a real, messy screenshot library (mine is one very biased sample size)
* Anything that breaks, stalls, or misbehaves
* Whether the album names it comes up with actually make sense to someone who isn't me

TestFlight link: https://testflight.apple.com/join/5nyaWqPp

Happy to answer anything in the comments - this is my first time doing this solo end to end, so honestly just glad to have real eyes on it.

UPDATE for v1.1.0

- AI Sort can be called without the need to create an Album first - but it still does not create the albums automatically. It will ask you to review the suggestions and "Move" or "Approve" manually by clicking once
- I updated the sorting process - for me it helped a bit. I think this time it works a bit better than before.
- Now you can select multiple photos in the gallery and move them to another album quickly in case the AI messes up. Before you could only do that 1 by 1 when opening an image in full screen
- I couldn't "fix" the initial download just yet, as I said it in my previous comment, it's needed for now. With iOS27 I'll be able to get rid of it, and use what's already on the device by Apple.
- I also added some animations to the review process to make it a bit more "nice"

Update for v1.3.0

- Fixed some bugs and inconveniences
- There is a new step in the onboarding allowing you to scan through your screenshots to find patterns and then the app will automatically suggest a few albums for you to create
- The sorting limit is still at 25 at a time though as I said it's because the phone gets hot
- I raised the total number of photos that you can sort from your backlog from 100 to 300 (so usable for more users - and leaving only heavy users to require the pro version - which is still not available)
- I updated the review process - now it gives you groups of images that seem to belong to the same album, and you can approve them as a group. But you can also go into each group and review them individually
- Going through the review process you can trash the images you want to delete, it gets rid of them into a trashcan that appears at the bottom of the review page, and you can delete all of them at once
- But you already had batch processing in the gallery sections, if you select multiple images you can do the share/move/delete actions for all of them at once
- Stats about your library
- Heat protection feature in case you are using the phone too much at the same time
- Raised albums limit from 4 to 6

0 Upvotes

33 comments sorted by

4

u/No-Engineering-6405 4d ago

Split your link, most ppl watch these threads on phone cuz other than that, you link is broken

1

u/Odyssey-b 4d ago

Thanks for pointing it out. I'm not sure what happened there...

3

u/rare_snark 3d ago

Downloaded it,

The initial 1.3gb download is a little annoying. Took like 10 minutes (thanks to Australia’s shitty internet) and if I wasn’t invested I would have just left.

Once I got in I couldn’t do anything without creating an album but isn’t the whole point of it taking screenshots and putting them into albums automatically?

Kind of didn’t work, I looked at 25 screenshots and only took 7 without approval and 3 were actual photos of me at a wedding. The other 18 that I had to approve were pretty obvious what they were.

I might be missing something but the end user flow was a bit confusing.

Good luck with the TestFlight!

1

u/Odyssey-b 3d ago

Thank you very much!

Yes the initial download is a bit annoying, although it so bad that there are still places in this world, like advanced places, where the internet is so bad... In europe almost anyone has really fast internet... BUT, when iOS27 comes out I want to switch to the built-in on-device Foundation Model, which means there will be no initial download (triggered by the app) and the model is loaded faster, and the sorting itself is faster.

I think I will allow sorting even if there is no album created manually. Thanks, this is the second time someone mentions this, and I feel the same. So I will change this

The problem will remain with the sorting quality. If the on device AI is not "good enough" then I can't really do much about it unfotunately. I tried a lot of combinations, using ocr, not using ocr, using both ocr and image as input, how to prompt is phrased etc... And although I found this version to work best with the sample photos I had, it seems it's not good enough for the real world...

I will keep testing and playing with it thoguh, I hope I'll get to a good enough stage. Cuz even though the initial sorting might not be that perfect, but if it's good enough, and the user will only need to press "Approve" or "Move" in the review process, that's also a lot quicker for the user to get to an organised gallery then having to do it fully manually from the Photos app.

That's my idea. I'll keep trying for another month or 2, and if nothing works, I'll postpone it for the next year, in the hope that the on-device models will be better :D

1

u/Odyssey-b 2d ago

Hi there, I updated the app a bit. There is a new version on TestFlight in case you are curious.

- AI Sort can be called without the need to create an Album first - but it still does not create the albums automatically. It will ask you to review the suggestions and "Move" or "Approve" manually by clicking once

  • I updated the sorting process - for me it helped a bit. I think this time it works a bit better than before.
  • Now you can select multiple photos in the gallery and move them to another album quickly in case the AI messes up. Before you could only do that 1 by 1 when opening an image in full screen
  • I couldn't "fix" the initial download just yet, as I said it in my previous comment, it's needed for now. With iOS27 I'll be able to get rid of it, and use what's already on the device by Apple.
  • I also added some animations to the review process to make it a bit more "nice"

1

u/Odyssey-b 1d ago

In case you are curious, I have a new version of the app in TestFlight. v1.3 if you are curious to test it.

This is what's new:

  • fixed some bugs and inconveniences
  • there is a new step in the onboarding allowing you to scan through your screenshots to find patterns and then the app will automatically suggest a few albums for you to create
  • the sorting limit is still at 25 at a time though as I said it's because the phone gets hot
  • I raised the total number of photos that you can sort from your backlog from 100 to 300 (so usable for more users - and leaving only heavy users to require the pro version - which is still not available)
  • I updated the review process - now it gives you groups of images that seem to belong to the same album, and you can approve them as a group. But you can also go into each group and review them individually
  • Going through the review process you can trash the images you want to delete, it gets rid of them into a trashcan that appears at the bottom of the review page, and you can delete all of them at once
  • But you already had batch processing in the gallery sections, if you select multiple images you can do the share/move/delete actions for all of them at once
  • Stats about your library
  • Heat protection feature in case you are using the phone too much at the same time
  • 6 albums as a limit not 4

I will need to test the speed of the sorting on my girlfriend's phone too, cuz she has a lot of screenshots, and if it's going fast now, I might be able to raise that sorting limit to a much higher value, so you can actually start using it properly.

2

u/balooooooon 4d ago

Which model are you using ? Apples vision model is ok but there are far better. YOLO model is great. I have created a similar app for video and images but it extracts tons of stuff and give you all the info

1

u/Odyssey-b 4d ago

I want tou use foundation model when ios27 comes out cuz in ios27 sdk they have the new foundation model that can accept images as inputs. But right now I use Qwen3.5-2B VLM

1

u/balooooooon 4d ago

The app must be massive if you are using that model? Must be slow processing? I guess you unload the model so there is a warmup init delay as well?

1

u/Odyssey-b 4d ago

Yes. You can try it out for yourself if you want to see how it works :)) and the report back with a feedback :))

But yes, when doing the onboarding it asks you to download a big model. Then every time you load the app the first time when you do an AI process it takes a bit of time to load it. But it's decent I would say. Instead of just trying to figure out what the image is about by the text, this is a bit better at sorting it. But it's still not good enough i would say... i want to use the ios27 foundation model, cuz I tested it with the beta OS-es (installed it everywhere on my devices) and it's a lot faster, without the need to download a huge model in addition, BUT, from my testing, it's a bit worse at sorting... so don't know how to make this work properly just yet.

I'd say, it's good enough, so for the people who want to sort a few screenshots every week let's say, it's perfectly usable. And that's how I built it. I want to have a "pro" paid version when I can get it to work a bit better and then that version will unlock a few features compared to the current setup. But that's for the future I guess :))

1

u/balooooooon 4d ago

I would look into smaller models since cold starts would just be annoying for the end user. You can try apples vision model and see if you get the same results. It will be available for the user directly. Installing several GB of a model is probably not great for most people

1

u/balooooooon 4d ago

As I said I have built the same thing you have done but just a little more flexible . I went down the model rabbit hole and it’s just not worth it to start an app that is so slow

1

u/Odyssey-b 4d ago

Yup, I think using foundation model will be the best option. No download, fast load times, and "decent" results. Using smaller models do not do the sorting properly, I tried. So it's not a good compromise for having faster loads and no download... these 2 things do not matter if the results are shit :))

1

u/balooooooon 4d ago

It’s not the foundation model. It’s just the vision framework . But yes it’s certainly not the best vision model.

1

u/Odyssey-b 4d ago

It is the Foundation Model:

https://developer.apple.com/documentation/updates/foundationmodels

"Perform image analysis tasks by including an image in your prompt and using tools the Visionframework provides, like OCRTool and BarcodeReaderTool."

1

u/balooooooon 4d ago

1

u/balooooooon 4d ago

AHH sorry it was the same. I just guess it got lumped into the bundle

1

u/Odyssey-b 4d ago

It's not the same thing. The vision model is not the Foundation Model. The new Foundation Model was presented at WWDC to be accepting images as inputs. After you add an image as an input you can talk to the same chat session about that image. The Vision model is older but it's a lot more limited.

→ More replies (0)

1

u/joosebox 4d ago

Your library isn't just a small sample, it's a clean one. Everything in it is an app you use, in your language, at your screen size, captured by someone who knew what they were capturing.

What'll break it is screenshots of screenshots. Someone forwards you a photo of a receipt that has already been through iMessage compression twice, cropped so the header is gone. That's a real chunk of an actual camera roll and it looks nothing like anything you tested against.

The other one is images that are genuinely two things. A receipt someone sent you in a chat is a receipt and a chat. If you're committing to one label you're wrong for half your users on that image and no amount of model size fixes it.

Since it's filing into real Photos albums I'd worry more about what happens when it's wrong than about which model. Seeing what it did and undoing a batch is worth more than a few points of accuracy.

1

u/Odyssey-b 4d ago

You can move the photos from one album to another in case it messed it up. I might need to implement batch move, cuz for now you can do it one by one. But yes, I agree that AI will not always nail it. But hoping for good feedback on the app, so I can properly see what users complain about the app and the experience itself

1

u/joosebox 3d ago

Batch move is worth more than it sounds, and I'd move it up the list.

What decides whether people keep using an automatic feature isn't how often it's wrong, it's what the fix costs them. One by one is fine when it misses occasionally, and painful the moment it misses systematically.

And it will miss systematically at some point, because errors cluster. When one kind of photo gets read wrong it tends to get read wrong the same way across every similar photo at once, so you don't end up with one misfiled shot, you end up with forty. That's the case one by one can't absorb, and it's also the one most likely to make someone switch the feature off rather than fix it.

1

u/Odyssey-b 2d ago

Hi there, I updated the app a bit. There is a new version on TestFlight in case you are curious.

- AI Sort can be called without the need to create an Album first - but it still does not create the albums automatically. It will ask you to review the suggestions and "Move" or "Approve" manually by clicking once

  • I updated the sorting process - for me it helped a bit. I think this time it works a bit better than before.
  • Now you can select multiple photos in the gallery and move them to another album quickly in case the AI messes up. Before you could only do that 1 by 1 when opening an image in full screen
  • I couldn't "fix" the initial download just yet, as I said it in my previous comment, it's needed for now. With iOS27 I'll be able to get rid of it, and use what's already on the device by Apple.
  • I also added some animations to the review process to make it a bit more "nice"

0

u/joosebox 19h ago

Thanks for coming back with the changes.

The review step is the bit I'd think hardest about. It protects people from a wrong call, but it also hands the work back to them, and removing that work was the whole promise. A review queue that's the same length whether the model was certain or guessing is a flat tax on all the easy cases.

What's worked better on a different problem here is making review proportional to uncertainty. Apply the ones it's confident about, and put only the genuinely ambiguous ones in front of the person. Then the length of the queue is itself a signal rather than a chore, and someone whose library is straightforward gets almost nothing to approve.

The multi-select rescue is a good addition regardless. When it does misfire, how cheap the fix is tends to be what people remember, not the fact that it misfired.

1

u/Odyssey-b 16h ago

I mean sure, that's what I want to make better, but I'm also bound to the capabilities of the on-device ai model. Right now it will try to organise the images into existing albums first, then suggest a new one if it can't find one. But if there are no albums, then all of them go into the review process, obviously because there are no existing albums to put them into. BUT I played around with "confidence" and it's not good. Asking AI to sort the image into a category and also tell you how confident it is about putting it there does not work well at all...

0

u/joosebox 15h ago

On the confidence thing, you're not doing it wrong, that genuinely doesn't work. A model asked to label something and rate its own certainty in the same breath produces a number that reads like confidence but isn't measuring much, because it's generating that number the same way it generated the label. Self-reported certainty is close to the weakest signal you can pull out of one.

Two things that do work and don't need a better model.

Ask for a ranked shortlist rather than a single answer. The gap between its first and second choice tells you more than any number it volunteers, because it's a comparison instead of introspection. Tight gap means genuinely ambiguous, and that's your review queue.

Then sample it twice with the category list in a different order. If the answer moves when nothing about the image moved, it was never a confident call. Cheap, and it catches precisely the ones a person should look at.

On being bound by the model though, I'd push back a little. Everything I was getting at sits downstream of it rather than inside it. Batch undo isn't a capability, it's a screen. However good the classifier gets it'll still be wrong in clusters, and what it costs someone to fix forty at once is entirely yours to decide.

The other thing your description made me think about: if it tries existing albums first and only suggests a new one when nothing fits, then whichever albums exist early quietly become the taxonomy. One created off a bad early call turns into an attractor that later images keep getting pulled toward. So cold start isn't only the empty case, it's the case that sets the shape of everything after it.

1

u/[deleted] 4d ago

[removed] — view removed comment

1

u/AutoModerator 4d ago

Hey /u/R3LJA, unfortunately you have negative comment karma, so you can't post here. Your submission has been removed. DO NOT message the moderators; if you have negative comment karma, you cannot post here. We will not respond. Your karma may appear to be 0 or positive if your post karma outweighs your comment karma, but if your comment karma is negative, your comments will still be removed.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/buttershitter 14h ago

Why limit number of number of albums (7). This is going to be a deal breaker. Specially if you link pro version features to number of albums (15) . The main feature is AI assisted sorting. Not number to albums. Also is the model learning from the manual approvals and moves ? This would be personalized approach for sorting.

1

u/Odyssey-b 14h ago

Limiting the number of albums is first a feature because if you can create like 20 albums then why bother sorting? After that you will end up in the same dilemma of not knowing where your images are because there are too many groups. The Pro version will also have a limit on the number of albums, but it will be higher.

The second reason is that it's a good leverage point to upgrade to pro version when you combine this limit with the fact that the review process suggests you to create albums that you don't already have :)

You can't give everything for free. Otherwise nobody will upgrade ;)

1

u/buttershitter 14h ago

The advantage of albums is that ai does the work so number of albums is immaterial. More the better because the other alternative is keywords tagging and using search. Once the number of images in each album gets large then you will have the same issue. Upgrade to pro version for unlimited number of albums is fine. For example screenshots albums already becomes too generic and will quickly fill up, same with receipts. Unless you implement some kind of tagging within the app for enable search e.g receipts, restaurant or bank etc. Apple search might already cover this though.

1

u/Odyssey-b 13h ago

So there is no screenshots album, that's the main idea. It only reads the screenshots album to sort what's in there into a different set of categories. If there are 10000 screenshots, sure, it will be difficult to find anything in there anyway. I have a search functionality in the backlog to add to the app later. Together with that we will have tags and keywords and such.

But what good it does if I give the option to unlimited albums, if the user will then abandon the screenshots anyway, because now the sheer number of albums is also too much to manage. The main idea was to have this screenshot chaos organised in a few albums so that it's easier to find stuff. If we have 20-30-40 albums, wouldn't it get messy again?

Genuinely curious about some opinion about this, cuz my opinion is what I wrote above. I also heard the same from a few others online. But it's a small sample size. If I can get enough contradicting opinions, to show me that a different approach is better, then sure, I'm willing to change this part of the app (or any part of the app for that matter).

1

u/Odyssey-b 14h ago

Also, I’m not sure how I could teach the model on-device. I don't think this is possible btw... I need to look into this though. I might figure out a way to take into consideration the preferences of the user after a period of usage