Releasing xaif: Run your App Inventor projects on (nearly) any operating system

Hello everyone,

I'm new to the community, so I hope this is a good place to post this:

If you (like me) have been looking for a way to run your App Inventor projects on different operating systems, I may have an early christmas present for you:

xaif is my new project I'm releasing today. xaif allows you to run an App Inventor project on nearly any operating system, including:

  • Android
  • Windows
  • Linux
  • as a web app
  • (potentially macOS and iOS: this hasn't been tested, because I need access to a Mac with XCode installed, but it should be easy to get it to work)

xaif builds upon the power of Flutter, an open source cross-platform app-development framework. But you don't have to write any Flutter code!
xaif transpiles (= compiles) your App Inventor project into a Flutter app, and then runs / compiles that Flutter app on different devices and for different operating systems.

To get started, follow the setup guide in the linked repository (in the Readme.md, the file that is displayed prominently on the page).
You will need to install Flutter (and depending on your computer's operating system some more tools).

Then you can just import an AIA file (exported project from App Inventor) and should be able to run and compile it within seconds.
It even supports hot reloading: if you select a new AIA file while the app is running on a device, the app "magically" updates (similar to the companion).

xaif supports nearly all built-in blocks, and a lot of components. The remaining components are (nearly) all possible to implement, it just takes more time to get to all of them.

Please note the license and disclaimer in the repository, as this project is still in an early development / beta phase (despite the huge amount of time already invested)
Nonetheless I'm already using it a lot and wanted to share it with all of you!

Of course, xaif isn't (intended as) a replacement for App Inventor in any way, but just a tool to further extend the amazing capabilities of App Inventor!

If you have any feedback or suggestions I'd be very happy to hear from you, either here or on Github.

Merry Christmas!

9 Likes

Neat project. I'm curious if you've tried to compile the companion app with this and what the results are.

1 Like

This is interesting. Could you post some screenshots and maybe links to a linux and windows executable so people can test how it looks and feels?

1 Like

Thank you!
The quickest way to get started is

  1. Install Flutter (https://docs.flutter.dev/get-started/install)
  2. Download and unzip one of the Windows or Linux builds from here

If you only follow the basic step from the Flutter setup (titled "Get the Flutter SDK") you should be able to use xaif right away and build e.g. a web app from your AIA file.
If you want to compile your app for Windows / Linux, you will need to also complete the respective steps from Flutter's setup.

(If you don't install Flutter you would only be able to generate a Flutter project, but not be able to actually run or compile that so it'd be pretty useless)

4 Likes

@ewpatton Thank you! This is the companion running in Firefox:


and here on Windows:

None of the companion's logic works, because the PhoneStatus component isn't implemented, and there is still a small bug I'll have to fix in the next days, before the xaif version on Github can parse the companion.

2 Likes

@Peter Here is a (sped up) video of xaif in action, running a very simple project on Ubuntu. (It's not the newest xaif release, but should give a good idea of the user interface):

@ewpatton I've fixed a few bugs, so the newest release should be able to run the companion better.

Due to the huge number of blocks, there is a good chance that there are more typos and small bugs, so if anyone encounters issues running their projects, please let me know! (I don't even have enough projects to test all blocks and components :smile:)

4 Likes

I am trying to run this tool, but I only get this:

@Patryk_F Thanks for trying it! It looks like you are trying to run xaif itself as a web app with flutter run?
If so, that is currently not supported. (I have a half-baked solution for that which I might be able to push later).

Please run it with flutter run -d windows, or use a prebuilt Windows executable. (I've clarified this in the Readme, sorry!)

(What is supported is running your projects as web apps, when xaif itself is running as a "native" Windows or Linux app)

Tried but getting this answer from PowerShell.

PS C:\xaif-main> flutter run -d windows
No devices found with name or id matching 'windows'

@Patryk_F Have you completed the "Windows setup" step of the Flutter installation guide? (As explained here: https://github.com/m0nac0/xaif/blob/main/README.md#download)

xaif itself is a Flutter app, so when you run it on Windows, you must be able to run/compile Flutter apps for Windows. (Generally that includes installing Visual Studio).

If you don't want to install Visual Studio, you could also use option #2 from https://github.com/m0nac0/xaif/blob/main/README.md#download (using prebuilt executables).

@Patryk_F I've added a web gui for xaif. Your previous approach of running xaif in the browser should now work if you pull the latest code from Github. The web gui only supports a limited subset of the components, but it might be a nice option to quickly test xaif.

I just published a new (pre-)release of xaif on GitHub, v.0.3.0.
It includes support for more components, a new web interface and now even the possibility to try out xaif without installing Flutter.
The changelog is here:

Feedback is again very welcome!

2 Likes

Update: there is now a web demo of xaif at https://m0nac0.github.io/xaif/

Please note that this web interface has serious limitations. For example, it supports far less components than the regular version. It should therefore only be used as a quick demo.
The regular setup is still described at https://github.com/m0nac0/xaif#readme

2 Likes

I really like this, seems very innovative and interesting. It'll save some time when developing apps and I think I may be able to run some game apps made by me in a linux (Ubuntu) desktop....I have not tried it yet though

Update (since I'm not able to edit the original post): I have now been able to test xaif for macOS and iOS and it works! So you can also run your AI projects on iOS/macOS with xaif (if you have a Mac).
Even without a Mac, it should be possible to compile an app for iOS with online services like codemagic.

1 Like

Why not? You should be able to edit your own posts @m0nac0

You are probably seeing

editPost1

  1. Click on the three dots

Then you should see

editPost2

  1. Click on the pencil and you should be able to edit.
3 Likes

I think I'm not "senior" enough to do that more than 24 hours after posting.