github immich-app/immich v1.27.0_37-dev

latest releases: v1.116.2, v1.116.1, v1.116.0...
2 years ago

Highlighted

Deduplication

I want to extend my thanks to @panoti. He has single-handled implemented the deduplication and hash calculation after a long period of investigating and discussing with the internal team. We can now rest assured that no duplicated photos or videos will be in the system simultaneously.

Virtual Scrolling - Web

virtualscroll
Test instance of about 15_000 photos and videos - Should behave similarly on 100_000 assets instance

With the increasing number of users, we have many cases that currently have more than 100_000 photos and images combined in their gallery. With the current implementation of naively getting all the photos and video metadata and then painting them on the screen, the browser, of course, will crash, and the initial load time will be a century long. Itchy to solve this scaling problem, and with a nice pointer from the Google UI Designer himself in the article Building the Google Photos Web UI, we now have virtual scrolling on the web.

The implementation is exactly similar to how the article presented it. All of the photos and videos that are not in the viewport are not rendered. This helps reduce the browser's resource usage and reduces the initial load time as in you only have a dozen photos and videos in the database.

I sincerely hope you guys find this feature enjoyable.

PS: Firefox is currently performing better than Chrome for this feature. Other optimization of this feature will be pushed out in the upcoming releases.

Better caching system - Mobile

The web has virtual scrolling. What about the mobile app?

The mobile app has been handling many assets very well with the help of Flutter’s rendering engine, which is somewhat smarter than the web. For this release, we are pushing out a mechanism for you to manage the caching of the assets. The cache thumbnail and assets content will be saved to the local storage to improve the loading time.

We eventually will want to implement some mechanisms that are similar to virtual scrolling on the web in the mobile app as well to reduce initial data load time.

What's Changed

Server

  • optimization(server): add asset repository and refactor asset service by @alextran1502 in #540
  • fix(server): avoid loading all file content on memory by @panoti in #545
  • fix(server): parse all image formats and enrich metadata by @panoti in #547
  • feat(server): calculate sha1 checksum by @panoti in #525
  • feat(server): generate a checksum for previously uploaded assets by @panoti in #558
  • feat(server): support 3gpp format by @panoti in #582
  • feat(server): de-duplication by @panoti in #557
  • hotfix(server): skip EXIF extraction on duplicate file by @panoti in #590
  • fix(server): change the createdAt and modifiedAt to the correct type in the database by @alextran1502 in #591

Mobile

  • feat(mobile): add Korean translation for the mobile app by @hismethod in #549
  • feat(mobile): better caching for mobile by @matthinc in #521
  • fix(mobile): persist WiFi + charging settings of background backup by @zoodyy in #553
  • feat(mobile): ask the user to disable battery optimizations when turning on background backup by @zoodyy in #554
  • feat(mobile): Italian language for Mobile App by @badbreze in #559
  • feat(mobile): update localizely.yml to include danish locale by @SirBogner in #574
  • fix(mobile): fix cache related crash by @matthinc in #593

Web

  • fix(web): file uploading error in album page by @panoti in #550
  • feat(web): virtual scroll on the web by @alextran1502 in #573
  • fix(web): upload assets to an album in asset selection by @alextran1502 in #579
  • feat(web): show all albums an asset appears in on the asset viewer page by @matthinc in #575
  • feat(web): use the runtime environment variable for login page message to lower web container startup time by @bo0tzz in #577

Support

If you find the project helpful and help you in some ways, you can support the project one time or monthly from Github Sponsor

It is a great way to let me know that you want me to continue developing and working on this project for years to come.

F-Droid

You can get the app on F-droid by clicking the image below.

Get it on F-Droid

Android

You can also download the app from Google Play Store here

The App version might be lagging behind the latest release due to the review process.

iOS

You can download the app from Apple AppStore here:

The App version might be lagging behind the latest release due to the review process.

Cheers! 🎉

New Contributors

Full Changelog: v1.26.0_36-dev...v1.27.0_37-dev

Don't miss a new immich release

NewReleases is sending notifications on new releases.