question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Since people are asking where we currently are and what is planned next, here is a somewhat updated roadmap for the immediate future. I hope that here it would be more visible and get updates more often.

Current state

Project is ready for use on Desktop platforms for projects targeting systems with “west-friendly” locales (CJK text input and RTL text aren’t supported yet) and people who are able to see (screen readers aren’t supported yet either).

For the list of issues to be addressed for mobile platform support see Mobile section below.

0.9 release

  • Text layout engine for Skia backend. Will add support for Unicode surrogate pairs, RTL text and inlines
  • Global menu bar for macOS and some Linux distros
  • Input method support. Right now we are just handling whatever events are sent by keyboard which isn’t suitable for CJK text
  • Touch input and scroll support
  • Ahead of time XAML to MSIL compilation

1.0 release

We don’t want people to get TypeLoadException when using 3rd party controls and components, so the main focus there would be ensuring future API/ABI stability.

So we will most likely focus on features that would break API compatibility when implementedl. Notable examples are IME support currently planned for 0.9 release and Wayland backend for Linux that will probably require some rework of Popup API.

We’ll also need to integrate some API diff to our CI process, something like Mono’s API diff tool that generates nice API diffs for PRs

Mobile

For running properly on mobile platforms we still lack several features. They aren’t tied to a particular release because of the general lack of manpower. But we are getting there.

General infrastructure:

  • [DONE] Touch event support (I’ve got a laptop with touchscreen, to things will speed up a little)
  • Touch selection controls in TextBox
  • A way for controls to announce that they want text input, will be resolved by Input Method support
  • [DONE] XAML compilation to IL. It’s fine to parse XAML at runtime on Desktop/iOS, since either device is powerful enough or parser is compiled using LLVM and is a bit faster.

Missing bits in mobile backends:

  • Enable GPU acceleration. We currently have a generic infrastructure for enabling OpenGL(ES) rendering that we are utilizing on desktop platforms, so it should be relatively easy to wire it up on mobile.
  • [DONE] (managed overlays) - Add support for overlays for iOS (yes, they aren’t implemented at all)
  • [DONE] (managed overlays) - Fix overlays for Android (they were working before, no idea what’s happened)

WebAssembly

I’ve spent a weekend tinkering with WASM using Blazor and SVG render target to avoid Skia linking issues. It turned out that while our ControlCatalog being somewhat operational, the current performance of Mono interpreter is way too slow. It also might be the fault of our layout algorithms or me missing something since the debugging story on WASM is currently non-existant.

You can see the incomplete demo here: http://testapp.keks-n.net/ don’t even try to open calendar or datagrid pages, they take ages to load.

So, for now we are waiting for SkiaSharp to be updated to a more-recent release of Skia, our core framework becoming faster and Mono optimizing its interpreter.

Historically writing a new backend for Avalonia has taken a week or two, it was usually the lack of features in the core framework that prevented us from utilizing platform features before.

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Reactions:190
  • Comments:50 (26 by maintainers)

github_iconTop GitHub Comments

22reactions
npolyakcommented, Dec 8, 2019

I am new to Avaloniaui, but very excited about possibility to build multi-platform applications with mmore than full power of WPF. My question is when are you moving to .net core 3.1? Currently the application is still using .netstandard2.0 from what I see. I bet a lot of code and dependencies can be removed if .net core 3.1 is utilized.

13reactions
kekekekscommented, Nov 13, 2020

I was wondering what the current state is for mobile platforms and when they might be finished?

0.11, next year

Read more comments on GitHub >

github_iconTop Results From Across the Web

Vampire Survivors - 0.10.109 - Roadmap & Tweaks
Tweaks - Added an on-screen keyboard in the new menu for gamepad and Steam Deck users - Increased grace time between key presses...
Read more >
0.10 Milestone
A refreshingly simple data-driven game engine built in Rust - 0.10 Milestone · bevyengine/bevy.
Read more >
Version History | Vampire Survivors Wiki - Fandom
0.10.109 - Roadmap & Tweaks. Tweaks. Added an on-screen keyboard in the new menu for gamepad and Steam Deck users; Increased grace time...
Read more >
Roadmap
This roadmap gives an overview of the project direction. A detailed list of features planned or under consideration can be found in the...
Read more >
Roadmap — sparse 0.10.0+0.gf1a29cd.dirty documentation
The aim of PyData/Sparse is to create sparse containers that implement the ndarray interface. Traditionally in the PyData ecosystem, sparse arrays have been ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found