Rolla SDK

Rolla SDK is a fitness and health tracking solution that monitors daily activities, health metrics, and workouts through a band-based tracking system. The SDK is built with Flutter and can be integrated into native iOS, Android, and Flutter applications.

Key Features

  • Activity Tracking - Steps, distance, calories, and daily movement
  • Health Monitoring - Heart rate, sleep analysis, and vital signs
  • Workout Sessions - Real-time tracking with detailed metrics
  • Band Integration - Bluetooth connectivity with Rolla fitness bands
  • Multi-Platform - iOS (14.0+), Android (SDK 24+), and Flutter apps

Installation

Flutter Apps

Add the dependency from pub.flutter-io.cn:

flutter pub add rolla_sdk

Or add it to your pubspec.yaml directly:

dependencies:
  rolla_sdk: ^0.1.11

Then initialize the SDK with a token from your auth service and render the SDK home widget:

import 'package:flutter/material.dart';
import 'package:rolla_sdk/rolla_sdk.dart';

Future<void> launchRolla() async {
  await RollaSDK.initializeWithToken(
    accessToken: myAccessToken,        // JWT from your auth service
    userId: 'user-123',                // your user id
    partnerId: 'partner-456',          // Rolla-issued partner id
    environment: RollaEnvironment.production, // or RollaEnvironment.rnd
    branding: Branding(
      appName: 'My Health App',
      defaultThemeMode: ThemeMode.system,
      primaryColor: const Color(0xFF1D68FF),
      secondaryColor: const Color(0xFF39507E),
      accentColor: const Color(0xFF4CAF50),
      brightness: Brightness.light,
    ),
    onTokenExpired: () async => TokenRefreshResult(
      accessToken: await refreshMyToken(),
    ),
  );
}

// Once initialization completes, render the SDK full-screen.
// RollaSdkHome builds its own MaterialApp.router and theme — do NOT wrap it
// in another MaterialApp for SDK navigation.
Widget buildRollaScreen() => const RollaSdkHome(userId: 'user-123');

Note: accessToken, userId, and partnerId are required. environment defaults to RollaEnvironment.production and baseUrl is derived from it. See the Flutter integration guide for branding assets, permissions, and token-refresh details.

iOS Native (CocoaPods)

Add to your Podfile:

source 'https://github.com/Rolla-Health-Fitness/rolla-sdk-release-ios.git'
source 'https://cdn.cocoapods.org/'

target 'YourApp' do
  use_frameworks!
  pod 'RollaSDK', '~> 0.1.0'
end

Run pod install and launch the SDK:

import Flutter

let flutterEngine = FlutterEngine(name: "rolla")
flutterEngine.run()

let flutterVC = FlutterViewController(engine: flutterEngine, nibName: nil, bundle: nil)
present(flutterVC, animated: true)

Android Native (Maven)

Add to your settings.gradle.kts:

dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven {
            url = uri("https://rolla-health-fitness.github.io/rolla-sdk-release-android/maven/")
        }
    }
}

Add to your app/build.gradle.kts:

android {
    compileOptions {
        isCoreLibraryDesugaringEnabled = true
    }
}

dependencies {
    // Required for Flutter plugins
    coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4")

    // Rolla SDK with the latest version (0.1.0 is a version example)
    implementation("com.rolla.sdk:android_release:0.1.0")
}

Note: Flutter AAR version is 1.0 (Flutter default). Check release tags for SDK versions.

iOS Integration

Swift Package Manager (SPM):

  1. In Xcode, select your PROJECT (not target) in the navigator
  2. Go to Package Dependencies tab
  3. Click + button → Add Package Dependency
  4. Enter URL: https://github.com/Rolla-Health-Fitness/rolla-sdk-release-ios.git
  5. Select version: 0.1.0 (or latest)
  6. Click Add Package

CocoaPods:

Add to your Podfile:

# Add Rolla SDK specs repository
source 'https://github.com/Rolla-Health-Fitness/rolla-sdk-release-ios.git'
source 'https://cdn.cocoapods.org/'

target 'YourApp' do
  use_frameworks!

  # Add Rolla SDK latest version from specs repo (0.1.0 is a version example)
  pod 'RollaSDK', '0.1.0'
end

Then run:

pod install

Both methods use pre-built binaries - no Flutter SDK required.

Documentation

Architecture

This SDK follows Flutter's official Add-to-App pattern:

Native App (iOS/Android)
    ↓
    Obtains JWT from Rolla Partner API
    ↓
    Initializes RollaSdk with token
    ↓
    Launches FlutterViewController/FlutterActivity
    ↓
    Flutter UI renders inside native app
    ↓
    User interacts with Rolla features
    ↓
    SDK signals native app to close
    ↓
    Returns control to native app

Requirements

Android

  • Android Studio Arctic Fox or newer
  • Minimum SDK: 21 (Android 5.0)
  • Kotlin 1.5+ or Java 8+
  • AndroidX support

iOS

  • Xcode 14.0+
  • iOS 12.0+
  • Swift 5.0+ or Objective-C
  • CocoaPods 1.10+ (if using CocoaPods)

Authentication

The SDK requires a JWT token from the Rolla Partner API. Your native app is responsible for obtaining this token:

curl --location 'https://ross-rnd.rolla.cloud/partners/v1/token' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'grant_type=client_credentials' \
  --data-urlencode 'partner_id=YOUR_PARTNER_ID' \
  --data-urlencode 'partner_secret=YOUR_PARTNER_SECRET'

Environments

Environment API Base URL
R&D (Testing) https://ross-rnd.rolla.cloud
Production https://ross.rolla.cloud

Support

License

See LICENSE file for details.