--- title: "Get Started for Android" url: https://docs.catalyst.zoho.com/en/sdk/flutter/v2/setup-for-android/ description: "To build your Flutter mobile app with Android as your primary development target, you will need to set up the environment required for developing an Android app in Catalyst. " last_updated: 2026-08-17T12:16:04Z service: All Services type: general related_links: - name: "Environments" url: /en/deployment-and-billing/environments/introduction/#introduction - name: "Developer Tools" url: /en/deployment-and-billing/environments/introduction/#introduction - name: "Android SDK" url: /en/sdk/android/v2/overview/ --- # Get Started for Android To build your Flutter mobile application with Android as your primary development target with the Flutter SDK, you will need to set up the environment required for developing an Android app in Catalyst. ### Prerequisites and Minimum Supported Environments Before you begin working with your Flutter app on the Android platform, you must ensure that you meet the following prerequisites and configure these minimum supported environments: * [Create a Flutter project in Android Studio or any supported IDE](https://docs.flutter.dev/get-started/test-drive?tab=androidstudio) * Ensure that your Android project meets these minimum supported environments: * OS- Android API Level 21 (Lollipop 4.4) * Kotlin- 1.3.20 * Gradle- 3.4.0 * Set up a device or an emulator in your IDE for running your app You can register your app with Catalyst and download the configuration file that is provided tailored to your app. You must include this configuration file in your Android app's structure, as it will contain the definitions of certain properties required for your app to function properly. ## Setup After you meet the prerequisites for the Flutter and Android setups, follow these steps to set up and integrate the Android package with your app. ### Step 1: Register your Android app with Catalyst You can begin by creating a package for the Android app in Catalyst to register it, and downloading its unique configuration file. 1. Click the Settings icon from your Catalyst console in your project. ![catalyst_console_settings](https://catalyst-docs-development.zohostratus.in/images/sdk/flutter/catalyst_console_settings.webp) 2. Navigate to **Developer Tools** under *Project Settings* in the settings menu, then click on the **Android** tile. ![developer_tools_android_sdk](https://catalyst-docs-development.zohostratus.in/images/sdk/flutter/dev_tools_android_sdk.webp)Alternatively, you can click the **Add Package** button below. 3. Enter a package name that will identify it uniquely. Provide the URL to redirect the end-user to after they login to the app, as the Redirect URL. ![android_sdk_create_package](https://catalyst-docs-development.zohostratus.in/images/sdk/flutter/dev_tools_android_sdk_package_1.webp)The values that you enter here will be auto-filled in the configuration file. > **Note**: A package name will be uniquely associated with that OS. Therefore, you cannot create packages with the same name for both Android and iOS apps. You must provide unique values. Ensure that Android is selected as the OS type. 4. Click **Create** to create the mobile SDK package. 5. The console will then display a window from where you can download the configuration file. Click **Download** to download the file. ![android_sdk_package_successful](https://catalyst-docs-development.zohostratus.in/images/sdk/flutter/dev_tools_android_sdk_package_2.webp) The file will be downloaded with all the required configurations. The properties in this file are explained in the next step. ### Step 2: Import the Configuration File in Your Android Project Catalyst provides two work environments to develop and build your applications in: a **Development** sandbox and a live **Production** environment. You can learn more about them from the [Environments help page](https://docs.catalyst.zoho.com/en/deployment-and-billing/environments/introduction). When you create a package in the console, only the development environment's configuration file will be available for download initially, irrespective of the environment you are working in currently. You can choose to download the configuration file from the console for any environment any time, once the package has been created. The configuration files of each environment would be named as: * Development: `app_configuration_development.properties` * Production: `app_configuration_production.properties` Based on the environment that you are working in, you must download and add the appropriate file to your Android app's structure. To obtain a production environment configuration file, you must [deploy your project to production](https://docs.catalyst.zoho.com/en/deployment-and-billing/environments/initial-deployment) first and then [download the file](https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/developer-tools) from the *Developer Tools* settings section. The configuration file must be added to the `assets` directory of your Android app module. Typically, the `assets` folder is created in the `app/src/main` directory. ![android_sdk_android_studs](https://catalyst-docs-development.zohostratus.in/images/sdk/android/android_sdk_android_studs.webp) Refer to the [official Android documentation](https://developer.android.com/studio/projects) for detailed help on Android app modules. #### Properties of the app_configuration_development.properties/ app_configuration_production.properties File The app configuration file defines the properties mentioned in the table below. All these values except the request headers are automatically populated, based on your project's details or the default standards. > **Note**: You can refer to the links specified in the table, to know where you can obtain these values from.
Property Data Type Description
`clientID` String Unique identifier of your app client registered in Catalyst. This is received in the configuration file.
`clientSecret` String Secret value generated for a specific `clientID`, which is passed along with the API hits. This is received in the configuration file.
`portalID` String Unique identifier received in the configuration file
`redirectUrl` String The callback URL of your app that you provided while creating a package for it in the console, in the previous step
`projectID` Long The [unique ID](https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/general-settings/) of your Catalyst Project
`apiBaseURL` String The URL of the Catalyst server through which the internal API is called. You must use the appropriate URL ([development URL](https://docs.catalyst.zoho.com/en/deployment-and-billing/environments/development-environment/#function-url-and-web-app-url-in-the-development-environment) or [production URL](https://docs.catalyst.zoho.com/en/deployment-and-billing/environments/production-environment/#function-url-and-web-app-url-in-the-production-environment)), based on the environment you are working in.
`oauthScopes` String The scopes that would be used by the app to access the Catalyst APIs from your project. You can find the available OAuth scopes [here](https://docs.catalyst.zoho.com/en/api/oauth2/scopes/#Scopes).
`requestHeaders` String The headers that would be sent by the client in the HTTP requests The values of the request headers must be individual key-value pairs, separated by commas like: `requestHeaders=`*key1:value1, key2:value2*
`serverTLD` String The top level domain of the data server Acceptable values: `AU`, `CN`, `COM`, `EU` and `IN`
`printStackTrace` Boolean Enables you to obtain a detailed trace of the logs, if the `printStackTrace` value is set as '**true**'. The default value is '**false**'.
`minLogLevel` String Enables you to set the logging preferences for the app Acceptable values: `warnings`, `errors`, `information`, `debug`, `ALL`
`httpRequestMode` String Defines whether the HTTP requests are synchronous or asynchronous Acceptable values: `SYNC`, `ASYNC` Default value: `ASYNC`
`connectTimeOut InSec` Long The connection time out value (in seconds) of the HTTP request sent from the SDK That is, if a response for the client request isn't received from the server within this time, the connection will be terminated
`readTimeOutInSec` Long The read time out value (in seconds) of the HTTP request sent from the SDK That is, if data isn't received from the server within this time, the connection will be terminated
`writeTimeOutInSec` Long The write time out value (in seconds) of the HTTP request sent from the SDK That is, if the request fails to write or send the request data to the server within this time, the connection will be terminated
`JWTClientID` String The client ID property of the custom server token (JSON Web Token token) generated for third-party authentication to be passed to the client
`JWTClientSecret` String The client secret property of the custom server token (JSON Web Token token) generated for third-party authentication to be passed to the client
> **Note**: * If the values of the `clientID`, `clientSecret`, `projectID`, or `portalID` are modified in the configuration file, it will affect the functioning of the SDK and your Android app. If you wish to change any of these configurations, you can [create a new package](https://docs.catalyst.zoho.com/en/getting-started/set-up-a-catalyst-project/developer-tools/#create-a-mobile-sdk-package) for the required project from the Developer Tools section and download a new configuration file for the appropriate environment, and add it to the `assets` directory in your app's structure. * The values of the properties that are populated in the downloaded configurations file can be dynamically accessed using the `ZCatalystApp.configs` object. ### Step 3: Configure App Login Redirection When a user logs in to your app successfully, they will be redirected to your app's home screen. This user login and redirection is handled by the Catalyst SDK. To ensure that this redirection is handled properly, include the URL schema given below in the `strings.xml` file of your Android app: ```bash <string name="url_scheme">{redirection_url}</string> ``` The `strings.xml` file is automatically created when you create the Android project. You can find it by navigating to `app/src/main/res/values` in your app's structure. The file will already contain the string definition for your app name. Include this string along with it. You must pass the **Redirection URL** that you configured while [creating the package](https://docs.catalyst.zoho.com/en/sdk/android/v2/setup/#step-1-register-your-android-app-with-catalyst) for your app in Catalyst, in place of `redirection_url` in this code. ### Step 4: Set Required Permissions Catalyst SDK requires the following app permissions to be enabled, to ensure that your app functions seamlessly and to provide a smooth user experience: * `INTERNET`: To execute Catalyst APIs * `ACCESS_NETWORK_STATE`: To handle network failures To enable these permissions, you must declare them in the `AndroidManifest.xml` file, as shown below: ```bash <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> ``` You can find the the `AndroidManifest.xml` file by navigating to `app/src/main` in your app's structure. The setup for building a Flutter app with Android as the primary development target is now ready. You can now proceed to [implementing Catalyst Flutter SDK in your app](https://docs.catalyst.zoho.com/en/sdk/flutter/v2/implement-flutter-sdk/).