Maui Report 16 2 months ago

Today, we bring you a new report on the Maui Project’s progress.

Maui 2.0 was released almost four months ago, and since then new features, bug fixes, and improvements have been made to the Maui set of apps and frameworks; the following blog post will cover some of the changes and highlights from the last month of development.

What’s new?

Among many bug fixes that will be listed below for each individual app, some of the highlights include faster startup times, around 5X faster on the PinePhone and other ARM-based devices, which means that Maui Apps now start under 5 seconds or less in low-end devices with slow speed I/O reads.

Index, has initial support for handling file permissions; Clip, the video player, now can use two different backends MPV or GStreamer, and the UI is now more in pair to Pix and other Maui Apps; MauiKit Controls now are quicker when being created, since many parts are delayed into asynchronous loaders.

All of the MauiKit Frameworks now make use of the Qt Quick Compiler to precompile the QML sources at build time, this can be turned off when building the frameworks by passing the flag -DQUICK_COMPILER=OFF

To have more detailed information and screenshots keep on reading!


MauiKit

Once again, the framework has been cleaned up, and many bugs have been solved, resulting in better performance and optimizations. This is what’s new:

Core

  • The ImageViewer control is now back at MauiKit Core and reused on MauiKit ImageTools.
  • The Style source, defining Maui HIG’s sizes for fonts and icons, was moved from QML to C++.
  • More lazy initialization of controls by using asynchronous Loaders.
  • Now uses by default the Qt Quick Compiler, the build time flag is -DQUICK_COMPILER=ON
  • The MenuItemActionRow button now displays the text under the icon on mobile devices, on desktop the icon can be hovered to reveal the tooltip text.
  • The Luv icon theme and Maui Style can now be bundled and enforced using -DBUNDLE_MAUI_STYLE=ON and -DBUNDLE_LUV_ICONS=ON. If the Maui Style is bundled using the flag then it is also precompiled using the Qt Quick Compiler.
  • Fix memory leak on non deleted singleton instances.
  • The AppViewLoader control now is asynchronous.
  • The Dialog control gained a new property autoClose to prevent from closing the dialog and allow for a second confirmation before closing it. It also now properly calculates its implicit height.
  • The TabView control was polished and the mobile overview mode now has hovered states on the cards.
  • The ApplicationWindow’s AboutDialog is now only loaded when requested.
  • The source code has been cleaned up from unneeded includes and imports.
  • Maui Style styling fixes for scrollbars and the BusyIndicator rotation animation.

FileBrowser

  • The methods to retrieve a file’s basic information metadata no longer extracts user, group, and owner information, this can be a slower operation according to QFile documentation.
  • The FMList model to list the file system has been cleanup.
  • Fixes to translatable strings.
  • Now malformed URLs can be correctly formatted, for example, URLs with trailing or extra “/”s
  • Fixed issue warning about malformed URL when performing a search.
  • Now uses by default the Qt Quick Compiler, the build time flag is -DQUICK_COMPILER=ON
  • More lazy initialization of controls by using asynchronous Loaders.
  • The source code has been cleaned up from unneeded includes and imports.

TextEditor

  • Now uses by default the Qt Quick Compiler, the build time flag is -DQUICK_COMPILER=ON
  • More lazy initialization of controls by using asynchronous Loaders.
  • The source code has been cleaned up from unneeded includes and imports.

Maui Style

  • Styling fixes to ProgressBara and Switches.

Maui Apps

For the upcoming 2.1.0 stable release, we expect to move Strike, the IDE, and Sol, web browser to a stable release, while Booth, the camera app, will move to beta.

Maui Apps now launch much more quickly, thanks to precompiled QML sources, usage of asynchronous Loaders, and refactored source code. As an example, Vvave takes around ~3 seconds to launch in the PinePhone and 1.7 seconds on an RPI4 with Manjaro ARM, that’s around 5X faster than before. The same improvements can also be found in all the other Maui Apps, and further performance boosts can be expected in the future.

Index

  • Faster startup times.
  • Initial support for handling file permissions.
  • Polished menu entries.
  • Polished Open With and Share dialogs.
  • Precompiled QML sources
  • Slicker file previewer.
  • Bumped Android manifest version.

 

Index

Vvave

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • Lazy initialization of the database.
  • Refactored sources scanning workflow.
  • The settings section to add new sources gained a new button to force a re-scan of the collection.

 

Nota

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • Polished New File dialog.

 

Buho

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • The notes overview cards now do not take more height than the minimum needed.
  • The No-Notes placeholder now has a button to quickly create a new note.

Pix

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • Option to disable initial scanning of geolocation tags for the whole collection.

Station

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • Minimal Tabs overview switcher

 

Station – Terminal Emulator

Clip

  • QtMutimedia is now used by default.
  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • Better UX.
  • The initial placeholder gives the option to open external files or form the collection.

Clip – Video Player

Shelf

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.

 

Communicator

  • Faster startup times.
  • Precompiled QML sources.
  • Polished menu entries.
  • The contact page is now a MauiKit Popup dialog.

Release date 2021 2022 2023
February 1.2.1 2.1.1 2.2.2
May 1.2.2 2.1.2 3.0.0
August 2.0.0 2.2.0 3.1.0
November 2.1.0 2.2.1 3.1.1

A quick reminder of the project near future goals:

  • Fully utilize CMake. [Done]
    • Developers can build apps and the framework with CMake for all targeted platforms.
  • More feature-rich applications. [In Progress]
    • Pix image editor and GPS location browsing.
    • Vvave metadata editor and cloud streaming.
    • Index – feature-rich file management.
  • Improve data synchronization using NextCloud. [Pending]
    • Only Buho and Vvave have initial support.
    • For 2.1, We will add support for Pix as well.
  • Improve performance. [In progress]
    • We have split the MauiKit framework into different components.
    • MauiKit::Core controls are faster and more coherent.
  • Improve the UI cohesion on all supported platforms. [In Progress]
  • Move beta apps to stable. [In Progress]
    • Shelf and Clip have been moved to stable, missing the Sol, NX SC, Booth, Strike.

One Reply on Maui Report 16

This looks great, I think I am going to try this framework 🙂

Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>