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, andpartnerIdare required.environmentdefaults toRollaEnvironment.productionandbaseUrlis 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):
- In Xcode, select your PROJECT (not target) in the navigator
- Go to Package Dependencies tab
- Click + button → Add Package Dependency
- Enter URL:
https://github.com/Rolla-Health-Fitness/rolla-sdk-release-ios.git - Select version:
0.1.0(or latest) - 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
- INTEGRATION.md - Complete integration guide for Android and iOS
- IOS_INTEGRATION.md - Detailed iOS setup instructions
- ANDROID_INTEGRATION.md - Detailed Android setup instructions
- PLATFORM_CHANNELS.md - Method Channel documentation
- RELEASE.md - Release guide
- Flutter Add-to-App Official Docs - Flutter's official guide
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.