flyodide 0.0.1 copy "flyodide: ^0.0.1" to clipboard
flyodide: ^0.0.1 copied to clipboard

A Flutter wrapper around Pyodide to execute Python in a Flutter app.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flyodide/flyodide.dart';
import 'package:flyodide_example/code_editor.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(const PyCodeApp());
}

class PyCodeApp extends StatelessWidget {
  const PyCodeApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: MainPage(),
    );
  }
}

class MainPage extends StatelessWidget {
  const MainPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Python Code Editor'),
      ),
      body: FutureBuilder<FlyodideController>(
          future: FlyodideController().initController(),
          builder: (_, snap) {
            if (snap.hasData && !snap.hasError) {
              final pyCodeController = snap.data!;
              return Column(
                children: <Widget>[
                  SizedBox(
                    height: 500,
                    child: PyCodeEditor(
                      pyCodeController: pyCodeController,
                    ),
                  ),
                  SizedBox(
                    height: 300,
                    child: Padding(
                      padding: EdgeInsets.all(8.0),
                      child: SingleChildScrollView(
                        child: ListenableBuilder(
                          listenable: pyCodeController,
                          builder: (context, child) {
                            return RichText(
                              text: TextSpan(
                                children: <TextSpan>[
                                  TextSpan(
                                    text: pyCodeController.pythonOutput,
                                    style: const TextStyle(
                                        fontSize: 15, color: Colors.black),
                                  ),
                                  TextSpan(
                                    text: pyCodeController.pythonError,
                                    style: const TextStyle(
                                        fontSize: 14, color: Colors.red),
                                  ),
                                ],
                              ),
                            );
                          },
                        ),
                      ),
                    ),
                  ),
                ],
              );
            } else {
              return const Center(
                child: CircularProgressIndicator(),
              );
            }
          }),
    );
  }
}
6
likes
150
points
22
downloads

Publisher

verified publishershahxad.com

Weekly Downloads

A Flutter wrapper around Pyodide to execute Python in a Flutter app.

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, webview_flutter_plus

More

Packages that depend on flyodide