๐Ÿƒโ€โ™‚๏ธ Fast : An Efficient Way to Build Extensions

On linux, I installed to my home directory (/home/me/.local/share/FAST...).

Where can I change the default icon.png for my own icon.png ? I don't want to have to add it everytime I create a new extension...

Good question Tim, I want to know the same thing too, but on Windows.

I had been working on a future-ready feature and inadvertently forgot to remove it before the release. It'll be removed with the next update.

Could you please show the logs?

When you write code with Java8 features, desugaring is needed.

I'll add it with the next update. Thanks for your suggestion.

1 Like

:loudspeaker: An update is pushed. Please run the update command to have the latest version v1.1.3


  • Added support for using a default icon.png.
  • By default, desugar_sources is now enabled.
  • Removed mock-related attributes from the fast.yml config.
3 Likes

No, today I will show you some simple extension with lambdas compiled without desugaring.

1 Like

Great tool! :heart_eyes: Love the Java 8 and Kotlin support. The size optimization and multi-component features are awesome. Plus, the code suggestions in IDEs make it super easy to use. Very efficient and modern! :sunglasses:

1 Like

This is a desugaring compilation with Fast:
pl.patryk_f.testlambda.des.aix (4.7 KB)

This is the compilation without desugaring from Rush:
pl.patryk_f.testlambda.aix (4.2 KB)

Both compiled in jdk11. And this is a simple source:

package pl.patryk_f.testlambda;

import com.google.appinventor.components.annotations.*;
import com.google.appinventor.components.runtime.*;
import android.widget.TextView;

public class TestLambda extends AndroidNonvisibleComponent {

  public TestLambda(ComponentContainer container) {
    super(container.$form());
  }

  @SimpleFunction
  public void SetClicable(Label label) {
    TextView textView = (TextView) label.getView();
    textView.setOnClickListener(v -> Clicked());    
  }

  @SimpleEvent
  public void Clicked() {
    EventDispatcher.dispatchEvent(this, "Clicked");
  }
}

So I think using D7 is completely unnecessary. We can use D8 with or without desugaring.

The D7 file is probably the DX that AppInventor used to use?

4 Likes

Yes, you're absolutely right. Without desugaring it's working perfectly on AI2 and Niotron. Only Kodular is throwing an apk build failed issue.

Yes, you're right here again.


Thanks a lot for your investigation and suggestions. It helped me a lot to understand the build process again. Now, I'm going to modify the compilation process to allow you to compile Java 8 code even desugaring is disabled.

3 Likes

Do we have an uninstall method, or do we simply remove the directory in ../.local/share/Fast?

2 Likes

This may not be due to lack of desugaring, but only because the extension was compiled in sdk11. Maybe if it was compiled in sdk8 it would be fine even with lambda.

Extension-template arranges the blocks alphabetically. Rush arranges them in the order in the java source. This could be another option in fast.xml to choose from.

2 Likes

Can you give some instructions for how to install Fast manually, not with powershell iwr, since my computer (windows 7) can not install powershell, and I got some problem with accessing Github (and any google services). Thanks.

1 Like

I've added the manual installation process for Windows to the original post. Please click here to see.

2 Likes

Yes. Currently, we need to remove the Fast directory to uninstall the FAST. Also, we need to remove the FAST_HOME variable and the remove the path of the Fast dir from the environment path. I'll try to provide a way to uninstall the FAST using command. Thanks.

1 Like

I hope you are still working on adding the feature of arranging blocks according to the order of the code and not according to the alphabet.

3 Likes

I also mentioned it here:

2 Likes

:loudspeaker: An update is available (v1.1.4)


  • Fixed Java 8 sources compiling issues even desugaring is disabled.
  • Added custom bootclasspath support for targeting Java 8 on JDK8+
  • Now it'll write additional logs to logs.txt at the installed location of FAST.
  • Changed title color and some prints color (blue to orange).

:warning: A clean installation is required, the update command might be not working.

:+1: Special thanks to @Patryk_F for helping me understand the build process :bouquet:

5 Likes

I'm working on it. I'll try to implement this as soon as I can. Thank you @mahmoud_hooda, @Patryk_F :+1:

4 Likes

Can we use intelj ide to edit source of extension ?

2 Likes

Nice i like to try as beginner extension developer. :+1:

2 Likes

Thanks. and futher to that, I need to copy the unzipped files to

C:\Users\Administrator\AppData\Local\Fast

2 Likes