This repository contains a full sample android application showcasing the usage of both Futurae SDK and Futurae Adaptive SDK. It is an open-source app using all of our available features using the latest Android architectural and UI patterns.
The SDK Sample App in this repository is provided as is and is intended solely as an example implementation to assist customers in integrating Futurae’s SDKs. This SDK Sample App is not designed for production use, and Futurae does not offer support or maintenance for it. Futurae makes no representations or warranties, express or implied, including but not limited to, any warranties of merchantability or suitability, or fitness for a particular purpose, or non-infringement, regarding the SDK Sample App. Futurae does not warrant that the SDK Sample App will be uninterrupted or error free or without delay.
-
Clone the repository:
git clone git@github.com:Futurae-Technologies/android-sdk-sample.git
-
Configuration:
- You need a valid
google-services.jsonfile from Firebase using the package-namecom.futurae.sampleapp - You need to define valid SDK credentials (ref here). This project reads gradle properties:
SDK_ID,SDK_KEYandBASE_URLand creates the respective string resources, read byfuturae.xml - If you are using Application Integrity Check Embedded into Enrollment and Authentication flow, you need to enable the Integrity API on your Google Cloud project, and include your Cloud Project Number found on your Google Cloud Console as
CLOUD_PROJECT_NUMBERgradle property to be able to use your quota during those embedded Integrity Verdict requests. This will also create a string resource, read byfuturae.xml. - Refer to Authenticating to Github Packages in order to access the published Futurae SDK artifacts, to build the project. You can set
gradle.propertiesforGITHUB_ACTOR&GITHUB_TOKEN.
- You need a valid
-
Run the app: Build and run the application on your device or emulator.
This Sample app is also used for development of our new SDK features. The master branch represents the latest stable version. Development and feature branches may be unstable or WIP.
The project is organized primarily using a feature-package structure.
Additionally, there are common utils and ui packages containing shared utilities and UI components used across different screens.
The structure within each feature package typically follows this approach:
- A
Composablefile. - Optionally, a
ComposableUIStatefile (either a data class or sealed class, depending on the screen's complexity). - An
/archfolder containing architectural components (e.g., ViewModels). - Optionally, a
/usecasefolder containing the use cases relevant to this feature.
Throughout the project's packages, there are dedicated README.md files to assist navigation and provide clarifications for each feature or flow.
| Feature / Flow | Description | README |
|---|---|---|
| SDK Configuration | Overview and usage of SDK configuration options | SDK Configuration |
| Enrollment | Flows for enrolling the device | Enrollment |
| Account Management | Active account list | Account List |
| Manual Entry | Enrolling using ShortCode | Manual Entry |
| QR Code Scanning | Flows initiated via QR code scanning | QR Code Scanning |
| Lock SDK | Handling locking and unlocking of the SDK | Lock SDK |
| Automatic Account Recovery | Account recovery from previous installments | Account Recovery |
| SDK Recovery | Recover SDK from corrupt state | SDK Recovery |
For detailed information about the SDK, please refer to our Official Documentation.
Contributions are welcome! Please feel free to submit pull requests.
This project is licensed under the Apache License 2.0.