Credit: The idea of the installation process and the project structures is inspired by Rush. Thanks a ton, Shreyash
Features
- Integration of R8 Shrinker.
- Maven dependency resolver.
- Support for
.aar
files as dependencies. - 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.1.
- Generates a smaller size of extension.
@annotations
less source codes.- All
@annotations
will be removed from built aix. - Optimizer to optimize aix size even no ProGuard.
- 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.
Supported OS
- Windows
- Linux
- MacOS
- Android (Termux, UserLand, etc)
Requirements
- Only Java is required to run the FAST. (JDK 8 or 11 is recommended).
How to install?
Windows Only
- Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/win.ps1 -useb | iex
- The installation is successful. You're now good to use the FAST CLI.
Linux, MacOS & Android Termux
- Run the the below command on terminal.
curl https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/install/install.sh -fsSL | sh
- The installation is successful. You're now good to use the FAST CLI.
Manual Process for Windows
- Download the FAST as zip from here.
- Unzip the it at where you want.
- Copy the absolute directory of the unzipped Fast folder.
- Create
FAST_HOME
environment variable with the copied value (Optional). - Set the copied value to path. mandatory
- Done. Now open the terminal and write
fast -v
to check the installed version.
How to update the FAST
Using Fast Command
- Open terminal and run
fast upgrade
. - If an update is available it will ask to download it. Enter
Yes
to download the latest update. - It will download the latest version. Wait while it downloads.
- Done.
Windows Only
- Make sure that FAST is already installed on your system.
- Run the the below command on Windows PowerShell.
iwr https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/win.ps1 -useb | iex
- Done. Check the version of updated FAST.
Linux, MacOS & Android Termux
- Make sure that FAST is already installed on your system.
- Run the the below command on terminal.
curl -fsSL https://raw.githubusercontent.com/jewelshkjony/fast-cli/main/scripts/update/install.sh | sh
- Done. Check the version of updated FAST.
How to create a new FAST project
- Open terminal at where you want to create a new FAST project.
- Run
fast create <ProjectName>
- Enter the package name.
- Enter author name.
- Select language.
- Done.
How to declare the component class
- You need to annotate with
@DesignerComponent
to declare extension component classes.
Example:
@DesignerComponent(
version = 1,
versionName = "1.0",
description = "Developed by JEWEL using Fast.",
iconName = "icon.png"
)
- Required attributes:
version
,iconName
- Optional attributes:
versionName
,description
,designerHelpDescription
,helpUrl
,licenseName
,androidMinSdk
- Ignored attributes:
category
How to build a FAST project
- Open termanl at where the FAST project is.
- Run
fast build
to build the project. - Done. The compiled extension should be inside the out directory.
How to optimize using ProGuard?
- Make sure that the
proguard
attribute is enabled in thefast.yml
config file. Ex.proguard: true
- Run the build command with
-r
as an additional argument. Ex.fast build -r
How to optimize using R8?
- Make sure that the
R8
attribute is enabled in thefast.yml
config file. Ex.R8: true
- Run the build command with
-s
as an additional argument. Ex.fast build -s
Want to share an idea?
Please share your ideas here.
Getting issues?
Please open an issue here.
For additional support
Please send me a private message or comment below.
Release Notes
Please read the release notes from here.
Donation
I have dedicated a significant amount of time and effort into developing the FAST. If you find my work beneficial and would like to show your appreciation, you may consider making a donation 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.