Пакеты, которыми мы часто пользуемся ч.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
Данная библиотека — удобные инструменты для группировки и отображения данных в списке. Она помогает справиться с типичной задачей объединения элементов списка по заданному критерию и отображения группированных данных.
Вот пример использования библиотеки для группировки списка контактов по первой букве их имен:
Это лишь пример использования "grouped_list" в Flutter, и библиотека предлагает и другие возможности для настройки и работы с группированными списками.
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
Hola, Amigos!
18 июня в Измайловском парке прошел самый крупный фестиваль спорта и ИТ RUNIT 2023. В этом году мы стали партнерами мероприятия и проводили свою спорт-активность — соревнования по прыжкам на скакалках. Каждому победителю вручали фирменный рюкзак с лого.
О том, как это было, листайте в фотоотчете🏅
18 июня в Измайловском парке прошел самый крупный фестиваль спорта и ИТ RUNIT 2023. В этом году мы стали партнерами мероприятия и проводили свою спорт-активность — соревнования по прыжкам на скакалках. Каждому победителю вручали фирменный рюкзак с лого.
О том, как это было, листайте в фотоотчете🏅
🔥11👏5❤4
Интеграция API во Flutter
Hola, Amigos!
Сегодня мы поговорим об интеграции API во Flutter. Давайте рассмотрим различные методы, которые позволяют обрабатывать сетевые запросы и ответы, обновлять пользовательский интерфейс.
1. Пакет HTTP
Наиболее распространенный подход к извлечению данных из API — использование пакета http, который предлагает простой и гибкий API для выполнения HTTP-запросов. Для начала вам нужно добавить пакет в файл pubspec.yaml:
2. JSON.
Чтобы использовать данные из API, обычно используют JSON. Flutter предоставляет библиотеки синтаксического анализа JSON, например, dart:convert, которые позволяют преобразовывать строки JSON в объекты Dart и наоборот. Вот пример разбора данных JSON:
3. Ошибки с API.
В случаях, когда вызовы API завершаются сбоем или возникают исключения, понадобится способ работы над ошибками и отображения обратной связи пользователей. Flutter предоставляет широкий спектр компонентов пользовательского интерфейса, таких как Snackbars или Dialogs, для уведомления пользователей об ошибках и предоставления полезной информации.
Помните, что интеграция API во Flutter выходит за рамки простого поиска данных. Вы также можете отправлять данные в API, обрабатывать аутентификацию и авторизацию и взаимодействовать со службами RESTful, используя различные методы, заголовки и параметры запроса. Обязательно изучите документацию API, с которыми вы работаете, чтобы понять их конкретные требования и возможности.
Hola, Amigos!
Сегодня мы поговорим об интеграции API во Flutter. Давайте рассмотрим различные методы, которые позволяют обрабатывать сетевые запросы и ответы, обновлять пользовательский интерфейс.
1. Пакет HTTP
Наиболее распространенный подход к извлечению данных из API — использование пакета http, который предлагает простой и гибкий API для выполнения HTTP-запросов. Для начала вам нужно добавить пакет в файл pubspec.yaml:
dependencies:После импорта пакета в свой проект можно использовать его для выполнения различных типов запросов: GET, POST, PUT и DELETE. Вот пример простого GET-запроса:
http: ^0.13.4
import 'package:http/http.dart' as http;В этом примере определяется конечная точка API с помощью функции Uri.parse() и делается запрос GET с помощью http.get(). Затем ответ проверяется на наличие кода состояния.
void fetchData() async {
var url = Uri.parse('https://api.example.com/data');
var response = await http.get(url);
if (response.statusCode == 200) {
// Successful response
var data = response.body;
// Process the data and update the UI
} else {
// Error handling
print('Request failed with status: ${response.statusCode}');
}
}
2. JSON.
Чтобы использовать данные из API, обычно используют JSON. Flutter предоставляет библиотеки синтаксического анализа JSON, например, dart:convert, которые позволяют преобразовывать строки JSON в объекты Dart и наоборот. Вот пример разбора данных JSON:
import 'dart:convert';В этом фрагменте применяется json.decode() для преобразования строки JSON в карту пар ключ-значение.
void processData(String jsonString) {
var jsonResponse = json.decode(jsonString);
var title = jsonResponse['title'];
var description = jsonResponse['description'];
// Update the UI with the parsed data
}
3. Ошибки с API.
В случаях, когда вызовы API завершаются сбоем или возникают исключения, понадобится способ работы над ошибками и отображения обратной связи пользователей. Flutter предоставляет широкий спектр компонентов пользовательского интерфейса, таких как Snackbars или Dialogs, для уведомления пользователей об ошибках и предоставления полезной информации.
Помните, что интеграция API во Flutter выходит за рамки простого поиска данных. Вы также можете отправлять данные в API, обрабатывать аутентификацию и авторизацию и взаимодействовать со службами RESTful, используя различные методы, заголовки и параметры запроса. Обязательно изучите документацию API, с которыми вы работаете, чтобы понять их конкретные требования и возможности.
Dart packages
http | Dart package
A composable, multi-platform, Future-based API for HTTP requests.
🔥15👍6
Интеграция Firebase с Flutter, ч.1
Hola, Amigos!
В сегодняшнем посте мы поговорим о Firebase — что это такое и как может помочь в разработке приложений.
Firebase — это комплексная платформа от Google, в которой есть современные функции для разработки, перекомпоновки и улучшения приложений. Это набор инструментов, которые разработчики могут использовать при создании приложений в зависимости от своей потребности.
Цель Firebase заключается в решении трех основных проблем:
1. Быстро создать приложение.
2. Выпустить и обеспечить надежный мониторинг работоспособности.
3. Вовлечь пользователей.
Некоторые из популярных функций платформы Google Firebase включают в себя базы данных, аутентификацию, push-уведомления, аналитику, хранение файлов и многое другое.
Аутентификация Firebase
Аутентификация является важным аспектом многих приложений, и Firebase упрощает реализацию аутентификации пользователей. С помощью Firebase Authentication можно включать такие методы входа, как электронная почта/пароль, Google, Twitter и другие аккаунты. Firebase также дает возможности управления пользователями — сброс пароля и проверка электронной почты.
База данных Firebase в реальном времени
С помощью Firebase Real-time Database можно создавать приложения в режиме совместной работы в реальном времени. База данных NoSQL хранит и синхронизирует данные на нескольких устройствах, дает возможность просматривать изменения в данных и соответствующим образом обновлять пользовательский интерфейс. Благодаря усиленным правилам безопасности Firebase только авторизованные пользователи могут читать или писать в вашу базу данных.
Облачные сообщения Firebase
С помощью Firebase Cloud Messaging (FCM) можно взаимодействовать с пользователями. FCM позволяет отправлять push-уведомления в приложениях Flutter на устройствах iOS и Android. Можно ориентироваться на определенные устройства, сегменты пользователей или запускать уведомления на основе определенных событий.
Hola, Amigos!
В сегодняшнем посте мы поговорим о Firebase — что это такое и как может помочь в разработке приложений.
Firebase — это комплексная платформа от Google, в которой есть современные функции для разработки, перекомпоновки и улучшения приложений. Это набор инструментов, которые разработчики могут использовать при создании приложений в зависимости от своей потребности.
Цель Firebase заключается в решении трех основных проблем:
1. Быстро создать приложение.
2. Выпустить и обеспечить надежный мониторинг работоспособности.
3. Вовлечь пользователей.
Некоторые из популярных функций платформы Google Firebase включают в себя базы данных, аутентификацию, push-уведомления, аналитику, хранение файлов и многое другое.
Аутентификация Firebase
Аутентификация является важным аспектом многих приложений, и Firebase упрощает реализацию аутентификации пользователей. С помощью Firebase Authentication можно включать такие методы входа, как электронная почта/пароль, Google, Twitter и другие аккаунты. Firebase также дает возможности управления пользователями — сброс пароля и проверка электронной почты.
База данных Firebase в реальном времени
С помощью Firebase Real-time Database можно создавать приложения в режиме совместной работы в реальном времени. База данных NoSQL хранит и синхронизирует данные на нескольких устройствах, дает возможность просматривать изменения в данных и соответствующим образом обновлять пользовательский интерфейс. Благодаря усиленным правилам безопасности Firebase только авторизованные пользователи могут читать или писать в вашу базу данных.
Облачные сообщения Firebase
С помощью Firebase Cloud Messaging (FCM) можно взаимодействовать с пользователями. FCM позволяет отправлять push-уведомления в приложениях Flutter на устройствах iOS и Android. Можно ориентироваться на определенные устройства, сегменты пользователей или запускать уведомления на основе определенных событий.
🔥13👍7👌3💩1
Интеграция Firebase с Flutter, ч.2
Hola, Amigos! Продолжаем говорить о Firebase. Сегодня затронем облачное хранилище, а еще реализацию real-time чатов внутри приложения.
Облачное хранилище Firebase
Firebase Cloud Firestore — это гибкая и масштабируемая база данных документов NoSQL, которая дополняет возможности реального времени Firebase Real-time Database. Он предлагает структурированный подход к хранению данных. Cloud Firestore также предоставляет возможности запросов и автономную поддержку, что упрощает создание сложных приложений.
Внедрение чатов Firebase в реальном времени
Для реализации real-time чата можно использовать Firebase Realtime Database или Firebase Cloud Firestore.
С помощью Firebase Realtime Database или Firebase Cloud Firestore получится разработать структуру данных для хранения сообщений чата. Firebase автоматически оповещает подключенных клиентов, что позволяет мгновенно отображать новые сообщения в интерфейсе чата.
С помощью Firebase можно применять различные инструменты для аутентификации пользователей, хранения файлов (например, изображений), отправки уведомлений и других функций, которые могут быть полезны при разработке приложения чата.
Hola, Amigos! Продолжаем говорить о Firebase. Сегодня затронем облачное хранилище, а еще реализацию real-time чатов внутри приложения.
Облачное хранилище Firebase
Firebase Cloud Firestore — это гибкая и масштабируемая база данных документов NoSQL, которая дополняет возможности реального времени Firebase Real-time Database. Он предлагает структурированный подход к хранению данных. Cloud Firestore также предоставляет возможности запросов и автономную поддержку, что упрощает создание сложных приложений.
Внедрение чатов Firebase в реальном времени
Для реализации real-time чата можно использовать Firebase Realtime Database или Firebase Cloud Firestore.
С помощью Firebase Realtime Database или Firebase Cloud Firestore получится разработать структуру данных для хранения сообщений чата. Firebase автоматически оповещает подключенных клиентов, что позволяет мгновенно отображать новые сообщения в интерфейсе чата.
С помощью Firebase можно применять различные инструменты для аутентификации пользователей, хранения файлов (например, изображений), отправки уведомлений и других функций, которые могут быть полезны при разработке приложения чата.
Dart packages
cloud_firestore | Flutter package
Flutter plugin for Cloud Firestore, a cloud-hosted, noSQL database with live synchronization and offline support on Android and iOS.
🔥8👍7❤3👌1
Hola, Amigos!
Отличная новость: нашей команде нужен новый герой! Мы ищем middle Flutter-разработчика, который обладает сильными техническими скилами. Мы растем в геометрической прогрессии, поэтому ждем драйвового спеца на новые мощные проекты как можно скорее!
Все подробности по ссылке. Пишите нашему рекрутеру Лизе по всем вопросам и для отклика на вакансию.
Отличная новость: нашей команде нужен новый герой! Мы ищем middle Flutter-разработчика, который обладает сильными техническими скилами. Мы растем в геометрической прогрессии, поэтому ждем драйвового спеца на новые мощные проекты как можно скорее!
Все подробности по ссылке. Пишите нашему рекрутеру Лизе по всем вопросам и для отклика на вакансию.
hh.ru
Вакансия Flutter разработчик (middle) в Москве, работа в компании Амига (вакансия в архиве c 25 августа 2023)
Зарплата: не указана. Москва. Требуемый опыт: 3–6 лет. Полная занятость. Дата публикации: 22.08.2023.
🔥6👍1
Hola, Amigos!
Для тех, кто c нами не так давно, сделали подборку полезных постов, которые вы точно не видели, а посмотреть стоит:
🦾 Кейс: что делать с большим APK-файлом?
Наш Flutter-dev Антон делится на примере из практики, как сократить вес APK-файла за 10 минут работы. Будет актуально тем, что часто работает с АРК-файлами.
🦾 Советы Junior-разработчикам
В посте вы прочитаете 9 классных советов для начинающих Flutter-разработчиков, которые помогут избежать типичных ошибок, подкачать скиллы и узнать что-то новое для себя. Must-read для джуниоров!
🦾 FlutterFlow.io
В посте Flutter-dev Саша рассказал о no-code конструкторе на базе Flutter, который поможет ускорить разработку кроссплатформенных приложений на iOS и Android.
🦾 Обзор используемых библиотек
Сделали обзор на 3 самыми используемыми в Amiga библиотеками для компиляции проекта: Dio, Flutter_bloс и Flutter_svg.
🦾 Работа с сокетами Dart
От Flutter-dev Саши вы узнаете, что такое сокеты и как работать с ними в Dart, а еще получите полезные материалы для изучения сокетов.
Для тех, кто c нами не так давно, сделали подборку полезных постов, которые вы точно не видели, а посмотреть стоит:
Наш Flutter-dev Антон делится на примере из практики, как сократить вес APK-файла за 10 минут работы. Будет актуально тем, что часто работает с АРК-файлами.
В посте вы прочитаете 9 классных советов для начинающих Flutter-разработчиков, которые помогут избежать типичных ошибок, подкачать скиллы и узнать что-то новое для себя. Must-read для джуниоров!
В посте Flutter-dev Саша рассказал о no-code конструкторе на базе Flutter, который поможет ускорить разработку кроссплатформенных приложений на iOS и Android.
Сделали обзор на 3 самыми используемыми в Amiga библиотеками для компиляции проекта: Dio, Flutter_bloс и Flutter_svg.
От Flutter-dev Саши вы узнаете, что такое сокеты и как работать с ними в Dart, а еще получите полезные материалы для изучения сокетов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Flutter. Много
Кейс: что делать с большим APK-файлом?⚙️
Hola, Amigos! На связи Антон Мартышков, Flutter-разработчик Amiga. Сегодня на реальном примере проекта расскажу, как сократить вес APK-файла за 10 минут работы.
Одна из важных метрик Android-приложения наряду со…
Hola, Amigos! На связи Антон Мартышков, Flutter-разработчик Amiga. Сегодня на реальном примере проекта расскажу, как сократить вес APK-файла за 10 минут работы.
Одна из важных метрик Android-приложения наряду со…
🔥6👍4❤3💅1
Hola, Amigos!
Сейчас мы в команду ищем middle Fllutter-разработчика, и наш IT-рекрутер Лиза готова принимать ваши резюме или рекомендации в личные сообщения.
Тг Лизы: @ivanova_elizav
Откликайтесь или отправляйте нашу вакансию друзьям!😎
Сейчас мы в команду ищем middle Fllutter-разработчика, и наш IT-рекрутер Лиза готова принимать ваши резюме или рекомендации в личные сообщения.
Тг Лизы: @ivanova_elizav
Откликайтесь или отправляйте нашу вакансию друзьям!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3
Hola, Amigos!
24-25 августа в Москве на территории Красного Октября пройдёт одно из самых крутых мероприятий этого лета — AGIMA Partner's Weekend😎
От ведущих лидеров в разработке вы узнаете, как управлять dev-командой, какую инфраструктуру надо сформировать для эффективного управления, как без потерь провести команду через все этапы её формирования.
Главная тема конференции — диверсификация (все занимаются всем). Если разработка вам неактуальна, на конференции будут еще 2 направления: для руководителей веб-студий и PR-специалистов. А про грандиозные планы на afterparty вообще молчим🥳
Мы партнеры конференции, и если хотите познакомиться с нами лично — приходите в конце августа на AGIMA Partner's Weekend.
По промокоду AMIGA вы получите скидку в 15% на покупку билетов. Будем вас ждать!
24-25 августа в Москве на территории Красного Октября пройдёт одно из самых крутых мероприятий этого лета — AGIMA Partner's Weekend
От ведущих лидеров в разработке вы узнаете, как управлять dev-командой, какую инфраструктуру надо сформировать для эффективного управления, как без потерь провести команду через все этапы её формирования.
Главная тема конференции — диверсификация (все занимаются всем). Если разработка вам неактуальна, на конференции будут еще 2 направления: для руководителей веб-студий и PR-специалистов. А про грандиозные планы на afterparty вообще молчим
Мы партнеры конференции, и если хотите познакомиться с нами лично — приходите в конце августа на AGIMA Partner's Weekend.
По промокоду AMIGA вы получите скидку в 15% на покупку билетов. Будем вас ждать!
Please open Telegram to view this post
VIEW IN TELEGRAM
partnersclub.digital
AGIMA Partners' Weekend
Два незабываемых дня с AGIMA и лучшими представителями отрасли: выступления, обмен опытом, награждения, вечеринка.
👍6🔥5👏3
This media is not supported in your browser
VIEW IN TELEGRAM
Нас почти полсотни!
Hola, Amigos!
На этих выходных к нам пришло осознание, что у тг-канала Flutter.Много дэрэшка, а наша команда за два года выросла в 8 раз. Мы реализовали 70 проектов, в том числе для X5 Retail Group, Mercedes-Benz, Сбербанк, SOKOLOV, Честный знак. Но это далеко не все, чем мы гордимся!
Совсем скоро мы планируем запустить новый сайт. Там будут кейсы, команда, блог и всё, что полагается крутой IT-компании в 21 веке. И мы надеемся, что вы оцените наши труды по достоинству.
На этих выходных ездили отмечать все эти классные события на природу, проводить весело время вместе, пока лето радует погодой.
Вот такая она — Амиговская жизнь.
Hola, Amigos!
На этих выходных к нам пришло осознание, что у тг-канала Flutter.Много дэрэшка, а наша команда за два года выросла в 8 раз. Мы реализовали 70 проектов, в том числе для X5 Retail Group, Mercedes-Benz, Сбербанк, SOKOLOV, Честный знак. Но это далеко не все, чем мы гордимся!
Совсем скоро мы планируем запустить новый сайт. Там будут кейсы, команда, блог и всё, что полагается крутой IT-компании в 21 веке. И мы надеемся, что вы оцените наши труды по достоинству.
На этих выходных ездили отмечать все эти классные события на природу, проводить весело время вместе, пока лето радует погодой.
Вот такая она — Амиговская жизнь.
🎉22🔥8🤩1
Hola, Amigos! Познакомимся?
Мы хотим создавать для вас максимально интересный и полезный контент. Пожалуйста, кликните, в каком деле вы спец. А если не нашли себя в списке, то обязательно пишите в комментариях, чем занимаетесь!
Мы хотим создавать для вас максимально интересный и полезный контент. Пожалуйста, кликните, в каком деле вы спец. А если не нашли себя в списке, то обязательно пишите в комментариях, чем занимаетесь!
Anonymous Poll
87%
Разработчик
5%
Project-менеджер
2%
Дизайнер
1%
CEO
1%
Маркетолог/PR
4%
Меня тут нет, напишу в комментах
👍2