First App
Use the official installer for your machine, then create the smallest app that can run on one target.
flutter doctor
flutter create expense_notes
cd expense_notes
flutter run
This proves the SDK, editor/device toolchain, and one target are wired. It does not prove app architecture, release readiness, or cross-platform support.
First Edit
Replace the generated counter with one screen and one extracted widget:
import 'package:flutter/material.dart';
void main() => runApp(const ExpenseNotesApp());
class ExpenseNotesApp extends StatelessWidget {
const ExpenseNotesApp({super.key});
@override
Widget build(BuildContext context) {
return const MaterialApp(home: ExpenseHome());
}
}
class ExpenseHome extends StatelessWidget {
const ExpenseHome({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Expense Notes')),
body: const Center(child: Text('No expenses yet')),
);
}
}
First Validation
dart format lib test
flutter analyze
flutter test
flutter run -d <device-id>
Use flutter devices to list available devices. Pick one target and write it down in the project notes.
Gotcha: If
flutter doctorreports missing Android, iOS, or desktop tooling, fix the target you actually need first. Do not spend hours making every target green before the product has a target matrix.