Skip to content

Repository files navigation

Photos for Immich

License: MIT Platform: Ubuntu Touch Built with Clickable Donate via PayPal

An unofficial, native Ubuntu Touch (Lomiri) application to connect, browse, back up and manage your photos and videos on an Immich server.

Disclaimer: This application has no affiliation or connection with FUTO or the Immich project. "Immich" is a trademark of FUTO. This software is provided "as is" without any warranties, is used at your own risk, and we accept no responsibility or liability.

Features

  • Direct Connection — the app talks only to your own Immich server; no intermediate servers, your data stays between your device and your server
  • Timeline & Gallery — high-performance photo/video timeline grouped by year/month/day with lazy loading, date fast-scroll and adjustable grid zoom
  • Photo & Video Viewer — fullscreen viewer with pinch-to-zoom, pan, swipe navigation, an EXIF metadata panel (resolution, camera, GPS) and video playback
  • Backup Engine — background upload of local photos and videos: SHA1 deduplication, progress with speed and ETA, upload queue with pause/resume, and a "Free Up Space" cleanup of already-backed-up files
  • Albums & Library — create, rename and delete albums, add and remove photos, favorites, archive and trash
  • People, Places & Search — browse by recognized faces and geolocation, smart text search (CLIP-based when enabled on the server)
  • Sharing — create password-protected, expiring shared links and manage shared albums
  • Convergence Ready — the layout adapts from phones to tablets and desktop displays
  • Privacy — credentials and session tokens are stored only in the app's local database and never leave the device

Screenshots

Screenshot 1 Screenshot 2 Screenshot 3

Screenshot 4 Screenshot 5 Screenshot 6

How it's built

The app is an unofficial, community-made client for the open-source Immich self-hosted photo and video backup platform, rebuilt natively for Ubuntu Touch. The UI/UX follows the official Immich mobile app, while the entire networking stack is implemented against the public Immich REST API.

AI Development Process

This project is a unique showcase of modern software engineering utilizing Artificial Intelligence as a core development driver:

  • AI-Driven Engineering — the application was built heavily through the use of AI tools and models to generate QML UI components, Qt bindings, and API logic.
  • Visual Modeling & Prompting — the interface and business logic were recreated purely by visually observing the official Immich mobile application and precisely describing those behaviors and visual aspects via text prompts to the AI.
  • No Reverse Engineering — we did not use decompilation, code scanning, cracking, or any other reverse-engineering techniques against the official Immich application.
  • Public Open Sources — all Immich API endpoints utilized in this project are part of the publicly documented Immich REST API (https://immich.app/docs/api) and were verified using standard diagnostic tools against our own Immich servers.
  • Human Review & Testing — the AI-generated code underwent strict code reviews and was rigorously tested by live human developers on physical devices — specifically the Google Pixel 3a and Google Pixel 3a XL running the latest version of Ubuntu Touch (Focal).

Tech stack:

  • Qt 5.12 / QtQuick 2.9 with the Ubuntu UI Toolkit (Ubuntu.Components 1.3)
  • C++11 backend — asynchronous image provider, multi-threaded backup engine and a local HTTP media proxy for video playback
  • QtQuick.LocalStorage (SQLite) for local settings, credentials and the backup sync journal
  • CMake + Clickable build system, AppArmor-confined click package

Architecture:

  • qml/Main.qml — entry point: session state, global viewer and upload queue, global dialogs/overlays, error handling
  • qml/pages/ — screens: login, timeline, photo viewer, albums, library, people, places, search, sharing, uploads, backup settings, about
  • qml/components/ — reusable UI: custom header and bottom navigation (matching the original app), photo grid, timeline, dialogs, bottom sheets
  • qml/js/ImmichApi.js — REST client for the Immich API (/api/auth, /api/timeline, /api/albums, /api/assets, /api/search, ...)
  • qml/js/Storage.js — SQLite wrapper for credentials, settings and the backup sync journal
  • src/BackupEngine — C++ background backup: device media scan, parallel SHA1 hashing, multipart uploads, local HTTP media proxy for Media Hub and MP4 dimension parsing
  • src/ImmichImageProvider — asynchronous image://immich thumbnails with an in-memory LRU cache and EXIF auto-rotation

Build and Run

# requires clickable (https://clickable-ut.dev)
git clone https://github.com/puqcloud/Photos-for-Immich
cd Photos-for-Immich
clickable

Multi-architecture release packages:

clickable build --arch arm64
clickable build --arch armhf
clickable build --arch amd64

Author & Support

License

MIT © 2026 PUQ Software (Ruslan Polovyi)

About

Unofficial native Ubuntu Touch (Lomiri) photo and video gallery client with auto-backup for Immich.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages