🏃‍♂️ Fast : An Efficient Way to Build & Publish Extensions

Version Badge

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

:man_running: 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.

Explore the wiki section for comprehensive overview and step-by-step instructions on FAST.

:sports_medal: If you are interested in accessing its premium features, please consider making a request for a (weekly/monthly/yearly/lifetime) premium access.

:feather: Features

:1st_place_medal: Premium features

  • Gradle Dependency Resolver.
  • Maven Dependency Resolver.
  • Attach AAR Libraries.
  • Attach Custom XML.
  • Generates Shadow blocks.
  • Ability to apply ProGuard/R8 rules from runtime AARs.
  • Supports compiling AIDL sources.

:fire: Hot features

  • Dynamic Android compile SDK API level.
  • Generates docs in Markdown.
  • Generates blocks as PNG for each builder when -b passed.
  • Dynamic ProGuard library.
  • Integration of R8 Shrinker.
  • Dynamic Kotlin Compiler.
  • Seamless support for Java and Kotlin languages.
  • Supports AAR as dependencies.
  • Supports for multi-components in extension.
  • Supports red drop-down helper blocks.
  • All @annotations will be removed from built AIX even no ProGuard/R8.
  • Supports GitHub Actions workflows.

:droplet: Cool features

  • Code suggestions on VSCode, Eclipse, IntelliJ IDEA & Android Studio.
  • Ability to declare manifest in AndroidManifest.xml.
  • Supports shorthand class names (e.g: ...MyService) in manifest.
  • Keep classes declared in manifest automatically when -m passed.
  • 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.

:handshake: Supported OS

  • Windows
  • Linux
  • MacOS
  • Android (Termux)

:thinking: How to install?

Refer to this wiki to install the FAST on your system.

:thinking: How to Update?

Refer to this wiki to update the FAST to the latest version.

:thinking: How to create a new FAST project

  1. Open or navigate terminal at where you want to create your extension project.
  2. Run fast create <ProjectName>
  3. Enter the package name.
  4. Enter author name.
  5. Select language.
  6. Done.

:thinking: How to build a FAST project

  1. Open or navigate 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 optimize using ProGuard?

  1. Make sure that ProGuard is enabled in fast.yml.
  2. Run the build command with -r.

:thinking: How to optimize using R8?

  1. Make sure that R8 is enabled in fast.yml
  2. Run the build command with -s.

  • :money_bag: Donations are welcome here.
  • :memo: Release notes are here.
  • :light_bulb: Ideas are welcome here.
  • :bug: Submit issues here.
  • :balance_scale: View license.
  • :handshake: For getting additional supports, text me in PM or drop a comment below.

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:


22 Likes
How do I build an extension?
[Free] InstallReferrer Extension - Play Install Referrer Library (2.2)
[Free] JewelFilePicker Extension : Pick Any Type Of File From Storage
[F/OS] ComponentsTranslate: Dynamic Component Translation for App Inventor
[Paid] Path Maker An Extension for ai2 to render animated Text
[BETA] ThChromeCast for app inventor to interact with Chromecast devices
[FREE] Math Table - An ai2 Extension to displaying various types of educational tables and charts
[F/OS] DiscordInventor - an extension for creating bots for Discord servers
[FREE] ASD Downloader Extension - Download and manage files in ASD
:bar_chart: [FREE] HighChartMaker - an extension to make charts using "highcharts"
How do I create an extension?
[PAID] Receipt Builder for ESC/POS Thermal printing
Can you help me with create component from *.aar file?
GestureKit - An extension for MIT App Inventor 2. Extension to detect Swipe, Long Press, Click and Pinch gestures
How do I edit androidmanifest using extension?
[Free] Text Path View An Ai2 Extension to Use this extension as text path animation.
Error while trying to build an extension?
[Free] TimeSelectView - A custom time selection view.
Help with the development of the Unity Ads extension
Help with the development of the Unity Ads extension
I am creating Custom Designs list view Extension with integration of card view and recycler view
Spotlight - Highlights specific components and darkens the rest of the screen. Adds a border and animation.
[F/OS] Screen mirroring extension
[FREE] Async Image Loader Extension - Simple asynchronous image loader with circular image
[Free] LoadingCar - loading Car animation
Help downloading fast
[Paid] Fire Match and Fire Match Room Extension - Multiplayer matchmaking using Firebase 🔥
How do you make an extension?
[F/OS] LabelView - Make Awesome Label View
[F/OS] OneSignalPush Extension but not Succeed build till now (v1)
[F/OS] Texture Pack: Add Texture to Your Components
[FREE] Progresso: Progress Bar Extension - Create Awesome Linear and Circular Progress Bars
[FREE] CSV Tools Extension to work with CSV Files
Pattern Connect An extension like app lock
[Free] Bubble Charging Smart Bubble Charging Animation
[Paid] background video recorder An Extension To Record Background Video Without Open Camera App
CircularReveal - Circular animation effect that reveals or hides an Arrangement, on a button or from a button.
[Free] DiceRoll Dice Roller extension to roll a dice and fire event with the number
[Paid] Broken A realistic glass breaking effect to any view
[Paid] XChart Extension for App Anventor XChart is a powerful radar chart component for App Inventor
ButtonParticles - Image particles with smooth fade-in and fade-out on the button.
[Free] Analog Clock extension An advanced Clock for App Inventor
[Free] PDF Viewer Extension - An In App PDF Renderer and Viewer
[Free] UIStyle a range of styling options for HVArrangements
Just - Screen Always On
[Paid] Kidoz Ads Extension (SDK 9.1.2)
[FREE] SiriWave A simulate a Siri-like wave animation
[Paid] DeviceMockup - A realistic design and interactive mobile Desktop Laptop Smart Watch ScreenShot Mockup
[Paid] Startapp Ads Extension (Start.io) : SDK v5.2.0
ArrangementCapture - Capture image, rename, delete, flash effect
[Paid] Word Connect extension help to and create word puzzle Styles game for app inventor
WavySlider - Sine wave slider
Player - Device Audio, Loop - Play Streaming
[FREE] 🗄️BigDB - Advanced key-value storage with TTL, metadata, multi-table support, encryption, and more
StartDelay - Configure multiple events with different delay times in a single action.
[PAID] Firestore Extension: Interact with Firestore from Google Firebase with auth verification!
ProgressBar - Customizable Segmented ProgressBar, height, margin, and color
[Free] FlowingMenu Allows the drawer to be opened by dragging the edge or the entire screen.
[FREE] Custom Progress Dialog
ListViewer - Customizable Font, Alignment, Divider Size & Color
About Javascript
[Free] MathFlowers Lets Create beautiful mathematical flower patterns on a canvas
[Free] DynamicListView from Still Learning
[FREE] Extension: WGS84 to Gauss-Krueger converter
[Free] SlideToAct - Sliding actions, allowing users to easily interact
[FREE] DjMaps extension for OSM
Base64 Media Extension
Button • Custom: Icon, Radius, Border, Color, Gradient, HTML Text, Text Alignment
[PAID] PlayAI TTS- Generate AI TTS in 30+ AI Voices (Male & Female) at 10x faster inference
VideoPlayer - Play videos from local files or URLs in an HVArrangement or Dialog
[Free] BezierLoading The BezierLoading class provides a customizable loading animation component
[Free] RulerView - users to interactively scroll and select a value on a ruler scale
[FREE] Lock Puzzle A circular number puzzle component for ai2
:red_square: [FREE] PDF Page To Image
[F/OS] EnhancedDB: A Powerful TinyDB Alternative Using SQLite for MIT App Inventor
Checkbox - Create custom checkboxes: Sizes, borders, HTML text, text position, colors, checkbox shape, icons
[FREE]DjSlider extension
[PAID] xAI Extension- Integrate Grok into MIT AI2
[Free] DNAView A visualization of DNA and human body shapes.
AnimatedBorder - Border animation in HVArrangements.
[FREE] Color-Switch A Color Switch game component that creates an engaging endless runner game
[Free] MasicDraw A designed to facilitate the creation of visually appealing, symmetrical mandala patterns
EyeLoader that creates and manages animated eye and mouth components.
TextboxDialog - Create a textbox list with alignment, input type, background colors, hint, text, Fields Required and spinner
Enderman8843/Click BUG
LiquidProgress - Liquid progress within any image.
[Paid] Circular-Motion-View A circular motion view component that displays boxes moving in a circular path
[Free] AmbientLight - Creates a glowing effect around screen edges
[Free] ImageCropView - An Image Cropper With Customizations
[FREE] GoogleSheetAPI from Still_Learning
[Free] LongShadow - Create long shadow effects for views with customizable
Where can I compile aix extensions using java?
Where can I compile aix extensions using java?
[F/OS] ChatFlow: The Complete Open-Source Chat Extension for MIT App Inventor
[Paid] SlideUnlock - Customizable interface for users to unlock their app or access
AlertDialog - Custom Dialog -Title & Message (html) • Color • Radius, Icons & Buttons
Free AnimateText AIX Extension
CircularColorPicker - Color picker dialog, saturation, luminosity controls, color preview and save colors
Snake Game. Customizable
FloatingActionButton - Color, Size, Radius, Position, Icons, Text
Camera - Displays the camera to take photos and record videos in an Arrangement.
A lot of warnings when compiling an extension
FloatingArrangement - Make an `HVArrangement` float above other elements within another HVArrangement
AspectRatio - Sets aspect ratios in arrangements and detects device orientation changes.
[DEPRECATED][Freemium] GroqText: 30+ LLMs including DeepSeek, Llama, Gemma, ALLaM, Mixtral and Qwen (Search / Code Execution / Vision Models / Streaming and more)
ToneGenerator - Frequency tones with sine, sawtooth, triangle, square, and synthesized piano (organ-like) waves.
AudioExoPlayer a simple player with great potential
ImageLoader - Zoom, rotate, position, bring to front, send to back, flip, restore image, and delete
[PAID] 🤖 Groq Extension- Interact with multiple LLMs with Agentic Capabilities and MCP Servers- LLMs, TTS & STT all in one extension
[FREE] ListNinja Extension from Still_Learning
I need Guide & Help for Chat App
PeekPic - Get the last saved photo from the gallery with square or circular preview and multiple format selection.
Text - Editable text, multi-line, movable, scalable, and center-rotable. Color and font can be changed.
VolumeDialog - Pop-up volume control. One or Multiple controls
Paint - Convert an Arrangement into a paintable canvas. Undo, Redo, Stroke, Color, Eraser...
💎[PAID] BlixBlury: The Ultimate UI & Real-Time Blur and true Glassmorphism Extension
My BackPack does not work. It is greyed out
ScreenTouchEffects - Touch screen, returns the x, y position and touch effect.
DragDropPalette - Expandable multi-column draggable tool palette.
Patterns - Apply patterned backgrounds to canvas and arrangements.
RulerGuides - Guides dragged from rulers and grid system.
NumberPicker - Displays a list of numbers or a list of texts that are selected by swiping or clicking.
[PAID] :heavy_dollar_sign: In-App Billing : Advance Billing Extension (8.0.0)
[Free] ThColorPicker - Allowing users to select colors with options for alpha, hex, and preview.
QrCode - QR code generator with gradient background, bar gradient, image background, and icon.
Scanner - Scan QR and barcodes with camera view, laser line, flashlight, and scan with front camera.
[Free] WheelColorPicker - It's offering a user-friendly interface for selecting colors with various options such as wheel.
Flashlight - Turns the device's flash on and off with timer, blinking mode, and SOS flashing.
[Free] WLED - Control WLED LED strips via HTTP API.
ColorFilter - Apply a color filter to an image or change a specific color within that image (icon), and detect colors in the image.
OtnielGform- Extension for submitting data to Google Forms directly from App Inventor apps.
Error building aix using rush
[PAID] TrackRecognizer - Recognize songs and get their title, artist, album, record label, release date, and song link.
ColorDialog - Color Selection - Set your own colors in the dialog.
ColorGenerator - Generates random colors organized into categories.
Tetris - Classic Tetris Game.
[F/OS] ChatKaroUI Extension - Advance Chat with text, images and messages support
[F/OS] OpenAI Agent Extension for MIT App Inventor
[F/OS] Dynamic Components
[F/OS] Smart Personal Color - Skin Tone Analyzer with Color Harmony Palettes
(FREE) Supabase : With Authentication and Database
[F/OS] Canvas Layers - powerful tools for the Canvas component
GIF - Show gifs and click on them.
Minesweeper - Customizable classic game: rows, columns, mines, icons
[Free] MagicLine drawing a magical visual effect.
[Free] FlightSeat - Selection View of flight seats.
Base64 - Decodes, manages, and deletes images stored in the application's internal storage
[Paid] Admob Ads Extension : Integrate Latest SDK - 25.0.0 🔥
New feature, default values for properties and functions
[Paid] BaghChaal it's a disproportionate strategy Board game
HeadphoneControls - Detects when the user presses the physical buttons on the headphones, both wired and Bluetooth.
MediaService - Foreground Service - Keeps playback active even when the app is running in the background.
[FREE] - MonacoEditor - Microsoft's Code editor for your app!
HeadphoneConnection - Detects when wired or Bluetooth headphones are connected or disconnected.
[Free] DjGallery extension
CodeCrafter - Building App Inventor Extensions With Blocks
[F/OS] Webview2File Extension: Effortlessly Convert WebView Content to Stunning PDFs and Gallery-Ready Images!
[F/OS] Webview2File Extension: Effortlessly Convert WebView Content to Stunning PDFs and Gallery-Ready Images!
[F/OS] Webview2File Extension: Effortlessly Convert WebView Content to Stunning PDFs and Gallery-Ready Images!
How can I create extension? (on phone with Niotron IDE)
:hourglass_not_done: [FREE] DeviceTimer - set timers using the device's clock app
[FREE] Maps with MapLibre and multiples layers
DiceRoller - Create multiple customizable dice.
[Free] Grav allows you to create stunning particle animations.
LoadSVG - Visualize static and animated SVGs in an Arrangement.
[FREE] AirtablePro Extension Only for Airtable lovers
[FREE] TextAnimator - Made it for fun
AIX Generator | AI That Builds App Inventor Extensions Automatically | From Visual Apps to Native Power
[Free] ThFlashLight A Realistic Flashlight UI component with support for Android 13+ brightness control.
Making Extensions
[O/S] SwipeBackView SwipeBackView component allows activities to be dismissed and exit app with a swipe gesture.
Hertz - Frequency Generator
[Paid] ResideMenuView Provides a beautiful sliding menu with 3D paper folding animation.
Media - Media3/ExoPlayer - Play audio from URLs, local files, and assets - Shoutcast and Icecast Current Song Metadata.
[FREE] - MarkdownText: Convert Markdown text into styled text for Labels, Buttons, or any TextView-based component.
ScrollBar - Show or hide the scroll bar of arrangements, make static arrangements scrollable, enable scheduled smooth scrolling
AlbumArtFinder - Get album art for a song from Last.fm, Deezer, or iTunes.
LyricsFinder - Get song lyrics using LRCLIB and Lyrics.ovh APIs
TicTacToe - Two game modes: 2 players and AI. Custom Colors, Symbols and Stroke...
[Free] DjButtonTool extension
[Free] SemiCircleArc - An advanced, customizable semi-circle progress bar extension.
[Paid $3] :fire: Push Notification Pro Extension (An Alternative For Onesignal/FCM, Based On Firebase Realtime Database- AIA File Provided)
[FREE] Native Google Sign-In + Firebase Sync
🧠 350+ Models: A massive library of AI capabilities for any task
[Free/ Beta] XPP - Xml Pull Parser
[Paid] JewelRecyclerView : An Advanced Recycler View Extension
ParticleEffect - Particle effect with image, similar to the text effect Facebook displays in Messenger when you type a keyword.
Toast - Custom Toast: Position, background & text color, size, radius, HTML text & icon
[Free] WordToSpan - Create URL, Mail, Mention, Tag & Text highlighter
[Paid] CurtainMenu A sliding menu that implements a curtain effect when opening the menu
Badges - Image with customizable notifier, with a badge or text applied.
[Free] ContributionsView Extension
ResistorCalculator - Resistor Calculator and Draw a resistor with color bands
[Paid] Glide - An image loading and caching extension for focused on smooth scrolling
Stepper - Visual tracker of delivery or current project status with steps and icons
[Paid] AdManager Ads Extension : SDK V23.3.0 :fire:
[Paid] TagSphare A 3D rotating tag sphere component with icon support
:green_square: [FREE] NeoDialog Extension from Still_Learning
Textbox - Gradients & Borders
[Paid] CustomLetter allows users to display and animate letters with customizable
[Paid] XYTouchView - Allows you to create interactive, traceable path animations. It supports SVG paths, built-in shapes, character tracing (A-Z, 0-9)
Slider - Customize colors. Add icon/image as thumb. Indicator bubble
AppInfoTools - Extension to get app details like version code, version name, package name, install time, update time, and app name
[Paid] PianoView - An advanced, realistic, Playable Without External Audio Files and customizable Piano Keyboard view
ClickEffect - Multiple click effects for components: Button, Image, Arrangement, and Label
Tooltips - Custom tooltips: Text, Text Color, HTML, Alignment, Background Color, Corner Radius.
[BETA] Circular menu Extension an interactive circular menu with customizable properties
How to get serviceUuid and characteristicUuid when I use the bluetoothLE extension?

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.

6 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:

3 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.

2 Likes

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

4 Likes

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

3 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!

6 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.

3 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?