Adir Hudayfi is a Microsoft engineer by day, and by night he works on Fluent Search an application that gives a
Spotlight like experience on Windows. We caught up with Adir to find out more.
Please tell us about your project Fluent Search? What is it, who is it for? What can it do?
Fluent Search, as you might’ve guessed, is a search app.
The main goal of the app is to improve the productivity of its users, and it’s doing it by searching in all computer resources extremely fast.
By all resources, I mean everything – apps, windows, files, browser history/bookmarks, screen text, in-app content like tabs, links, and the ability to extend itself using a no-code UI platform to build extensions.
Fluent Search provides a full-screen search which gives the ability to use the computer with a keyboard only.
I aimed for Fluent Search to provide a fluent and fast experience for its users, that's why performance was super important. Avalonia has a unique architecture, everything is pluggable, renderer, style system, etc. This means that I was able to provide optimisations specific to my application, enabling performance unachievable elsewhere.
You built Fluent Search primarily for Windows, why was Avalonia a good choice for a Windows-only application? Should others consider Windows-only applications look at Avalonia?
Yes, absolutely. When a developer thinks about a cross-platform framework they think that there will be a downside, whether it’s performance or visuals, but that’s not the case with Avalonia.
As a developer, I always aspire to use the best tech that fits the project I am working on.
For most of the development of Fluent Search the UI was able to run on both Avalonia and WPF (UWP was straight up not an option). My testing showed that Avalonia performed far better, and gave me more modern visuals with its built-in with support for Windows Composition rendering.
I believe that Avalonia is currently the best option for .NET developers looking to develop a new desktop app that is not primarily a touch focused app. It is as flexible as WPF, while it looks as great as UWP/WinUI with Fluent design and it is also actively maintained.
Most new Windows app developers are looking for a fresh design that matches the Fluent design system, so I am sure Avalonia will be great for them. Many Fluent Search users still think the app was built using UWP.
I actually participated in "Launch 2021", it is an annual event for showcasing Windows applications. Its normally reserved only for UWP applications, however now it is open to all Fluent design applications. Many people were surprised that Fluent Search was already taking advantages of new Windows 11 features like Mica material effect (this was before it was available in UWP).
Did you have any difficulties working with Avalonia and where did you turn to when you needed help?
As a WPF developer, I had an easy time to start using Avalonia, once you realise that 99% of the WPF guides apply to Avalonia as well you will find a wealth of WPF and Avalonia based material online that can all be used.
I did encounter a few issues through the years, as I have been using Avalonia since its alpha days, however the community was always active, bugs get addressed extremely fast and since it’s open-source I had many chances to add new features that I needed like the new Windows 11 Mica effect one week after its release.
All libraries or 3rd party controls that I needed, graphing library, html rendering, rich text editor, were all available for Avalonia.
How do you feel about the future of Avalonia and will you use it in other projects that you work on?
I feel confident thinking about the future of Avalonia, as someone who’s been using it since its early days, I am happy to see it finally getting recognition, like the recently added full support in JetBrains Rider and adoption by industry leaders like Unity (PlasticSCM).
I shall keep using Avalonia for some new Windows-only projects I have in mind, I hope that other Windows app developers will look at Avalonia as it is a great option for new Windows only applications and also for modernising existing ones.
You can find out more about Fluent Search here.