recco 1.3.0 copy "recco: ^1.3.0" to clipboard
recco: ^1.3.0 copied to clipboard

Recco is a personalized, and user-friendly approach to health and wellness recommendations based on users' unique interests, motivations, and health behaviors.

recco_header

Flutter Android iOS

Pub DEV

Recco Flutter Plugin #

This repository holds the codebase for the Recco Flutter plugin. Instructions on how to add and use this plugin can be found in the Usage section.

Overview #

Personalized, and user-friendly approach to health and wellness recommendations based on users' unique interests, motivations, and health behaviors. Whether they are looking to improve their fitness, manage their stress, or simply lead a more fulfilling life. Recco is designed to help them reach their full potential.

Learn more about Recco SDK:

Usage #

Add this to pubspec.yaml

dependencies:
  recco: 1.3.0

Setup on Android #

Github Packages #

This Flutter plugin internally depends on the Recco Android SDK, which exposes its components through Github Packages. Therefore, the configuration for Github Packages is required. Please refer to the Personal Access Token section to obtain a valid set of credentials. Once you have a valid Github PAT, proceed to configure your gradle.properties file located under the ~/.gradle/ folder.

gprUser=your-github-user-here
gprKey=your-github-PAT-here

After setting the Github credentials, then you have to add to your app build.gradle file the next configuration to be able to fetch the packages:

repositories {
    mavenLocal()
    maven { url 'https://jitpack.io' }
    maven {
        name = "GithubPackages"
        url = "https://maven.pkg.github.com/SignificoHealth/recco-android-sdk"
        credentials {
            username = gprUser
            password = gprKey
        }
    }
}

Check Android Gradle plugin version and source compatibility #

Ensure that in your root/top level build.gradle file the Android Gradle plugin version is at least 7.4.0

Ensure that in your root/top level build.gradle file the Kotlin version is at least 1.9.0

buildscript {
    ext.kotlin_version = '1.9.0'
    ...
}    

Make sure also that in your app build.gradle is provided the following source compatibility configuration:

android {
    //...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }
}

Hilt dependency #

Recco Android SDK depends internally on Hilt. If your Android app does not use Hilt already, you will have to add this setup:

In your root/top level build.gradle file, add the Hilt plugin:

plugins {
    // ...
    id 'com.google.dagger.hilt.android' version "2.47" apply false
    id 'org.jetbrains.kotlin.android' version '1.8.0' apply false
}

Then, in your app build.gradle file, resolve the Kapt and Hilt plugins, and add Hilt dependencies:

apply plugin: 'kotlin-kapt'
apply plugin: 'com.google.dagger.hilt.android'

dependencies {
    implementation "com.google.dagger:hilt-android:2.47"
    kapt "com.google.dagger:hilt-android-compiler:2.47"
}

As the last step, decorate your Application class with the @HiltAndroidApp annotation:

@HiltAndroidApp
class ShowcaseApp : FlutterApplication() {

}

and add it to the AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <application
        android:name=".ShowcaseApp"

You can check the Flutter example Android app for more details.

Setup on iOS #

This Flutter plugin internally depends on the Recco iOS SDK, which exposes its components through CocoaPods. Important: Please make sure your Cocoapods master repo is up to date by running pod repo update. After this, you need to add the Recco pod to your Podfile as follow:

pod 'ReccoUI'

Note: Make sure you have defined platform :ios, '14.0' or higher in your Podfile.

ReccoPlugin new Instance #

final Recco _reccoPlugin = Recco();

Init #

Initialize Recco SDK at the initState of your app.

Future<void> _initializeRecco(String clientSecret) async {
    try {
      _reccoPlugin.initialize(clientSecret, ReccoStyle.spring(
         androidFont: AndroidFont.poppins,
         iosFont: IOSFont.sfPro
      ));
    } on PlatformException catch (e) {
      debugPrint("Error: '${e.message}'.");
    }
  }

As part of the initialize setup, you need to supply a ReccoStyle instance to configure some customization entry points:

  • IOSFont & AndroidFont: These components expose the set of available predefined fonts for each platform.
  • ReccoStyleColors: Defines the available colors to be customized as part of the palette. There already existing palettes to choose from, such as fresh or ocean.

Login #

Future<String> _loginReccoSDK(String userId) async {
    try {
        _reccoPlugin.login(userId);
    } on PlatformException catch (e) {
        debugPrint("Error: '${e.message}'.");
    }
    return userId;
}

Logout #

Future<void> _logoutReccoSDK() async {
    try {
      _reccoPlugin.logout();
    } on PlatformException catch (e) {
      debugPrint("Error: '${e.message}'.");
    }
}

OpenReccoUi #

Future<void> _openReccoUI() async {
    try {
      _reccoPlugin.openReccoUI();
    } on PlatformException catch (e) {
      debugPrint("Error: '${e.message}'.");
    }
}
2
likes
130
points
57
downloads

Publisher

verified publishersignifico.com

Weekly Downloads

Recco is a personalized, and user-friendly approach to health and wellness recommendations based on users' unique interests, motivations, and health behaviors.

Repository (GitHub)

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on recco