How Do You Set a Flutter Target File Based On Android Product Flavors?

· 8 min read
How Do You Set a Flutter Target File Based On Android Product Flavors
How Do You Set a Flutter Target File Based On Android Product Flavors

Even after trying a lot, you fail to set the target file base on the android product flavors. In this blog, you will get to know everything about the android product flavors and how to set target file base using flutter!

The core principle of the android product flavors is the same as preparing different principles of omelet. For example, the egg is the common element in the omelet preparation, whereas you can add whatever you want, such as potato, onion, and others. Likewise, in Android, the base ingredients are the common code in the main directory accessible to all flavors.

In addition, you will have various code directories for every flavor to develop the flavor specific code, such as the flavor ingredients. Join hands with the experts at the best Flutter app development company to know in-depth about the android product flavors.

When to use android product flavors?

Plenty of situations in which you can use the product flavors in Android. But, some of the critical scenarios are mentioned here. Have you ever witnessed the pro and free versions of the same app in the play store? The app’s pro version has all the features of the free versions.

In addition, it includes the pro features. This is one of the ideal situations to access product flavors. By default, Android accesses two build types: release and debug. If you run the app via Android studio, it will install the debug apk. But, you will see both build types when building apk.

Remember that build types are entirely different from the product flavors. The top-level distribution of the app variants is the product flavors. On the other hand, the build types are the internal variants of every flavor.

How to create flavors?

Google makes the process of creating the product flavors in Android much easier. Now, you have to add the productFlavors block inside the android block in the app-level build.gradle file. It is a simple code to create product flavors.

android {
flavorDimensions 'default'
productFlavors {
dev {
dimension "default"
applicationIdSuffix ".dev"
}
stag {
dimension "default"
}
prod {
dimension "default"
}
}
}

Create flavors Dimension
Create flavors Dimension

How to setup Android studio Flutter?

When using VSCode, you have to change something android specific in some cases. You need to right-click the android folder in VSCode and then choose “open in android studio.” Once the android studio is open, you may confront the error: dart SDK not found? But, there is nothing to panic about.

The solution is straightforward because all you have to do is add the Flutter SDK path. To do so,

Step 1: Tap on the Android Studio on the top left

Step 2: Select preference

Step 3: Unfold languages & frameworks

Step 4: Select flutter

Step 5: Select flutter SDK path

Step 6: Click on apply button.

Then, you should do some minor changes and then create a new app. Here are the changes you have to do.

import 'package:flutter/material.dart';
import 'package:targety/ui/pages/my_app.dart';
void main() => runApp(MyApp());
main.dart is the same as the default template. And, here is the code to set up the android studio.
import 'package:flutter/material.dart';
import 'package:targety/ui/pages/home.dart';
class MyApp extends StatelessWidget {
// It is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '',
theme: ThemeData(),
home: MyHomePage(title: 'Targety');
}
}

How to flavor a flutter in Android?

It is easy and simple to flavor the flutter in Android. Here is what you require at the minimum.

flavorDimensions "release-type"
productFlavors {
dev {
dimension "release-type"
applicationIdSuffix “.dev”
versionNameSuffix “-dev”
}
prod {
dimension "release-type"
}

Run this command on your android device to see the magic.

Flutter – how to set the target file base on android product flavors

Are you accessing flutter to build the application? Have you followed certain guides on building various environment entry files and creating main_dev.dart and main_prod.dart? But, you are confronting issues when trying to develop flavor for both Android and iOS using flavor in the command to develop different flavor applications.

As you need the target result mentioned below, you are now encountering the problem of combining flutter and flavor.

development flavor -> main_dev.dart entry file

production flavor -> main_prod.dart entry file

Description of problem

As mentioned below, it is possible to target the entry file in the .xcconfig file in iOS. But, you need to add –t lib/main_dev.dart after the flutter run command. So, you are searching for the best solution to set the flutter target file on the Android side.

// ios/Flutter/development.xcconfig
#include "Generated.xcconfig"
FLUTTER_TARGET=lib/main_dev.dart

There is nothing to worry about because you can utilize the following codes to fix the problem immediately.

Solution

At this moment, flutter run –t is not the only option to follow. If you open the Flutter project with the Android Studio, you will have the default config/run. Then, you have to click edit configuration. A new window will open where you can set the Dart entry point and Build Flavor.

Of course, you can create several configurations for every flavor. Therefore, it is the right solution for flutter in Android Studio. You can use the –t parameter in VSCode and perform configuration under .vscode/launch.json. Here is the exact code to do so.

"configurations": [
{
"name": "GoodOne",
"request": "launch",
"type": "dart",
"args": ["--flavor",
"good",
"-t",
"./lib/main-good.dart"
]
},
{
"name": "BadOne",
"request": "launch",
"type": "dart",
"args": ["--flavor",
"bad",
"-t",
"./lib/main-bad.dart"
]
}
]

VSCode and perform configuration
VSCode and perform configuration

Press F5 to run your flavors and select your config at the upper-left corner.

Code to set flutter. the target inside Android product flavors

flavorDimensions "app"
productFlavors {
prod {
dimension "app"
flutter.target "lib/main.dart"
}
dev {
dimension "app"
flutter.target "lib/test_main.dart"
}
}

Final words

If you have any doubt about this code, you can hire Flutter developers from Flutter Agency and get assistance from the experts without hesitation. Our experts will help you make the best out of the flutter platform and design your app or complete your project on time. We will guide and support you to set up the target file based on the Android product flavors.

Leave a Reply