Три мини-пакета, которыми я пользуюсь в каждом проекте.
1. gap
Делает то, что должен был делать сам Flutter — добавляет пустое пространство между виджетами в Row и Column.
Без него: SizedBox(height: 16) или SizedBox(width: 16) — и каждый раз думаешь, height или width в зависимости от направления.
С ним: Gap(16) — и работает в любом направлении автоматически.
Мелочь? Да. Но когда таких "мелочей" в проекте сотни — экономия времени и чистоты кода ощутимая.
2. conditional_parent_widget
Решает проблему, с которой каждый Flutter-разработчик сталкивался: нужно обернуть виджет в другой виджет только при определённом условии.
Без него — городишь if/else с дублированием child-а внутри обеих веток.
С ним: указываете условие, родителя и child — и получаете чистый код без дублирования.
Особенно удобно, когда оборачивающих условий несколько (например, на разных платформах разные обёртки).
3. device_frame
Я любой проект публикую и на web — это бесплатно и очень удобно для оперативных демо и тестов
Но web открывается на широких экранах, а приложение спроектировано под мобильный размер. Без обёртки получается странно: контент болтается посередине пустого экрана.
device_frame даёт ту самую рамку телефона, в которую можно завернуть приложение на web — и оно сразу выглядит так, как должно.
Сохраняйте — пригодятся.
Post #111
422