MAUI Migration Changelog

Uncategorized

Migrating away from Xamarin.Forms towards .NET MAUI

Xamarin.Forms is a development framework that was deprecated on May 1st, 2024. This means that, since that date, the framework lacked support and did not receive additional updates, not in terms of functionality nor in terms of security. For this reason, TenForce decided in February, 2024 to begin a migration towards the .NET MAUI framework, which came with several benefits:

  • Updates along with the .NET framework, persistent with the continued development of .NET itself;
  • Offers a wider range of components to use and preconfigurations;
  • Enables optimizations that were not possible with Xamarin.Forms.

Optimizations

Pop-ups

  • Introduction of new toolkit and refactoring of existing popups in the TenForce Mobile Application:
    • All popup types are now distinct components overlaid on the page below;
    • Popups on top of popups now belong to the overlaid component, and close together with the main component;
    • All popup types now reliably load the same;
    • Popup sizing is now normalized;
    • All popups now have a greater degree of dependability: across the board, similar responses and animations, and an equalized look and feel.
  • Background now dims correctly when opening a popup. Popups now focus correctly in all cases;
  • The Signature popup, specifically, now functions in line with other popup types;
  • The following popups have been updated with the new toolkit:
    • Create-new-profile popup
    • Pin code popup
    • Create-new-item popup
    • Global search popup
    • Activity center popup
    • Debug page popup
    • Feedback popup (errors, alerts, operation success notifications)
    • Context menu popup:
      • On activity center
      • On collections
      • On child collections
      • On (child-)items
    • Tabs popup
    • Filter popup on collections
    • Add-image popup
    • Barcode scanner

Collections

  • Collection filter now functions faster;
  • Collection smart filter now functions more reliably and faster;
  • Item card readability improvements;
  • Collections now initially load 40 items by default and have been optimized for online use.
  • Refactoring of several components on Collections level, with the aim of efficiency improvements.

Item Details

  • Carousel view will now reliably swipe between its different panels: no more getting stuck between two panels;
  • Item details now render Overview (default tab) first, instead of loading the whole item in one go.
  • Refactoring of several components on Item Details level, with the aim of efficiency improvements.

Debug Page & Error Logging

  • Removed “Optimize for Online” action button and replaced with default optimization to load 40 items per collection. This amount can now be set via the Debug Page itself.
  • Greatly optimized log gathering operations:
    • Crash Logs now contain a session ID and a user ID for the current and previous session in case of a crash;
    • General logs now contain information about connectivity, stack traces, and clearer error markings;
    • Log gathering operation now contains more necessary information;
    • Logs are now temporarily sent to Azure Cloud.
  • General optimization of alerts & errors channel: removal of Prism service, replaced with standard MAUI components;
  • Introduced connectivity check to send along with error logs (weak, strong, intermittent, no connectivity);
  • Removed “Battery check” from logs since no longer used or useful.

Synchronization and data load improvements

  • Split data threads between foreground/UI renderer and background service to tackle data loading:
    • Log in time greatly improved (up to 70% faster load to Welcome Page or Home Page);
    • Collection load improved by displaying items before full data set has been loaded for offline mode;
  • General optimization for backend synchronization: refreshing concept changes from web now displays faster (filter, collection details, item details, …)

UI/UX Improvements

  • Moved towards standard MAUI framework handlers and moved away from compatibility mode for UI rendering as it was present in Xamarin.Forms → general improvements to rendering consistency and expectancy.
  • Specific animations improved with the aim of smoothness:
    • Pop-up appearance
    • Loading animations
    • Background dimming animations
    • Login splash screen animation

Other Improvements:

  • Barcode scanner now supports a wider range of codes (1D and 2D)
  • Feed panel UI change when adding one or more image:
    • Adding an image now auto-scrolls to the text area underneath;
    • The comment box remains scrollable and is separate from the overall page scrollbar;
    • The comments area underneath remains separately scrollable.
  • .NET MAUI 9 update:
    • During the migration, the team also updated the framework to .NET version 9 which introduced:
      • Faster load speeds on log in, collection load, item load from global search, …
      • Snappier animations;
      • Several toolkits became available with .NET 9.
  • Added permission request for Phone access: the TenForce application uses this to send signal strength information along with logs when logs capture is enabled.

Bug Fixes

  • To be added when we have implemented all features.