TGViewer
Flutter. Много Flutter. Много @flutter_amiga · 2.96K subscribers
Post #102 1.95K
Пакеты, которыми мы часто пользуемся ч.2

Hola, Amigos! На связи вся команда Flutter в Amiga. Дополним наш список из must-have пакетов и виджетов на Flutter, которые используем сами.

1. Пакет cached_network_image

Если вы еще не используете cached_network_image в своих проекта, то пора начать это делать. Особенно, если у вас список с картинками.

Есть пара существенных плюсов для использования этого пакета:

- изображения сохраняются в файлы на устройстве;
- увеличивается скорость отображения изображений при повторном обращении.

2. Adaptive Scaffold

Adaptive Scaffold — это пакет от команды Flutter, который облегчает создание адаптивных макетов в приложениях. Он предоставляет набор виджетов и инструментов для создания макетов, которые могут адаптироваться к разным размерам экрана и ориентациям устройств.

Основная цель пакета Flutter Adaptive Scaffold — упростить разработку макетов, которые нужно адаптировать под разные платформы и устройства с неодинаковыми размерами экрана.

AdaptiveScaffold внутренне построен на AdaptiveLayout, но абстрагируется от некоторых сложностей с помощью пресетов, основанных на спецификации Material 3 Design.

3. Библиотека grouped_list

Данная библиотека — удобные инструменты для группировки и отображения данных в списке. Она помогает справиться с типичной задачей объединения элементов списка по заданному критерию и отображения группированных данных.

Вот пример использования библиотеки для группировки списка контактов по первой букве их имен:


import 'package:flutter/material.dart';
import 'package:grouped_list/grouped_list.dart';

class Contact {
final String name;
final String phoneNumber;

Contact({required this.name, required this.phoneNumber});
}

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

class MyApp extends StatelessWidget {
final List<Contact> contacts = [
Contact(name: 'Alice', phoneNumber: '1234567890'),
Contact(name: 'Bob', phoneNumber: '9876543210'),
Contact(name: 'Charlie', phoneNumber: '5555555555'),
// Дополнительные контакты...
];

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Grouped List',
home: Scaffold(
appBar: AppBar(
title: Text('Grouped List'),
),
body: GroupedListView<Contact, String>(
elements: contacts,
groupBy: (contact) => contact.name.substring(0, 1),
groupSeparatorBuilder: (String value) => Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
value,
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
),
itemBuilder: (context, contact) => ListTile(
title: Text(contact.name),
subtitle: Text(contact.phoneNumber),
),
),
),
);
}
}


В этом примере мы определяем список контактов и используем GroupedListView для создания списка, где контакты будут сгруппированы по первой букве их имен. groupBy принимает функцию, которая возвращает ключ группы для каждого элемента, и groupSeparatorBuilder используется для создания виджета, разделяющего каждую группу. itemBuilder определяет, как будет отображаться каждый элемент списка.

Это лишь пример использования "grouped_list" в Flutter, и библиотека предлагает и другие возможности для настройки и работы с группированными списками.
Dart packages cached_network_image | Flutter package Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
  • 👍 24
  • 🔥 11
  • ❤ 3
More from @flutter_amiga
  1. Sep 9, 2026AI BOOST’26: выручка падает — что делают крупные digital-агентства и при чем здесь AI 22–2…
  2. Aug 18, 2026Hola, Amigos! На связи Павел Гершевич, Mobile Team Lead в Amiga. Сегодня посмотрим на чек-…
  3. Aug 13, 2026Hola, Amigos! Сегодня вышли Flutter 3.47 и Dart 3.13. Давайте вместе разберемся, что в них…
  4. Jul 31, 2026Дайджест июля Hola, Amigos! Собрали в одну подборку все полезные посты июля, которые вы мо…
  5. Jul 28, 2026Hola, Amigos! Сегодня посмотрим на один пакет, который может быть полезен в разработке - p…
  6. Jul 24, 2026Hola, Amigos! Сегодня мы вводим новую рубрику - обзоры правил для статического анализатора…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →