Activity

Elie

Shipped this project!

Hours: 225.92
Cookies: 🍪 6233
Multiplier: 27.59 cookies/hr

I created a mobile app using Flutter that lets you access your own self-hosted photo gallery in a style similar to the Apple Photos app.

The hardest part was supporting both operating systems while minimizing compromises, implementing functional synchronization, and fixing display bugs caused by Cupertino Native.

I’m proud to have managed to finish just in time, and to have an app that I think looks great, especially on iOS 26 thanks to Liquid Glass.

And it’s still optimized for older phones (Fover is compatible with iPhone 6S and later!)

Elie

I fixed a bug that caused the tab bar to remain visible after logging out.

I also changed the icon and splash screen on Android.
I removed the features that don’t work on Android, like text detection and the map!

I also made a one-minute demo video where you can see the main features.

It’s been a wonderful adventure. I hope all those hours put in will pay off with a nice reward 🙌🏼

0
Elie

I’ve only been developing for 20 minutes, but I’m going to write a devlog anyway.

Why?
Because I ran into the worst bug in Fover.

Actually, when you’ve already synced two devices, it works perfectly—everything is where it’s supposed to be.
But the problem arises when a new device connects to the server for the first time. The phone starts with Hive completely empty, so it loads absolutely everything all at once. This means, for example, that items that were in the trash end up back in the library…

Then, since it’s the device with the most recent Hive, the older devices follow suit and do exactly the same thing.

To fix this, I had to change the order of the function calls in my main (that’s why it was pretty quick to fix)

In the attachment, you’ll see a freshly installed version where the items are the same on all three devices

Attachment
0
Elie

Before, when the internet connection failed, the app would get stuck on the loading screen.
Now you can access your uploaded photos even if your server is down!
To ensure everything works smoothly, the app takes a few seconds to check if the server is actually down. This may extend the duration of the splash screen.
But if the server is up or the user doesn’t have an internet connection, the app launches just as quickly as before.
It took me a little while because my base code wasn’t set up to handle this efficiently.
In the video, the server is down, so we’re displaying the downloaded media
I’ve also started writing a Markdown file for the installation instructions.

0
Elie

Those 3–4 hours were spent fixing bugs, I didn’t add anything new this time!

First of all, Hive files were piling up in Copyparty. Even though they’re only a few KB in size, over time this can cause storage issues for files that are… unused (see the first image).
And I was uploading the .lock files even though they were unnecessary for the server and were piling up just like the other Hive files.

From now on, old Hive files are overwritten without affecting synchronization.

I also had an issue with how items were displayed in the library. The order was different from one phone to another. This was due to my mishandling of the date. I wasn’t checking the image’s date properly, which resulted in an incorrect date being displayed on the other phone.

Another issue is that when you adjust a date and then reset it to a previous value, that value isn’t taken into consideration. I had to add a field in Hive that checks the last time this field was updated in order to retrieve the most recent display date that was set.

And now, date adjustments are taken into account during synchronization (see video)

I had to change the pop-up menu logic because it was a nightmare whenever I removed or replaced an item. Here, I removed “Duplicate” because it doesn’t work on CopyParty at the moment.

Attachment
0
Elie

Wow, that’s a lot of hours all at once I wasn’t expecting that.
I didn’t want to post a devlog until I’d fixed most of the bugs in Fover, and now it’s almost done!

The bugs gave me a hard time, but things are looking up.
I ran into some issues again with the sheet when creating albums. I fixed it by closing the albums from the back, but it took me a lot of time to figure out that was the problem (I still don’t know why, actually…)

I’ve also added an LRU to prevent the app from crashing or lagging when there are a lot of elements on screen.
There was also a bug in the login process that allowed users to send a huge number of requests to the wrong server.

There was also a bug in the project that prevented me from building on Android due to an issue with the Gradle configuration.

There are also some bugs that I haven’t been able to fix yet
One annoying bug I haven’t been able to fix yet is that the tab bar doesn’t work properly when the user logs out and back into the app. The tab bar doesn’t show up—I don’t know why…

But it wasn’t all about bug fixes!
I finally managed to add library synchronization across multiple devices 🎉. It’s pretty fast, but you have to refresh manually for now.
In the attachment the videos were filmed at the same time; I just couldn’t find a better way to display them all at once

There might still be some bugs. I didn’t think I’d be able to get this done before the end of Flavertown!
And I have some wonderful news to share with you: Fover has been approved on TestFlight 🥳 (it’ll just be an APK on Android since the Play Store reviews are so bad :(

Today I’m going to upload a new build to TestFlight, which I hope will be approved before the deadline ^^
I’m also going to finish up my little intro video and tweak a few things on Android! And if all goes well, the project will be released tomorrow.

0
Elie

New feature: You can now swipe to select

It took me a long time to get this working; I should have implemented it sooner, because existing widgets like drag-and-drop and the context menu were preventing “drag to select” from working properly.
These widgets were intercepting every tap, which prevented users from swiping to select.

Also, when implementing drag-to-select, I encountered some bugs that bothered me, such as flickering in the grid, so I fixed that at the same time. There were also issues with the tab bar, which would deactivate unexpectedly and could cause crashes in the release version.

I’ve also started looking into how to optimize the app to prevent it from lagging when handling several thousand photos!

0
Elie

A lot has been accomplished over the past few hours

First of all, the video thumbnails are working again with the HEIF thumbnail configuration. I had forgotten to add the ff command, which meant that FFmpeg never ran.

Also, the onboarding is now truly responsive; images return to the grid with an animation (unfortunately, I couldn’t do this for videos), and launching videos is much simpler.
And the blur/gradient at the top of the library is less “aggressive.”

There are also a few parts of the code that have been reformatted.

Attachment
0
Elie

I worked on the other filters, and it turned out to be even more complicated than I thought.

Since I hadn’t structured the text search properly, all the other filters were also running the text search.
It took fo(re)ver to debug
But it’s all good now it’s been fixed, and the filters are working perfectly just as I wanted!

0
Elie

New feature

You can now filter directly from the search.

The containers are actually clickable and trigger actions. For now, I’ve only implemented this for the text detection feature.

Actually, I had a really hard time implementing this; I thought it would be much simpler than I expected.

I wanted the UI search to work like the filtered search on Discord.
When the chip appears, you can delete the text while keeping the chip. I started by doing this with Stack, but that was a bad idea. So I ended up doing everything in the text field by adding focus all around it.

In the demo, you can see that I’m filtering only images with text containing “Hello Kitty” and that I can keep the filter active without searching.

0
Elie

In the end, I decided to go back to the way things were.
But not in the way you might think

Google’s mlkit package works incredibly well, but there’s a problem…

It’s too heavy

On iOS, the app went from 35 MB to 98 MB. I couldn’t let that happen.

Why does this happen?
Take a look at the Gmail app on the App Store—it’s several hundred MB even though it’s just a client for checking email. It must include all its bundles and frameworks, which is what makes it so heavy, and that’s exactly what happened to my app

So how do I fix this?
Well… Go back and remove the package on iOS. But to replace it with something better!
Thanks to the Swift Vision package, I was able to include the functionality natively quite easily through a channel. The app remains ultra-lightweight, and text detection is even more sophisticated.

However, I need to find a way to add MLKit to Android without the package being installed for iOS.
I also added a feature to the info sheet to view the full transcription.

Attachment
0
Elie

New cool feature

Now you can search for images using the text within them!

It was surprisingly easy to implement thanks to the Flutter library google_mlkit_text_recognition!

For now, it seems I can’t highlight the detected text in the viewer, but that’s not a big deal

Everything happens locally, and to avoid overloading the CPU, only three text recognitions are performed at the same time. Only Latin letters can be detected.

0
Elie

This devlog mainly covers fixes and minor additions.

First of all, users can now view the Copyparty instructions directly within the app.

There are also fixes to the library, including some missing animations. Additionally, we’ve fixed an issue where album covers were no longer displaying.

Attachment
0
Elie

Here’s what the sheet for adjusting a photo’s location looks like.

On iOS, the search is very accurate because I use Apple Maps results (thanks to the Apple license) via a Flutter channel connected to Swift code.

Here’s a pretty cool feature I noticed in Apple Maps while working on the devlog. Search results adapt to the phone’s language settings.

On Android, it’s a bit more complicated… Because Google’s API requires a paid subscription, I chose to use Photon instead. It works pretty well, but it’s less accurate than Apple Maps.

For example, when searching for “10 Avenue des Champs-Élysées,” the result displayed is just “Paris.”

Also, I’d need to let the user enter GPS coordinates, but I’ll have to find the right regex.

Attachment
Attachment
0
Elie

New feature

You can now draw in the editor!

There are 3 modes:

  • Classic pencil
  • Crayon
  • Marker
    You can choose any color you want using a beautiful Color Picker!
    You can also adjust the line thickness using an overlay.

Other things

I also made a banner, and I’m currently setting up the TestFlight release on iOS

What I need to do

  • Find better icons to represent each tool
  • Add what’s needed to the +—I’m still thinking about it
0
Elie

Most of the time was spent adapting the buttons, dialogs, and containers for Android. I also worked on a map for Android, but it doesn’t look very good right now, so I’d rather not include it.
And some of the time was spent on a rather strange bug: the buttons in the viewer are no longer aligned. I’ve applied a temporary fix in the hope of finding a solution soon.

By the way, when it comes to dialog boxes on Android, I’m not sure if I should use Material Design or stick with the Cupertino style…

Attachment
Attachment
Attachment
Attachment
0
Elie

New major features

Fover finally supports HEIF thumbnails 🥳

It was really complicated with the Dockerfile, especially since each build took 10 minutes, which wasted a ton of my time (unfortunately, that can’t be counted in Flavetown…)

But most importantly, you can now see all your photos on the map!

However, I ran into a few issues along the way:

I started by displaying the images on the map, and it looked pretty good. The problem was that the rendering became terrible when there were a lot of localized images.
So I had to group the images based on the map zoom level.

I’m also having debugging issues. For about thirty minutes, I couldn’t figure out why my images weren’t showing up on the map.
It turns out that all the images I had geotagged were .heic files. My server still can’t load their thumbnails, so it just displays the default pin.
That’s why I fixed that problem at the same time

The display isn’t perfect yet, but I really like how it looks. I’m going to keep improving it!

Attachment
0
Elie

New cool feature

Apple Maps is now available in Fover. With this feature, you can see exactly where the photo was taken.

The location is retrieved from the EXIF data, but in some cases the location may not be detected, even if it’s present in the EXIF. However, you can add it yourself if you wish.

This feature is available only on iOS. Why? Because you need an API key for Google Maps, and Apple Maps is only available on iOS.
I’ll try to find a complete alternative to Google Maps on pub.dev.

What took the most time?

Successfully parsing the location data correctly. But also finding the best way to display the map

What’s left for me to do regarding the map

  • As mentioned earlier, Android integration
  • But I’d also like to create a complete map with all the photos on it
Attachment
0
Elie

Here are the changes that have been made; most of them are fixes

The navigation bar no longer relies on a global key.

This global key caused some bugs and is therefore not recommended for use. It also sometimes caused the app to crash after the first login. I therefore decided to remove it and detect bugs using dart:ui

Other bugs fixed

  • Bottomsheet colors adapted to the light theme
  • Pull-up-to-refresh no longer goes below the tab bar
  • Screen orientation locked during onboarding for phones to avoid responsive design issues

I’m also actively continuing to look for ways to improve responsive design for the search feature.

Attachment
Attachment
0
Elie

A few small updates.
First off, full support for iPad! There are still a few minor tweaks to make, but it’s almost done.
(Landscape mode is also available on phones)
But most importantly, Liquid Glass is back for good. There are still a few minor issues being resolved on the library side.

Attachment
0
Elie

You can finally edit videos in Fover!
The video editor uses the same library as the photo editor. So the app isn’t bloated (47.6 MB compared to 388 MB for Google Photos).
The saving time is a bit long depending on the video; I’m not sure why, but I’ll see if I can fix this before April 31.

Note: Processing times are long, and the interface may seem buggy at times. These bugs are mainly caused by the debugging process. The released versions are much smoother!

0
Elie

These two hours of coding were mainly spent on bug fixes.

Here is a list of everything that has been fixed:

  • Crash when trying to add images without granting Fover access
  • Color validation in the tab bar of the WeChat picker
  • Pull-to-refresh color

But there are also some new features!

  • When an item is selected, the bottom navigation bar disappears
  • When the user hasn’t granted Fover access to photos, the app displays a dialog that allows the user to grant access simply by opening the settings
Attachment
0
Elie

I refined the light theme because it wasn’t quite perfect yet. There were display bugs in some text fields, colors that didn’t match the light theme, and so on…

I also discovered a bug in the viewer that I was able to fix.
When you open the image editor without editing the image, the viewer displays a blank image with an error.
This error was caused by improper handling of the refresh and state changes in the viewer.

Attachment
0
Elie

Fover now has a light theme!

To match certain native elements, I created a light mode that fits the app perfectly.
I also implemented dynamic color changes in the library, which was one of the things that took me the most time, along with reworking the widgets.

I still need to implement the light mode in the viewer!

Attachment
Attachment
Attachment
0
Elie

Now you can drag and drop multiple items from a third-party app. But you can also add photos to your albums by dragging and dropping media from your library into the album!

The image placement isn’t perfect, but it works for a first version. I’ll figure out how to make it look better later.

0
Elie

Now you can drag and drop your media into other apps! I haven’t implemented in-app drag and drop yet, but it’s coming soon!
I’m also going to add a drop option to the library that will let you upload media from other apps using drag and drop.
Also, I’ve started working on the iOS sharing extension, but I’d prefer to continue that later.

0
Elie

Major new feature

You can now share your images and videos using a native sharing sheet.

It was fairly straightforward to implement this on the servers using XFile.fromData.
This feature also works offline.

Minor bug

I have a fairly minor bug. On certain types of images, a large white border may appear in the preview, without affecting the media itself. It seems to be a bug related to file extensions that iOS treats as documents when they are actually images or videos

What’s left to do

Since we’re on a roll with sharing, I’m going to look into how to share media directly from an external app, as many apps do

Attachment
0
Elie

I didn’t think I’d have to work four hours straight… I ran into a few bugs and issues that have now been fixed. First, HEIF images weren’t resizing properly, and clicking on an image in the search results used to crash the app.

All of that has been fixed. I also added a search history. And when you click on it, it brings up the search again. A few optimizations have also been made.

0
Elie

I had a major problem that I hadn’t realized at first:

The search functionality I had built was the LEAST optimized thing in the world!!

In fact, every time it reloaded the library, which meant having to run queries all over again, write data, etc., which was not optimized at all.

So I changed all that, and now none of that is needed thanks to synchronous loading.

I also had a major bug: the search only took the first character into account, which completely skewed the results. And also, when returning to the library after a search, the search results were still displayed…

Also, I redid the animations, which aren’t perfect (unfortunately) but are much cleaner.

0
Elie

I’ve started developing the photo search feature. I’ve added several elements to the app that will make searching easier.

With the search feature, you’ll be able to find the following:

  • Image date
  • Image name
  • Text within the image (I still need to develop the OCR)
  • Camera model

To fill in the gaps, I’ve added an “Explore” section that lets you browse a category within the search.
And of course, search history!

If you have any other ideas for filling the gap, I’m all ears 🙏

For the Liquid Glass version, it’s a bit complicated… Since the issue with the TabBar bug hasn’t been fixed yet, it’s quite difficult to integrate the search feature into Liquid Glass. But it’ll be ready as soon as the issue is resolved!

Attachment
0
Elie

A few fixes: First, regarding the viewer. Most of the display bugs have been fixed (they were caused by an issue with page focus and opacity). We’ve also resolved an issue with the popmenuaction, which wasn’t always loading the correct page on iOS 26 and later.

There was also an issue when users tried to adjust the date. The original date displayed was incorrect. This issue has also been resolved.

Attachment
0
Elie

I fixed the bug with the form. Before, when you clicked “Next,” the keyboard would close and then reopen, causing the page to jump.

I’m not a huge fan of the basic design I came up with, but for now I don’t have many ideas for a redesign, and for a v1 I don’t think it’s a priority.
But now I’m going to start on the video editor, then image search and OCR 👀

0
Elie

There must have been a glitch during Hackatime because I didn’t spend that much time on this commit.

What I did was revert a few changes that were doing more harm than good. I’ll try optimizing the RAM again later.

However, there are still some fixes. Video playback works better and is much better managed. However, I have a minor issue: the controls aren’t positioning correctly anymore. I’ll try to fix that now.

Attachment
0
Elie

Since last night, I’ve been trying to optimize the app so it uses less RAM. I’m having a really hard time optimizing that part. Personally, on my phone, I don’t experience any lag—the app runs incredibly smoothly—but I don’t know if that will be the case on all phones…

The huge spike you see here happens when loading a large video; it requires a lot of RAM, but I can’t seem to limit that…

However, RAM usage in the library has dropped drastically, and the app size has gone from 68 MB to 45 MB.
This reduction is thanks to video_player, which is much better suited for phone screens and handles HDR videos better than the library I was using before.

Attachment
0
Elie

What’s New

Now when you upload media, a progress circle appears!
You can also cancel the upload by clicking on it

Why It Took So Long

I ran into a few issues:

  • First of all, I wanted to create a simple, clean design, which wasn’t easy with Liquid Glass…
  • Also, I had to create an overlay because otherwise the card would have been limited to the appbar. And I’d never made an overlay in my life, which took me a long time
  • I had to redo the upload section with Dio to get the real progress (thanks, Claude, for helping me)
  • Bugs related to canceling the upload wasted a lot of my time

But at least I think the result is good—that’s all that matters!

0
Elie

I’ve implemented the back buttons.
I’ve also fixed the following bugs:

  • After editing an image, the app returns to the viewer instead of the gallery
  • The viewer loads the new image immediately after it has been edited
  • Data such as EXIF is now retrieved again
  • Returns the actual dimensions instead of null x null
  • Fixed a padding issue in the settings information sheet
0
Elie

What’s new ?

Lots of changes to the image editor!

First things first: edited images are uploaded to the server.
I’ve tried to replicate the behavior of the basic gallery editor as closely as possible.
When you edit a photo, the new photo is the only one displayed in the gallery. But the original photo remains stored on the server so you can revert the changes!

Also, when you edit a photo but want to undo all changes, a warning message appears in the “Cancel” button in Liquid Glass

What remains to be done

  • The “revert” button in the viewer and in the context menu.
    I haven’t implemented it yet because I need to rework the indexes
  • Video editor
  • No “push” when opening the gallery
  • Animations
0
Elie

This is what the editor looks like in terms of general settings. Personally, I like it—I think it’s a nice change from the basic iOS editor, which I don’t always find great, without confusing users either.

However, I still have a small issue to fix regarding the padding. I don’t know why, but even when I set the AppBar to null, an empty one is still generated, which leaves just as much space at the top…
For the slider, we’re using the native Cupertino style on iOS and a Material Design slider on Android, which is also a bit different from the iOS editor!

As you can imagine, there’s still some work to be done on the editor, but I’m still working on it.

0
Elie

I’m having a bit of trouble overriding and customizing the editor to make it work for me. It’s starting to look like something, but it’s not quite what I want…
There’s still a lot of work to be done on that front, but we’ll get there.

What’s left to do?

  • First, create a “more iOS-like” style that still works well on Android
  • Make selection smoother
  • Make cropping look better
  • Give the widgets (sliders, buttons) a liquid glass style

I also need to work on the video editor, but I’ll do that later..

Translated with DeepL.com (free version)

Attachment
0
Elie

I wanted to post this earlier, but Hackatime was down…

In the meantime, I made the viewer automatically adjust to the image’s orientation. I also created a little animation that turned out pretty well (I wasn’t expecting that).

I’ve started developing the image editor. It’s a bit rough around the edges right now, but I’ll come back to it once I’m done.

0
Elie

What’s new?

  • I’ve implemented a pull-to-refresh feature, which will come in handy when I add synchronization across multiple devices.
  • Dynamic image display (not sure if it works 100%)
  • Improved authentication for hidden albums and fixed crashes caused by failed authentication.

Other things
The code has been improved; certain issues, such as the context being called after an await, have been fixed. And the formatting in the library has been done.

I’m still trying to figure out how to fix the display issue with the albums

0
Elie

What’s new?

You can now delete or add items to an album using the picker I created earlier

What’s left to do with albums?

  • Make the hidden album fully functional, even on devices without biometric recognition
  • Be able to view albums offline
  • Display a slideshow of the album

Why so much time for so little?

Since images are now displayed in their original quality, the animation when you exit an image has become buggy because the image has become too large… I’m still trying to find a solution for this

0
Elie

Now you can view only your screenshots and screen recordings. This can be useful for freeing up server storage more easily if needed.

Attachment
0
Elie

Several minor changes

  1. You can now see the remaining storage space on your server.
  2. You can log out of the app.
  3. Dialogs now adjust to the text size.
  4. The container on the onboarding page is now responsive.
0
Elie

Improvements to the picker. On iOS, there are native Cupertino buttons, and the picker overall looks much more polished.
The picker also supports drag-to-select, just like the native picker.

Attachment
0
Elie

Well… I had to switch libraries for the picker. It’s no longer a native picker.

Why?
Sure, the native picker has a lot of great features: it’s perfectly optimized, fast, and the selection process is very efficient. But there are two major issues that prevent it from being used in Fover.

On iOS/iPadOS, the picker doesn’t return the actual name of the image. It gives a completely random name because it places the media in a temporary folder, which makes it very difficult to retrieve.

Apparently, it’s possible to fix this issue with native code, so I tried to implement it using Vibe Coding. But it caused me too many problems and didn’t even work. So I decided to rebuild everything from scratch, remove the code Claude generated for me, and switch to a different picker.

On Android, however, this problem doesn’t exist, but the native image selection is terrible. I don’t understand why it was implemented this way.

For now, I’ll admit the picker isn’t very pretty, but I’m going to redesign it to better fit the app by adding Liquid Glass on iOS >26 and some nice Material Design on Android and iOS <18

Attachment
0
Elie

Several changes have been made; media is now displayed more effectively in the library.
Now, the actual images are displayed in the viewer instead of thumbnails.

Also, due to legal issues: Thumbnails created on your Copyparty server for HEVC videos will not display. Until a solution is found, a gray box will appear instead.

I’ve also fixed a responsiveness issue in my onboarding.

.

Attachment
Attachment
0
Elie

I started working on Copyparty compatibility last night. And wow, I had no idea it would be such a hassle.

I ran into several issues, particularly with files that wouldn’t stay in place and kept deleting themselves, because Copyparty can’t overwrite files. So I had to delete them and put them back.
Also, the thumbnails wouldn’t load, and it took me at least two hours to debug. The reason was that the size was incorrectly specified in my server configuration, which prevented the thumbnails from loading…

It’s working now. I still have a few things to do and test regarding Copyparty, but I’m almost done with the first version of the app!

Attachment
0
Elie

I finished connecting to Copyparty!
When the user does not enter the correct information, an error is displayed in a dialog box.
Otherwise, when the user forgets to fill in a field, the app displays an error in the missing text field.

Currently, when the connection is successful, a message is displayed in the console.

I encountered several problems, particularly with certificates that Flutter rejected. So I created a function with IOClient to counter this. And a bug that displayed the success message despite an error. These problems have, of course, been fixed.

Attachment
Attachment
0
Elie

This is what the login page for Copyparty looks like! It’s a little outdated at the moment, but personally I like it, and it’s certainly quite different from the onboarding page.

I didn’t have much inspiration, but despite that, I think it looks pretty good. Especially since it’s been a long time since I’ve designed a login page.

Attachment
1

Comments

Elie
Elie 3 months ago

I don’t know why it looks so close to the edge on the screenshot. That’s not the case in real life 🙌🏼

Elie

I’ve started working on the onboarding, and this is what it looks like so far. Personally, I love it, but the background isn’t animated yet. I’ll do that if I have time before March 31.

Attachment
0
Elie

Here are the new icons for iOS in Liquid Glass!

Gemini generated the basic icon and I modified it with Icon Composer. It is available in several shades: light, dark, and tinted.

Attachment
0
Elie

The application has been optimized. Loading times are shorter. It is now possible to have completely personalized albums. You can create, edit, and delete albums, and the data is sent to your servers so that it is synchronized between your devices.

1

Comments

Elie
Elie about 2 months ago

I just want to clarify that the 42 hours is because I finished the album section all at once. I was really focused on that part and didn’t think to keep a devlog…

Sorry about that 😅

Elie

Hey, because of exams, I didn’t have time to develop and make good devlogs, but I’m back!

The app has undergone several UI changes.

First of all, the Album page has finally been developed. Here’s what it looks like; it’s very similar to the iOS one. I’ve combined iOS 17 and 26 because I think it’s the perfect mix.

The “Hidden” and “Recently Deleted” albums require Face ID, Touch ID, or a passcode.

For the viewer and library, I’ve developed an animation that plays when you open and close a photo (see the video).
The tab bar doesn’t hide at the moment; the library I’m using is experiencing an issue, but it will be fixed soon.

Attachment
0
Elie

Two days ago, I started adapting the application for Android and iOS versions lower than iOS 26.

To make this portability possible, all the LiquidGlass elements I used must be readapted for these operating systems.
For now, this is what it looks like, but there will be improvements over time.

NB: To facilitate the development of the interface, all the images in the gallery are the same. I will display the real images in a few days.

0
Elie

This is what the image viewer on iOS 26 will look like!

Attachment
2

Comments

Adi
Adi 4 months ago

Cool

chefpenguino
chefpenguino 4 months ago

looks really good!

Elie

In 4 hours and 20 minutes, the Photo Library page already looks very similar to Apple’s.
For now, the app is only available in French, and the images are not clickable.

Attachment
0