Testflight 2.12.0 - Nested folders

It’s been quite a while, but Nested Folders are finally here!

We just released the new 2.12.0 Testflight that, amongst other things, brings support for nested folders.
This new version of Panels has a new Library engine based on the device File System.

What exactly is the File-System-based Library?

Current version

The current version of Panels has a database-based library and a closed data container inside the app sandbox. This has some implications:

  • The files are stored inside a private folder that users can’t access. They are organized in a non-user-friendly way.
  • For easy access, files are stored in a flat structure. All the files are in the same folder, the same level, regardless of their organization in the Library. Also, each file is wrapped in a folder named after the file binary hash. This avoids name-clashing problems.
  • The library source of truth is the database. Even if a file is in the app sandbox, it won’t appear in the Library until a reference to it is added to the database. The reference not only contains information about the comic location but also about its organization.
  • Collections are stored in the database. They are registries in a table, and they have a list of contained comics.
  • If that reference is lost, restoring the comic is quite complicated because there’s no way to know in which collection that comic should appear.
  • Supporting nested collections while keeping this model is very challenging.

What’s new

We’ve completely revamped the logic to organize the Library with a completely different approach in this new version.

  • Files are now stored in a folder structure that mimics the library organization.
  • Each collection is now a folder in disk, and you can have folders inside folders. Hence, Panels will now support nested collections :tada:.
  • The source of truth is the file system. If the database gets deleted, the app can reconstruct the Library completely, based on the files and folders on the disk.
  • The data container is now user-friendly. It’s open, and you can access it from the Files app. You can now organize your content from outside Panels, or back it up.

Comic references

A nice feature in Panels, is that you can have the same comic in multiple collections without taking more space.
That’s why we are translating this feature in the file system as symbolic links.
In the new Panels, you’ll be able to either copy a file into another folder (will duplicate it and occupy double the space) or link it using a symbolic link (it will create a weak reference to the file without increasing the used space).

We have removed the “Add to collection” feature and, instead, we have implemented a copy-paste-like approach. You now can copy one or more files and then duplicate, move or link them in a different location.

Enjoy the beta

We are looking forward to all your feedback.

2 Likes

Wow. Been waiting for this a long time! You did it! How soon until it’s out of beta stage and ready for prime time? -Joe

Thanks Joe!

It depends on how many issues people/us find during the beta testing. We’ve been testing 2.12.0 for almost a month now, and we are very confident that everything is working as expected. We haven’t found any major issues so far.

If nothing comes up in the next few days, we might submit it to AppStore review on Sunday. Hopefully will be out next week.

I am REALLY excited to play with this. This looks awesome!

2 Likes

This is very nice; it would be even nicer if .CB[RZ] files would not just display a blank icon, but that is for some other day. Great work. One thing I noticed is that there is a “system-backup” folder in there that should probably not be exposed to the user, unless I am mistaken.

1 Like

Awesome update! Two questions:

  1. Where can you find the library in the Files app? I’m not seeing it so far.

  2. Does this also apply to OPDS libraries (Komga)? If not then does it at least open the door to being able to track read progress when streaming comics (Currently you can’t mark a comic as read or unread unless you download it to your iPad)?

Thanks @kopischke :pray:

One thing I noticed is that there is a “system-backup” folder in there that should probably not be exposed to the user, unless I am mistaken.

We generate this backup just in case something goes wrong in the migration from the old library to the new one.
We might get rid of it (or maybe hide it) in the final version. Thanks for flagging it though :wink:

it would be even nicer if .CB[RZ] files would not just display a blank icon

I guess you mean on Files.app, right? We are still investigating whether we can use some APIs to add the thumbnail to the file metadata. But it’s out of the scope of this release. Hopefully we can add that in the future.

1 Like
  1. Where can you find the library in the Files app? I’m not seeing it so far.

Panels folder is inside your “On My iPad” location.

  1. Does this also apply to OPDS libraries (Komga)? If not then does it at least open the door to being able to track read progress when streaming comics (Currently you can’t mark a comic as read or unread unless you download it to your iPad)?

Not really. Both things are unrelated. But we are planning to improve Komga support, including syncing reading progress. New user with some question about Komga support.

2 Likes

Can’t wait :nerd_face:

1 Like

Been waiting for this to be implemented. Any update on the live date?

We don’t have a release date yet. We’ve found some issues with the lock content feature and we want to fix them before the release.