import 'package:flutter/material.dart'; import 'dart:async'; import 'package:archimedes_mobile_lib/archimedes_mobile_lib.dart' as archimedes_mobile_lib; void main() { runApp(const MyApp()); } class MyApp extends StatefulWidget { const MyApp({super.key}); @override State createState() => _MyAppState(); } class _MyAppState extends State { late int sumResult; late Future sumAsyncResult; @override void initState() { super.initState(); sumResult = archimedes_mobile_lib.sum(1, 2); sumAsyncResult = archimedes_mobile_lib.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, ); }, ), ], ), ), ), ), ); } }