Заметки тимлида // Канал Саши Шутай
رفتن به کانال در Telegram
Библиотека разработчика AGIMA: рассказываем про Backend, Frontend, аналитику, ML, DevOps и не только. Больше материалов на Хабре: https://habr.com/ru/company/agima/blog/. По всем вопросам: https://t.me/ashutay
نمایش بیشتر285
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
+930 روز
آرشیو پست ها
Привет! Меня зовут Айдар Мавлетбаев, и я Flutter-разработчик в AGIMA. Расскажу немного о том, за что люблю библиотеку для работы с БД Hive.
Одна из самых распространённых фич для любого мобильного приложения — хранение и обработка данных. Для Flutter существуют различные библиотеки для работы с БД, но наиболее популярная — Hive.
Hive — это легкая и быстрая база данных NoSQL, написанная на чистом Dart. Её можно использовать на любой платформе, которую поддерживает Flutter. Hive разработана таким образом, чтобы быть максимально простой и удобной в использовании. Hive хранит данные в виде «ключ/значение» и поддерживает различные типы данных.
Основные преимущества использования Hive в приложениях Flutter:
- Простота использования.
Hive предоставляет простой и понятный API для работы с базой данных.
- Скорость разработки.
- Кросс-платформеность.
- Безопасность.
Hive по умолчанию предоставляет шифрование данных.
Как говорилось выше, Hive — NoSQL-решение. Это значит, что данные записываются не в таблицу, а в так называемые боксы. По сути, это место, где хранятся наши данные в формате «ключ/значение».
В целом, Hive — это отличный выбор для разработки мобильных и веб-приложений на Flutter, которые требуют легковесную и быструю базу данных.
Привет! Меня зовут Саша Омельяненко, и я Flutter-разработчик в AGIMA. Хочу поговорить сегодня об отладке приложений.
Отладка ПО — неотъемлемая часть разработки. Если вкратце, задача отладки — выявить и устранить проблемы с производительностью и скоростью отрисовки экранов, не допускать переполнения памяти или ошибок в коде. Разные технологии предполагают разные способы и инструменты отладки. Сегодня я рассмотрю их на примере отладки Flutter-приложений.
Breakpoint
Самый популярный способ отладки, который позволяет остановить выполнение кода в определенной точке, чтобы проанализировать поведение приложения и данные в переменных. Контрольные точки важны, поскольку помогают выявить и исправить логические ошибки, улучшить общее качество кодовой базы приложения.
Логирование
Инструмент, который позволяет вывести в консоль нужную информацию: ошибки, результаты запросов в сеть и т. п. Самый простой вариант логирования — это функции типа print().
Также в Dart SDK есть библиотека 'dart:developer', которая включает в себя метод log(). Он отображает более подробную информацию об ошибке: например, имя метода или StackTrace. Существуют и более «прокачанные» библиотеки — типа Logger. Они не только выводят логи, но и могут разделить их по уровням вроде Info, Warning или Error и подсветить их разными цветами.
Stack Trace
Трассировка стека необходима, чтобы помочь понять последовательность событий, которые привели к ошибке или сбою в приложении. Стек — это структура данных, которая хранит информацию о вызовах функций и об обращении к соответствующим переменным.
Теперь немного про инструменты Flutter и не только.
Flutter DevTools
Мощный инструмент, который позволяет анализировать ваше приложение в режиме реального времени. В нем содержится подробная информация о том, как работает ваше приложение, включая загрузку процессора, памяти и лагов при отрисовкe UI. Вы можете использовать эту информацию для оптимизации производительности приложения и определения любых областей, требующих улучшения.
Flutter Observatory
Это инструмент профилирования производительности, который включен во Flutter. Он позволяет отслеживать использование памяти и процессора приложением в реальном времени. Его можно использовать для мониторинга производительности и выявления любых проблем с производительностью.
Sentry, Firebase Crashlytics, Datadog
Это сервисы удаленного мониторинга ошибок в реальном времени. Все подобные сервисы предоставляют похожие возможности. Еще они предоставляют централизованную платформу для отслеживания ошибок, отладки и мониторинга производительности уже установленных у пользователя приложений.
Профилирование помогает выявить любые проблемы с производительностью. Отладка помогает быстро найти и устранить любые ошибки. Используя инструменты и сторонние сервисы, можно сделать процесс отладки комфортнее и в разы быстрее.
Расскажите, какими еще инструментами для отладки вы пользуетесь и какие инструменты предоставляет ваша технология.
Компания OpenAI представила новую модель искусственного интеллекта GPT-4, на замену GPT-3.5
В этом посте мы собрали факты о новых возможностях GPT-4 и сравнили их с GPT-3.5:
Выполнение задач
Подход к выполнению задач у GPT-4 более точный, но при этом более глобальный, чем у GPT-3.5. Это позволяет получить более креативный и точный ответ.
Возможности
Теперь GPT-4 может обрабатывать не только текст, но и изображения. ИИ обрабатывает изображения любой сложности и даже может проанализировать картинку и ответить на заданный вопрос.
Надежность
OpenAI заявили, что GPT-4 на 40% стабильнее, чем GPT-3.5. Вероятность того, что ИИ даст вам неправильный ответ в разы меньше, чем у GPT-3.5.
Не забывайте, что хоть GPT-4 стал в разы мощнее, чем его предшественник, ему еще очень далеко до человека. Да и человечеству еще очень далеко до создания идеального ИИ.
6 принципов написания приложения на Vue, которое легко поддерживать: https://habr.com/ru/company/agima/blog/722332/.
Frontend-разработчик AGIMA Наталья Калачева написала статью о том, как оптимизировать работу с фреймворком Vue. Если следовать ее принципам, поддерживать и расширять приложения на JS будет проще.
Из текста вы узнаете:
- как сделать масштабируемую структуру;
- как выделять все запросы к API;
- как и зачем использовать стор и т. д.
Чтобы объяснить все тонкости и привести примеры кода, пришлось разбить текст на 2 части. Сегодня на Хабре первые 3 принципа, а завтра — еще 3. Вопросы, как обычно, можно задавать под статьей — по ссылке выше.
Разработка MVP — важный этап работы над продуктом. От него зависит, как пользователи его воспримут и насколько легко будет развивать его дальше.
Заместитель CTO AGIMA Леша Половинкин недавно написал подробную статью о том, как не нахватать ошибок в MVP. Основные мысли мы собрали на карточках.
Google I/0 2023
Открылась регистрация на Google I/O — ежегодную конференцию для разработчиков мобильных приложений.
В этом году ее проведут 10 мая. Она посвящена новейшим решениям, продуктам и технологиям Google, которые помогают разработчикам раскрыть потенциал и упростить рабочий процесс.
Речь пойдет о способах использования новейших технологий: от искусственного интеллекта и облачных вычислений до мобильных устройств и интернета.
Участников ждут более ста технических сессий, а также масса полезных учебных материалов. Регистрация доступна тут: тыц.
В этом году главные ожидания связаны с технологиями искусственного интеллекта. Их в Google считают приоритетным направлением. Компания может представить новости о платформе Bard — своём ответе на ChatGPT — и о других продуктах для создания изображений, написания кода приложений и тестирования прототипов продуктов с помощью ИИ.
Немного про Flutter, а точнее, про локализацию приложений
Локализация — важный вопрос для мобильных приложений, особенно для тех, которые ориентированы на глобальную аудиторию. И Flutter предоставляет несколько пакетов, которые помогают быстро сделать приложение мультиязычным.
Но при таком количестве доступных пакетов выбрать подходящий бывает непросто. Поэтому расскажем о наиболее популярных библиотеках.
flutter_localizations
Официальный пакет Flutter, который предоставляет набор локализаций для большого количества языков, включая даже арабский, китайский, японский, корейский и пр. Он прост в использовании и имеет встроенную поддержку множественного числа и форматирования даты.
intl
Еще один популярный пакет для локализации во Flutter. Он обеспечивает всестороннюю поддержку форматирования дат, чисел и сообщений. Пакет также поддерживает множественное число и переводы с учетом пола. Intl очень гибкий и настраиваемый, что делает его отличным выбором для сложных задач локализации.
easy_localization
Мощный пакет локализации для Flutter, который обеспечивает поддержку нескольких языков, множественное число и переводы с учетом пола. Есть кодогенерация, возможность загружать переводы в форматах JSON, CSV, Yaml, Xml.
yalo_locale
Библиотека, которая дает самый простой способ получить данные локализации из файлов Yaml. Одна из ключевых особенностей Yalo Locale — ее простота и удобство. Разработчики могут настроить пакет всего за несколько строк кода, и он без проблем интегрируется с другими пакетами и библиотеками Flutter. Также он позволяет генерировать код с именами всех ресурсов, лежащих в папке assets.
flutter_i18n
Легкий для использования и интеграции пакет для Flutter. Он обеспечивает поддержку нескольких языков, множественного числа и переводов с учетом пола. Библиотека включает возможность динамически подгружать файлы локализации удаленно. Flutter I18n обладает широкими возможностями кастомизации, что делает его отличным выбором для приложений с нестандартными требованиями в локализации.
l10n_flutter
Пакет локализации Flutter, который обеспечивает поддержку нескольких языков, множественных чисел и переводов для разных полов. l10n Flutter предоставляет разработчикам широкий спектр возможностей настройки.
Выбор пакета локализации приложения Flutter зависит от ваших потребностей. flutter_localizations и intl — самые популярные из них, но и остальные не стоит списывать со счетов. Иногда они предоставляют дополнительные возможности, которые могут подойти для вашего приложения.
P.S.
Расскажите, какие темы вас интересуют. Мобильная или веб-разработка, фронт или бэк — не важно. В следующих постах мы готовы ответить на почти любые вопросы и обсудить почти любые технические темы =)
В App Store Connect завезли бенчмарки
В среду Apple объявила об обновлении для разработчиков. Теперь App Analytics, инструмент, входящий в состав App Store Connect, позволит разработчикам снимать метрики приложений.
В результате разработчики смогут сравнивать производительность своих приложений с другими аналогичными приложениями, доступными в App Store.
Apple обещает, что производительность каждого конкретного приложения останется конфиденциальной. Разработчики не будут иметь прямого доступа к информации сторонних приложений.
Подробнее можно почитать тут:
https://developer.apple.com/help/app-store-connect/view-app-analytics/view-app-metrics/
Наш СТО Андрей Непряхин недавно опубликовал статью о стилях лидерства. В ней он объясняет, почему руководить командой лучше в разных режимах: иногда стоит включать диктатора, а иногда — демократа.
На карточках основные положения статьи, а на Хабре — текст полностью. Читайте и задавайте вопросы. Поможем найти ответ.
Как работать с пользователями финтех-продуктов, расскажем на митапе 28 февраля: https://www.agima.ru/fintech/
Программа онлайн-митапа «Каналы привлечения и удержания клиентов в финтех» полностью готова. На нем выступят эксперты из AGIMA, Альфа Банка, Тинькофф, МКБ и Московской биржи. Вот темы их докладов:
— «Как мы запускали мобильное приложение Финуслуги»;
— «Сегментная стратегия работы с МСБ на конкурентном банковском рынке»;
— «Как правильно развивать финтех-продукт в новых реалиях»;
— «Как подружить финансовые и нефинансовые фичи»;
— «Технологичность VS Бизнес, или Зачем компаниям Cloud».
Участие в митапе бесплатно. Нужно просто пройти регистрация по ссылке выше. Стартуем 28 февраля в 18:00 по Москве. Готовьте вопросы для спикеров. Авторам лучших из них подарим призы.
Главные тренды мобильной разработки
Мобильная разработка — один из самых развивающихся сегментов в IT. Давайте посмотрим, какие тенденции и технологии популярны. Да и что, в принципе, будет определять эту отрасль в ближайшее время.
Кроссплатформенная разработка
Средства разработки кроссплатформенных приложений становятся всё популярнее. Они позволяют создавать приложения для iOS и Android, а иногда — даже под Web и Desktop, используя единую кодовую базу. Это экономит время и деньги. Поэтому кроссплатформенная разработка — главная тенденция. Согласно отчету Statista, доля приложений, написанных на кроссплатформенных технологиях, за последние три года выросла более чем на 20%.
Прогрессивные веб-приложения (PWA)
PWA — это веб-приложения, которые выглядят и работают как нативные мобильные приложения, но к ним можно получить доступ непосредственно из браузера. PWA становятся всё популярнее, поскольку предлагают экономически оправданную альтернативу разработке нативных приложений. Согласно отчету AppInstitute, 48% потребителей считают, что PWA работают быстрее, чем нативные приложения. Думаю, эти данные немного притянуты за уши. Но, например, в России PWA — выход для организаций, которые оказались под санкциями и не могут нормально размещать приложения в сторах.
Нативная разработка
Несмотря на популярность кроссплатформы, PWA и других новых тенденций, нативная разработка — по-прежнему самая популярная. Даже будучи Flutter-тимлидом, я вынужден согласиться, что нативные приложения обеспечивают лучшую производительность и ранний доступ к новым фичам. Да и нативных разработчиков на рынке больше. Многие компании просто боятся связываться с кроссплатформой. Это делает нативные технологии востребованными. Недавний опрос Clutch показал, что 60% разработчиков приложений предпочитают использовать нативную разработку для своих проектов.
Искусственный интеллект и машинное обучение
В последнее время искусственный интеллект начал буквально переворачивать мир. Еще когда я был студентом, нейросети казались чем-то далеким и недоступным. Сейчас ИИ уже массово используется для распознавания речи, изображений, для других сложных вычислительных задач. Недавнее исследование Research And Markets говорит, что в 2023 году глобальный объем рынка мобильных приложений с использованием ИИ достигнет 7,67 млрд долларов.
Интернет вещей (IoT)
Интернет вещей становится все более распространенным. Устройства становятся более связанными и интегрированными с мобильными приложениями. Приложения позволяют пользователям контролировать свои умные дома, автомобили и другие устройства со своих смартфонов. Согласно отчету Statista, к 2025 году мировой рынок IoT достигнет 1,6 триллиона долларов.
Чат-боты
Последними отмечу чат-боты, которые стали чуть ли не главным способом общения компаний с клиентами. Чат-боты предлагают пользователям удобный и интерактивный способ получения информации.
Все эти технологии идут рука об руку с разработкой мобильных приложений. Я надеюсь, что это даст какие-то идеи для ваших пет-проектов. А может, вы что-то сможете внедрить у себя на работе.
Если я что-то забыл или не обратил внимания, пишите в комментариях.
Как адаптировать Android-приложение под Huawei: https://habr.com/ru/company/agima/blog/715206/.
Руководитель Android-разработки AGIMA Миша Вассер написал на Хабр статью-инструкцию о том, как адаптировать Android-приложение под Huawei. В ней много кода, иллюстраций и удобных фишек:
- как настроить пуш-уведомления;
- как прикрепить географические карты;
- как настроить диплинки в приложении;
- как добавить SHA-256 ключ и т. д.
Статья для тех, кто кодит под Android. Читайте, делитесь с коллегами, добавляйте ее в закладки. А еще задавайте вопросы в комментариях, поможем разобраться.
Анонимное исследование для всех, кто работал с No- и Low-code: https://t.me/affinage_nocode_bot.
Наши друзья из AFFINAGE заметили, что разработчики редко пользуются No- и Low-code-решениями. И это несмотря на то, что No-code помогает ускорить разработку в несколько раз.
Чтобы найти причины скепсиса, они проводят опрос. Принять в нем участие могут все, у кого есть опыт работы с No/Low-code. Для удобства ребята даже сделали специального бота.
Бот запоминает ответы, даже если вы не завершили опрос. Так что пройти его можно в несколько заходов. Результаты AFFINAGE опубликуют в СМИ, а мы поделимся с вами.
Рассказываем, что поменялось в новой версии GitLab: https://habr.com/ru/company/agima/blog/713106/
DevOps-специалист AGIMA Максим Рязанцев написал небольшой обзор на новую версию GitLab. В статье он рассказывает, какие фичи появились на сервисе и как их использовать в работе.
Статья будет интересна начинающим DevOps-инженерам. Переходите по ссылке, чтобы разобраться в новых функциях. А в комментариях пишите, каких фичи вы бы хотели видеть в новой версии.
Всем привет! Я Саша Ворожищев, Flutter Teamlead в AGIMA. Поэтому не могу пропустить эту новость: вышел Flutter 3.7.0. Постараюсь коротко рассказать, что в нем нового.
1. Поддержка Material 3.
Потыкать можно тут: https://flutter-experimental-m3-demo.web.app/#/.
2. Поддержка верхнего и каскадного меню для десктопных версий приложения.
https://api.flutter.dev/flutter/widgets/PlatformMenuBar-class.html.
3. Кастомизированное контекстное меню.
https://master-api.flutter.dev/flutter/cupertino/CupertinoTextField/contextMenuBuilder.html.
4. Новые виджеты CupertinoListSection и CupertinoListTile: отображения списка виджетов в стиле iOS.
https://api.flutter.dev/flutter/cupertino/CupertinoListSection-class.html
https://api.flutter.dev/flutter/cupertino/CupertinoListTile-class.html
5. Улучшение физики прокрутки и работы со списками. Также добавили новые виджеты: Scrollbars, DraggableScrollableSheet, AnimatedGrid и SliverAnimatedGrid.
https://api.flutter.dev/flutter/material/Scrollbar-class.html
https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html
https://api.flutter.dev/flutter/widgets/AnimatedGrid-class.html
https://api.flutter.dev/flutter/widgets/SliverAnimatedGrid-class.html
6. Улучшение инструментов локализации. Был полностью переписан gen-l10n. Добавили работу с формами множественного числа.
https://docs.flutter.dev/development/accessibility-and-localization/internationalization
7. Замена движка Skia на Impeller. Почти. Новый движок обещает быть более быстрым и производительным при компиляции под iOS. Почему «почти»? Доступен он пока только на ветке Stage.
Подробнее:
https://github.com/flutter/flutter/wiki/Impeller
8. Проверка выпуска iOS. При выпуске приложения под iOS, при выполнении команды flutter build ipa будет проверка контрольного списка параметров. Это гарантирует, что приложение готово к отправке в AppStore.
9. Обновления инструментов разработчика. Новые функции включают в себя возможность анализировать текущую выделенную память для приложения с разбиением по классам и частям кода во время выполнения.
Обновленные инструменты позволяют сравнивать снапшоты. Это нужно, чтобы сравнивать, насколько активно используется память в двух разных моментах времени. Также появилась возможность анализа фреймов и их влияния на производительность.
Подробнее:
https://docs.flutter.dev/development/tools/devtools/memory
10. Работа с изолятами. Теперь Platform Channels можно вызывать из любого изолята. Ранее это можно было сделать только из основного потока.
11. Отключена поддержка Bitcode в iOS.
На самом деле изменений достаточно много, ознакомиться со всеми можно по ссылке ниже:
https://docs.flutter.dev/development/tools/sdk/release-notes/release-notes-3.7.0
Тут выкатили генератор unit-тестов с использованием ИИ на основе ChatGPT.
Поддерживает C#, C++, Go, Java, JavaScript, PHP, Python, R Lang, Ruby и Swift, но разработчики обещают, что продукт будет развиваться.
Попробовать можно тут:
https://www.airtest.dev/
Пять книг для разработчика
На связи Саша Ворожищев, тимлид AGIMA и админ этого канала. Предлагаю начать новый год новой подборкой. Собрал список из 5 книг, которые, по моему мнению, полезно прочитать любому разработчику.
Томас Хант, «Программист-прагматик»
Книга для тех, кто хочет получить лучшие практики при разработке. Книга совсем недавно была обновлена и актуализирована под современные технологии.
Читать —>
Роберт Мартин, «Чистый код. Создание, анализ и рефакторинг»
Книга для тех, кто хочет писать лучший код. Она посвящена созданию чистого, читаемого и легкого для понимания кода. Советы в книге относятся ко всем языкам, но примеры — на Java. Одна из настольных книг любого разработчика.
Читать —>
Ким, Бер, Спаффорд, «Проект "Феникс". Как DevOps устраняет хаос и ускоряет развитие компании»
Книга для тех, кто хочет посмотреть на весь процесс разработки со стороны. Она рассказывает о группе сотрудников вымышленной IT-компании, где всё идет не так. Легкая, но полезная книга для отпуска.
Читать —>
Кент Бек, «Экстремальное программирование. Разработка через тестирование»
Книга для тех, кто интересуется нестандартными подходами к разработке. Сложный текст, требует осознания всей концепции TDD в целом. Но абсолютно точно не менее полезный по сравнению с остальными из этого списка.
Читать —>
Чарльз Петцольд, «Код. Тайный язык информатики»
Книга для тех, кто интересуется историей создания вычислительной техники. Тут собрана вся история компьютеров, начиная с первых дней существования телеграфа и заканчивая развитием микропроцессоров. Еще одна книга для приятного времяпровождения.
Читать —>
Существует еще много книг, которые могли бы попасть в этот список. Давайте продолжим его ниже, рассказывайте, какие профессиональные книги вы советуете прочитать.
