updateFlutterAppWidgetSync static method

void updateFlutterAppWidgetSync({
  1. required String projectName,
})

Writes a customized lib/main.dart that imports the core package and provides a simple Material app scaffold.

Parameters:

  • projectName: the application folder where lib/main.dart will be written.

Implementation

static void updateFlutterAppWidgetSync({required String projectName}) {
  print('📝 Updating Flutter app main.dart...');
  final content = '''
// Uncoment the line below to import from the core package once you start using it in your app.
// import 'package:core/core.dart';
import 'package:flutter/material.dart';

void main() {
runApp(const MyApp());
}

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

@override
Widget build(BuildContext context) {
  return MaterialApp(
    title: 'Flutter Demo',
    theme: ThemeData(colorScheme: .dark()),
    home: const MyHomePage(title: 'Flutter Workspaces CLI'),
  );
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});

final String title;

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      backgroundColor: Theme.of(context).colorScheme.inversePrimary,
      title: Text(widget.title),
    ),
    body: Center(
      child: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 8.0),
        child: const Text(
          'This is the flutter_workspaces_cli developed by ThiagoEvoa, if you enjoyed it, please consider giving it a star on GitHub!',
          textAlign: .justify,
        ),
      ),
    ),
  );
}
}
''';

  final file = File('$projectName/lib/main.dart');
  file.writeAsStringSync(content);
  print('✅ Flutter app main.dart updated');
}