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

After this suggestion I looked at the proguard configuration in more detail and there was indeed a mistake:

I'm not sure if this is necessary, but if so, the name of the entire Integer class is missing here.
public Integer toUnderlyingValue();

It should be:
public java.lang.Integer toUnderlyingValue();

1 Like

These rules will be sufficient to keep all required things from the helper class.

-keep enum pl.patryk_f.extension.helpers.MyIcon {
 public protected *;
 public static **[] values();
 public static ** valueOf(java.lang.String);
}

FAST will handle it by default from the next update v1.2.8.

1 Like

:mega: An update is available v1.2.8

Date built: 13.11.24.15.09


  • Modified the default ProGuard rules to keep all required methods and values from helper classes.
1 Like

Wasn't this introduced in an earlier version?

1 Like

FAST was keeping helper classes, but there was an issue. I've fixed it in v.1.2.8. You could also do the same from earlier version of FAST by using custom rules with the proguard-rules.pro.

1 Like

Please make sure the @DesignerComponent annotation is present in your component source code.

See here.

2 Likes

Excellent and very fast! Thank you @JEWEL .

3 Likes

You're welcome @Passos_0213 :bouquet:

3 Likes

The ListView component has changed, its new methods are not available in Fast.

3 Likes

If you are referring to these changes, you only need to add the dynamicanimation-1.0.0.jar into Fast/libs/appinventor/ and I will include it with the next update.

1 Like

I mean the AndroidRuntime library.

2 Likes

Thanks, I've also noticed that after wrote my last reply. I think I've to build the AI2 source to get the latest AndroidRuntime.jar.

1 Like

:pushpin: FAST will require a minimum of JDK11 after these changes are implemented.

3 Likes

Hi @JEWEL
I am use -o build flag and then extension size increase.
How can work this flag?

1 Like

Set proguard: true on fast.yml and run fast build -r command. The -o command is specially designed to optimize libraries of Kotlin when desugar_deps is enabled.

:mega: An update is available v2.0.0

Date built: 22.11.24.00.52


  • :fire: Added Maven dependency resolver.
  • The sync command has been optimized.
  • Removed some duplicate libraries to optimize ProGuard task.
  • The .gitignore file has been modified.
  • Remove comments from default project.
  • Updated AndroidRuntime.jar with these changes.

:man_running: Enter a new era of extension development with FAST 2.0, unlocking the full power of Maven like dependency management.

6 Likes

How to use resolver?

1 Like

To see how to use remote dependencies, start a new project. Remember, whenever you add or change any remote libraries, you'll need to run fast sync and before running the fast build. However, you could use remote libraries in your old projects. Just you need to reconfigure the fast.yml to be compatible with FAST 2.0.

A clean installation of FAST 2.0 is required.

So, instead of updating I have to reinstall fast after uninstalling it?

1 Like

Getting this

  __           _   
 / _| __ _ ___| |_ 
| |_ / _` / __| __|
|  _| (_| \__ \ |_ 
|_|  \__,_|___/\__| (v2.0.0)

- Fetching local dependencies
- Resolving compile-time dependencies
  - Searching for required dependencies
x Failed to collect dependencies at org.jetbrains.kotlinx:kotlinx-coroutines-core:jar:1.7.1```

My fast.yml depndencies

compile_time:

  • org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1
  • org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1
  • org.jetbrains.kotlin:kotlin-stdlib:1.9.10
  • com.squareup.okhttp3:okhttp:4.12.0
  • com.google.code.gson:gson:2.10.1
  • androidx.lifecycle:lifecycle-runtime-ktx:2.7.0
  • androidx.lifecycle:lifecycle-common-java8:2.7.0
  • androidx.appcompat:appcompat:1.6.1
  • androidx.fragment:fragment-ktx:1.6.2
  • androidx.activity:activity-ktx:1.8.2
  • androidx.browser:browser:1.7.0
  • androidx.core:core-ktx:1.12.0 ```