Skip to content

Frontend rewrite #26

@petabyt

Description

@petabyt

Operation 'Fantasy Fudge'

Task: Rewrite the activity-based fudge UI in an immediate-mode UI library.

Why: Current UI is slow, has too much state code, only works in portrait mode, and is hard to maintain.

  • Main Screen
  • Image Gallery
    • Load thumbnails currently in view as user scrolls
    • Load thumbnails in the background
    • Load in metadata on idle
  • Image viewer
    • Progress bar
    • Zoomable image viewer

Things that should improve/be added:

Jetpack Compose

  • Recommended Android UI library, used by Google for Google Play, settings app, etc
  • Kotlin has great Java interop
  • Good FFI support (JNI)
  • iOS and desktop support with compose multiplatform
  • Backed by Google and JetBrains
  • A slow migration can be done, since compose allows embedding views and using legacy view code

Flutter

Challenges

  1. Gallery is really hard to deal with. It has to lazy load thumbnails (many times slower than loading local files) and keep up with quick scrolling (loading last seen first), as well as loading in metadata when the thunbnail loader is idle. This works OK right now, but it still stutters.

  2. Learning curve. I normally do embedded development so jumping to a very high level language like Kotlin screws with my head and the way I'm used to reading code.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions