Flutter. Много
2.77K subscribers
333 photos
23 videos
258 links
Заказать мобильную разработку: https://amiga.agency/?utm_source=tg
Заказать рекламу в канале @amiga_agency_bot

Новости Flutter-разработки, дайджесты мероприятий, личный опыт.
Download Telegram
Пакеты, которыми мы часто пользуемся ч.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, и библиотека предлагает и другие возможности для настройки и работы с группированными списками.
👍24🔥113
Hola, Amigos!

18 июня в Измайловском парке прошел самый крупный фестиваль спорта и ИТ RUNIT 2023. В этом году мы стали партнерами мероприятия и проводили свою спорт-активность — соревнования по прыжкам на скакалках. Каждому победителю вручали фирменный рюкзак с лого.

О том, как это было, листайте в фотоотчете🏅
🔥11👏54
Интеграция API во Flutter

Hola, Amigos!

Сегодня мы поговорим об интеграции API во Flutter. Давайте рассмотрим различные методы, которые позволяют обрабатывать сетевые запросы и ответы, обновлять пользовательский интерфейс.

1. Пакет HTTP
Наиболее распространенный подход к извлечению данных из API — использование пакета http, который предлагает простой и гибкий API для выполнения HTTP-запросов. Для начала вам нужно добавить пакет в файл pubspec.yaml:

dependencies:
http: ^0.13.4

После импорта пакета в свой проект можно использовать его для выполнения различных типов запросов: GET, POST, PUT и DELETE. Вот пример простого GET-запроса:

import 'package:http/http.dart' as http;

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}');
}
}

В этом примере определяется конечная точка API с помощью функции Uri.parse() и делается запрос GET с помощью http.get(). Затем ответ проверяется на наличие кода состояния.

2. JSON.

Чтобы использовать данные из API, обычно используют JSON. Flutter предоставляет библиотеки синтаксического анализа JSON, например, dart:convert, которые позволяют преобразовывать строки JSON в объекты Dart и наоборот. Вот пример разбора данных JSON:

import 'dart:convert';

void processData(String jsonString) {
var jsonResponse = json.decode(jsonString);
var title = jsonResponse['title'];
var description = jsonResponse['description'];
// Update the UI with the parsed data
}

В этом фрагменте применяется json.decode() для преобразования строки JSON в карту пар ключ-значение.

3. Ошибки с API.

В случаях, когда вызовы API завершаются сбоем или возникают исключения, понадобится способ работы над ошибками и отображения обратной связи пользователей. Flutter предоставляет широкий спектр компонентов пользовательского интерфейса, таких как Snackbars или Dialogs, для уведомления пользователей об ошибках и предоставления полезной информации.

Помните, что интеграция API во Flutter выходит за рамки простого поиска данных. Вы также можете отправлять данные в API, обрабатывать аутентификацию и авторизацию и взаимодействовать со службами RESTful, используя различные методы, заголовки и параметры запроса. Обязательно изучите документацию API, с которыми вы работаете, чтобы понять их конкретные требования и возможности.
🔥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. Можно ориентироваться на определенные устройства, сегменты пользователей или запускать уведомления на основе определенных событий.
🔥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 можно применять различные инструменты для аутентификации пользователей, хранения файлов (например, изображений), отправки уведомлений и других функций, которые могут быть полезны при разработке приложения чата.
🔥8👍73👌1
Hola, Amigos!

Отличная новость: нашей команде нужен новый герой! Мы ищем middle Flutter-разработчика, который обладает сильными техническими скилами. Мы растем в геометрической прогрессии, поэтому ждем драйвового спеца на новые мощные проекты как можно скорее!

Все подробности по ссылке. Пишите нашему рекрутеру Лизе по всем вопросам и для отклика на вакансию.
🔥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, а еще получите полезные материалы для изучения сокетов.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍43💅1
This media is not supported in your browser
VIEW IN TELEGRAM
8🥰5
Hola, Amigos!

Сейчас мы в команду ищем 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% на покупку билетов. Будем вас ждать!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍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 веке. И мы надеемся, что вы оцените наши труды по достоинству.

На этих выходных ездили отмечать все эти классные события на природу, проводить весело время вместе, пока лето радует погодой.

Вот такая она — Амиговская жизнь.
🎉22🔥8🤩1
Hola, Amigos! Познакомимся?

Мы хотим создавать для вас максимально интересный и полезный контент. Пожалуйста, кликните, в каком деле вы спец. А если не нашли себя в списке, то обязательно пишите в комментариях, чем занимаетесь!
Anonymous Poll
87%
Разработчик
5%
Project-менеджер
2%
Дизайнер
1%
CEO
1%
Маркетолог/PR
4%
Меня тут нет, напишу в комментах
👍2