Проект Flutter имеет стандартную структуру — с директориями для Dart-кода, платформо-специфичного кода, ресурсов и конфигурации. Понимание структуры и ключевых файлов (особенно pubspec.yaml и lib/) необходимо для навигации и создания Flutter-приложений.
Ключевые директории и файлы
my_app/
lib/ → your DART CODE lives here (the heart of the app)
main.dart → the ENTRY POINT (the main() function; app starts here)
pubspec.yaml → project config: DEPENDENCIES, assets, metadata (very important)
android/ → Android-specific native project/config
ios/ → iOS-specific native project/config
web/ windows/ etc. → other platform folders
test/ → tests
assets/ → images, fonts, etc. (declared in pubspec.yaml)
pubspec.yaml — главный файл конфигурации
name: my_app
dependencies:
flutter:
sdk: flutter
http: ^1.0.0 # add packages here (from pub.dev)
provider: ^6.0.0
flutter:
assets:
- assets/images/ # declare assets to bundle
pubspec.yaml объявляет зависимости (пакеты из pub.dev), ресурсы и метаданные — вы запускаете flutter pub get для установки зависимостей.
main.dart — точка входа
import 'package:flutter/material.dart';
void main() => runApp(MyApp()); // runApp starts the Flutter app with a root widget
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(home: HomeScreen()); // the app's root widget
}
}
Организация lib/ по мере роста приложения
→ Beyond main.dart, organize lib/ into folders (by feature or layer):
lib/screens/, lib/widgets/, lib/models/, lib/services/, lib/providers/ (common)
→ Keep code organized as the app grows (separation of concerns).
Почему это важно
Понимание того, как структурирован проект Flutter, является необходимым практическим знанием для навигации, создания и организации Flutter-приложений, поэтому это полезное базовое знание.
Знание ключевых директорий и файлов — того, что lib/ содержит ваш Dart-код (сердце приложения, где вы проводите большую часть времени), что main.dart является точкой входа (где приложение начинается через main() и runApp), платформенные папки (android/, ios/ и т.д. для платформо-специфичного нативного кода), директории test/ и assets/ — необходимо для ориентирования в проекте Flutter.
Понимание pubspec.yaml особенно важно: это главный файл конфигурации, объявляющий зависимости (пакеты из pub.dev, экосистемы пакетов Flutter), ресурсы и метаданные — вы будете постоянно его редактировать для добавления пакетов (запуская flutter pub get для их установки), что делает его центральным в разработке Flutter.
Понимание main.dart и точки входа (того, как main() и runApp запускают приложение с корневым виджетом) проясняет, как начинается Flutter-приложение.
Понимание того, как организовать lib/ по мере роста приложения (на папки по функциям или слоям — screens, widgets, models, services — для разделения ответственности) отражает лучшие практики для поддерживаемых проектов.
Поскольку работа с Flutter требует навигации по структуре проекта, управления зависимостями через pubspec.yaml, понимания точки входа и организации кода, и поскольку это знание является необходимым практическим фундаментом для любой разработки на Flutter, понимание того, как структурирован проект Flutter — ключевых директорий, pubspec.yaml, точки входа и организации кода — является ценным, базовым практическим знанием для работы с проектами Flutter, необходимым для создания и поддержки приложений и базовой компетенцией для разработки на Flutter.
