braincloud 5.7.0
braincloud: ^5.7.0 copied to clipboard
brainCloud is a backend platform for mobile games and apps, offering robust features, tools, and support. braincloud package enables use of brainCloud in Dart and Flutter projects.
brainCloud Dart Client Library #
Thanks for checking out brainCloud! This repository contains the client library for brainCloud projects that make use of the Flutter framework.
Here are a few handy links to get you started:
- You can learn all about brainCloud and find a few tutorials here:
- The brainCloud API Reference can be found here:
Installation #
Install the plugin by adding it to your project's pubspec.yaml, under the dependencies section.
dependencies:
braincloud: ^5.5.0
braincloud_data_persistence: : ^5.5.0
NOTE: The package braincloud_data_persistence
provides persistence support for the brainCloud Dart SDK by integrating platform preferences using SharedPreferencesAsync.
It is optional and you can create your own if you desire.
Usage/Examples #
Here's an example on how to initiate the client wrapper and start an update timer. The example also shows how to restore session and update the route accordingly.
import 'dart:async';
import 'package:braincloud_data_persistence/braincloud_data_persistence.dart';
import 'package:braincloud/braincloud.dart';
import 'package:flutter/material.dart';
final _bcWrapper =
BrainCloudWrapper(wrapperName: "<Your_Project_Wrapper_Name>",persistence: DataPersistence());
const routeHome = '/home';
const routeSignIn = '/signIn';
void main() => runApp(const MyApp());
///Main App
class MyApp extends StatelessWidget {
const MyApp({super.key});
/// Future to init the BrainCloud Client
Future<String> _initAndUpdateRoute() async {
await _bcWrapper.init(
secretKey: "<YOUR_SECRET_KEY>",
appId: "<YOUR_APP_ID>",
version: "<YOUR_APP_VERSION>",
url: "https://api.braincloudservers.com/dispatcherv2");
/// Check if there was a session
bool hasSession = false;
if (_bcWrapper.canReconnect()) {
ServerResponse response = await _bcWrapper.reconnect();
hasSession = (response.statusCode == 200);
}
///return the route name base on existing session
return Future<String>.delayed(
Duration.zero, () => hadSession ? routeHome : routeSignIn);
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: _initAndUpdateRoute(),
builder: (BuildContext context, AsyncSnapshot<String> snapshot) {
Widget page = Container();
if (snapshot.hasData) {
page = MaterialApp(
/// build your app here
);
} else if (snapshot.connectionState == ConnectionState.done &&
snapshot.hasError) {
/// Display error
page = Text(snapshot.error.toString());
}
return page;
});
}
}
Custom Data Persistence #
Here's an example of a simple data persistacen implementation that just saves to memory.
import 'package:braincloud/data_persistence.dart';
class DataPersistence implements DataPersistenceBase {
Map<String, String> playerPrefs = {};
/// Set a String value
Future setString(String key, String value) async {
playerPrefs[key] = value;
}
/// Get a String value
Future<String?> getString(String key) {
return Future.value(playerPrefs[key]);
}
}