import 'package:flutter/material.dart'; import 'dart:async'; import 'package:shared_preferences/shared_preferences.dart' as shared_preferences; void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { late int sumResult; late Future sumAsyncResult; @override void initState() { super.initState(); sumResult = shared_preferences.sum(1, 2); sumAsyncResult = shared_preferences.sumAsync(3, 4); } @override Widget build(BuildContext context) { const textStyle = TextStyle(fontSize: 25); const spacerSmall = SizedBox(height: 10); return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('Native Packages'), ), body: SingleChildScrollView( child: Container( padding: const EdgeInsets.all(10), child: Column( children: [ const Text( 'This calls a native function through FFI that is shipped as source in the package. ' 'The native code is built as part of the Flutter Runner build.', style: textStyle, textAlign: TextAlign.center, ), spacerSmall, Text( 'sum(1, 2) = $sumResult', style: textStyle, textAlign: TextAlign.center, ), spacerSmall, FutureBuilder( future: sumAsyncResult, builder: (BuildContext context, AsyncSnapshot value) { final displayValue = (value.hasData) ? value.data : 'loading'; return Text( 'await sumAsync(3, 4) = $displayValue', style: textStyle, textAlign: TextAlign.center, ); }, ), ], ), ), ), ), ); } }