Credit: The idea of the installation process and the project structures is inspired by Rush. Thanks a ton, Shreyash ππ
πββοΈ FAST (Feature-rich AppInventor Source Terminal) is An Efficient Way to Build & Publish App Inventor Extensions.
With FAST, you no longer need to use any class level annotations except @DesignerComponent or @Component.
Explore the wiki section for comprehensive overview and step-by-step instructions on FAST.
π If you are interested in accessing its premium features, please consider making a request for a (weekly/monthly/yearly/lifetime) premium access.
π₯ Premium features
- Core Library & Java 8 Desugaring.
- FastGuad (String Obfuscator).
- Maven & Gradle Dependency Resolver.
- Android manifests-merging.
- Package Relocator (Repackage classes).
- Minimizer (Strip unused classes).
- Xtend Programming Language.
- Modern Java (9-25) syntax.
- Attach AAR Libraries.
- Attach Custom XML.
- Generates Shadow blocks.
- Apply ProGuard/R8 rules from AARs.
- Copy blocks into Clipboard.
- Project specific JDK.
- Specifying defaults arguments.
- Supports compiling AIDL sources.
π₯ Hot features
- Dynamic Android Compile SDK API level.
- Generates docs in Markdown.
- Generates blocks as PNG for each builder when
-bpassed. - Dynamic ProGuard library.
- Integration of R8 Shrinker.
- Dynamic Kotlin Compiler.
- Seamless support for Java, Kotlin & Xtend languages.
- Supports
AARas dependencies. - Supports for multi-components in extension.
- Direct process helper classes without pre-compiling when JDK 8/11.
- Supports red drop-down helper blocks.
- All
@annotationswill be removed from built AIX even no ProGuard/R8. - Supports GitHub Actions workflows.
π§ Cool features
- Code suggestions on VSCode, Eclipse, IntelliJ IDEA & Android Studio.
- Declare manifest in AndroidManifest.xml.
- Supports shorthand class names
(e.g: ...MyService)in manifest. - Keep classes declared in manifest automatically when
-mpassed. - Auto Project migration from Rush, extension-template & AI2 source based project.
- Jetifier to migrate Android support libraries to Androidx.
- Java 8 support, including lambda expressions
()->. - Generates a smaller size of extension.
- Ability to filter AI2 provided classes to reduce the AIX size.
- Ready for server side integration.
- Windows
- Linux
- MacOS
- Android (Termux)
-
If you examine the generated Java file for your extension, you'll notice that there are no class-level annotations except
@DesignerComponentor@Component. Writing the@DesignerComponentor@Componentannotation is mandatory to declare the component class. In this way, you'll be able to use multi-component within a single extension. -
FAST replaced old annotations with new and short annotations. However, old annotations are still supported.
@DesignerComponent->@Component@DesignerProperty->@Designer@SimpleProperty->@Property@SimpleFunction->@Function@SimpleEvent->@Event
Instead of traditional build configurations and minimum Android SDK requirements, FAST uses a config file called fast.yml. This file manages everything, including external libraries and assets required by your extension. To learn more, visit the Config File Wiki.
Refer to this wiki to install the FAST on your system.
Refer to this wiki to update the FAST to the latest version.
- Open or navigate terminal at where you want to create your extension project.
- Run
fast create <ProjectName> - Enter the package name.
- Enter author name.
- Select language.
- Done.
- Open or navigate termanl at where the FAST project is.
- Run
fast buildto build the project. - Done. The compiled extension should be inside the
outdirectory.
- Make sure that ProGuard is enabled in fast.yml.
- Run the build command with
-r.
- Make sure that R8 is enabled in fast.yml
- Run the build command with
-s.