šŸƒā€ā™‚ļø Fast : An Efficient Way to Build Extensions

17290888964984910270779313575145

Version Date

Credit: The idea of the installation process and the project structures is inspired by RUSH. Thanks a ton, Shreyash :+1::gift:

:star2: Features


  • Annotations less source codes.
  • Java 8 support, including lambda expressions (()->).
  • Support for Kotlin language to writte extension components.
  • Support for Multi-component in extension.
  • Integration of new red helper/drop-down blocks.
  • Up-to-date ProGuard library 7.6.0.
  • All @annotations will be removed from built aix.
  • Optimizer to optimize aix size even without ProGuard.
  • It generates a smaller size of extension.
  • Ability to declare manifest attributes in AndroidManifest.xml.
  • Support for Code suggestions on VSCode, Eclipse, IntelliJ IDEA and Android Studio.
  • Filter Mit App Inventor provided classes to reduce the aix size.
  • Support for project migration to FAST from Rush, extension-template & App Inventor source based extension.
  • Support for Jetifier to make Android Support libraries compatible with AndroidX.

:handshake: Supported OS


  • Windows
  • Linux
  • MacOS
  • Android (Termux, UserLand, etc)

:question: Requirements


  1. Only Java is required to run the FAST. (JDK 8 or 11 is recommended).

:thinking: How to install?


:desktop_computer: Windows Only


  1. Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/win.ps1 -useb | iex
  1. The installation is successful. You're now good to use the FAST CLI.

:computer: Linux, MacOS & Android Termux


  1. Run the the below command on terminal.
curl https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/install.sh -fsSL | sh
  1. The installation is successful. You're now good to use the FAST CLI.

:thinking: How to update the FAST


:desktop_computer: Windows Only


  1. Make sure that FAST is already installed on your system.
  2. Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/win.ps1 -useb | iex
  1. Done. Check the version of updated FAST.

:computer: Linux, MacOS & Android Termux


  1. Make sure that FAST is already installed on your system.
  2. Run the the below command on terminal.
curl https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/install.sh -fsSL | sh
  1. Done. Check the version of updated FAST.

:thinking: How to create a new FAST project


  1. Open terminal at where you want to create a new FAST project.
  2. Run fast create <ProjectName>
  3. Enter the package name.
  4. Enter author name.
  5. Done.

:thinking: How to declare the component class


  1. You need to annotate with @DesignerComponent to declare extension component classes.
    Example:
@DesignerComponent(
  version = 1,
  versionName = "1.0",
  description = "Developed by JEWEL by Fast.",
  iconName = "icon.png"
)
  • Required attributes: version, iconName
  • Optional attributes: versionName, description, designerHelpDescription, helpUrl, licenseName
  • Ignored attributes: category, androidMinSdk

:thinking: How to build a FAST project


  1. Open termanl at where the FAST project is.
  2. Run fast build to build the project.
  3. Done. The compiled extension should be inside the out directory.

:thinking: How to compile with ProGuard?


  1. Make sure that the proguard attribute is enabled on the fast.yml config file. Ex. proguard: true
  2. Run the build command with -r as an additional argument. Ex. fast build -r

:bulb: Want to share an idea?


Please share your ideas here.

:bug: Getting issues?


Please open an issue here.

:handshake: For additional support


Please send me a private message or comment below.

:memo: Release Notes


Please read the release notes from here.


Thanks a lot to all the beta testers of FAST. Without their feedback and help, it would have been impossible to make FAST a stable compiler. :tada:


12 Likes

Nice work...will try this.

2 Likes

Can it be installed alongside RUSH, or are they mutually exclusive?

2 Likes

Thank you! Since Rush hasn't been updated since 2021, FAST is very welcome and overdue to make things easier for less experienced developers (like me).

3 Likes

The FAST is a modified version of extension-template repository system. No conflict with Rush. You could use both tool together on your system.

4 Likes

I've tried this much better experience than Rush and moore features that make it different

1 Like

Are the appinvetor runtime classes up to date in Fast? Because extension-template hasn't been updated for a long time.

2 Likes

Yeah, there are. The runtime classes and the Android.jar are also up-to-date. And I'll try to keep everything updated when needed. You have the option to personally add any missing libraries to the installed location.

4 Likes

:+1:

2 Likes

You are most welcome :bouquet:

2 Likes

Nice broo, I am glad that I was one of the beta testers of this wonderful tool.
Keep on :heart:

2 Likes

Certainly, you are one of the most remarkable testers who have generously contributed numerous innovative ideas to enhance the capabilities of the Fast feature.

1 Like

Great :smiley:, this is very advanced and I'm glad that I was one of the beta testers of this wonderful tool.

2 Likes

I am truly grateful for your invaluable contributions and suggestions for Android Termux. Your assistance has been immensely beneficial to me.

2 Likes

Is the implementation process of helper blocks the same as described here ?

2 Likes

Certainly, you are correct. I appreciate your inquiry.

2 Likes

The FAST CLI feels like a breath of fresh air for us (extension developers). After testing it out, Iā€™m genuinely impressed with its speed. Thank you for bringing this valuable tool to us!

4 Likes

Thank you for your feedback. I am pleased to hear that you are finding the FAST CLI efficient and that it is having a positive impact on your work.

2 Likes

I may have missed some PR confirmations, but what are these files for?: mock_js and mock_css

1 Like
  1. Why does compilation fail when using deprecated interfaces? I understand the warnings but this should not break compilation.

  2. Why do we need to use desugaring? In Rush I can compile extensions without unnecessary desugaring. Is it possible to adapt Fast to compile in Java 11 without desugaring?