Pull to refresh
5
18

Разработка ПО с интеграцией ИИ

Send message

State-менеджмент «из коробки» во Flutter: эффективная альтернатива BLoC и Riverpod

Level of difficultyMedium
Reading time11 min
Reach and readers6.8K

Управление состоянием — один из ключевых аспектов разработки приложений на Flutter. Часто для этой задачи выбирают тяжелые и многофункциональные решения вроде BLoC, Riverpod или GetX. Однако во многих проектах подобная инфраструктура избыточна: не каждое приложение требует сложной архитектуры и дополнительного уровня абстракции.

В данной статье мы расскажем про встроенные инструменты Flutter, которые позволяют реализовать надежный и предсказуемый state-менеджмент без сторонних фреймворков. Вы узнаете, как использовать ValueNotifier и Provider для удобной работы с состоянием и когда такой подход является оптимальным.

Читать далее

Работа с RTSP-плеером во Flutter: выбор библиотеки и снижение задержки

Level of difficultyMedium
Reading time7 min
Reach and readers6.9K

Работа с RTSP-потоками во Flutter остаётся задачей, которую нельзя решить штатными средствами фреймворка. Базовый плагин video_player не поддерживает RTSP, из-за чего прямое воспроизведение видео с IP-камер и систем наблюдения недоступно без сторонних решений. Для корректной работы в таких сценариях требуется специализированный плеер, обеспечивающий стабильное отображение потока и минимально возможную задержку.

В данной статье мы рассмотрим основные библиотеки для работы с RTSP во Flutter — flutter_vlc_player, fijkplayer и media_kit, сравним их особенности, достоинства и влияние на задержку воспроизведения. Отдельное внимание уделим настройкам, которые позволяют минимизировать latency, прежде всего в решениях на базе FFmpeg. Также разберём доступные параметры оптимизации в flutter_vlc_player. 

Материал поможет выбрать подходящую библиотеку и настроить плеер так, чтобы обеспечить быстрый старт потока, минимальную задержку и стабильную работу в практических сценариях.

Читать далее

Наш опыт публикации мобильных приложений. Часть 2: AppGallery и RuStore

Level of difficultyEasy
Reading time11 min
Reach and readers7.1K

В первой части мы разобрали процесс подготовки приложения к публикации и рассмотрели требования модерации в App Store и Google Play. Однако экосистема мобильных сторов сегодня значительно шире, и успешный релиз нередко включает размещение продукта в альтернативных магазинах, которые активно развиваются и набирают аудиторию.

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

Материал предназначен для заказчиков, разработчиков, продакт-менеджеров и технических специалистов, отвечающих за релиз и сопровождение мобильных продуктов.

Читать далее

Как настроить SEO в Next.js так, чтобы проект реально индексировался

Level of difficultyHard
Reading time15 min
Reach and readers7.9K

Во многих проектах на Next.js возможности для SEO остаются неиспользованными: страницы индексируются не полностью, структурированные элементы отсутствуют, а ссылки в соцсетях отображаются неправильно. Чтобы этого избежать, существуют проверенные инструменты и подходы, которые помогают сделать SEO понятным, полным и эффективным.

В данной статье рассмотрены ключевые аспекты настройки SEO в проектах на Next.js: работа с метаданными, генерация sitemap и robots.txt, оптимизация изображений и внедрение структурированных данных. 

Читать далее

Наш опыт публикации мобильных приложений. Часть 1: AppStore и Google Play

Level of difficultyEasy
Reading time16 min
Reach and readers8.2K

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

Но перед тем как приложение попадёт в руки пользователей, его должны одобрить модераторы App Store и Google Play. И вот тут начинается самое интересное. За последние годы требования стали такими, что даже опытные разработчики получают реджекты по полной программе. 

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

Читать далее

Настройка ESLint и Prettier в веб-приложении на Next.js и TypeScript

Level of difficultyMedium
Reading time6 min
Reach and readers6.8K

Когда команда разработчиков начинает активно расти, неизбежно возникают вопросы консистентности кода. Разные стили написания, различные подходы к форматированию и отсутствие единых стандартов могут серьезно замедлить разработку и усложнить поддержку проекта.

В данной статье мы рассмотрим пошаговую настройку ESLint и Prettier на примере нашего веб-приложения, построенного на Next.js и TypeScript.

Читать далее

Документирование фронтенд-приложений: обзор JSDoc и Storybook

Level of difficultyMedium
Reading time9 min
Reach and readers6.6K

В современной веб-разработке качественная документация так же важна, как и качественный код. Когда ваше приложение разрастается до десятков или сотен компонентов, функций и модулей, становится практически невозможно удерживать в памяти все детали их работы. Хорошая документация не только облегчает поддержку проекта в долгосрочной перспективе, но и значительно ускоряет вхождение новых разработчиков в команду.

В этой статье мы рассмотрим два популярных подхода к документированию фронтенд-кода: JSDoc и Storybook. Они решают схожие задачи, но совершенно разными способами и с разным фокусом.

Читать далее

Промышленная автоматизация металлургического производства. Архитектурные решения и техническая реализация

Level of difficultyEasy
Reading time6 min
Reach and readers2.6K

Расскажем о практическом кейсе внедрения системы автоматизации на металлургическом предприятии. Покажем техническую реализацию архитектурных решений, разберем особенности интеграции промышленного оборудования и поделимся подходами к организации обмена данными в реальном времени. Особое внимание уделим реализации видеоаналитики производственных процессов и созданию замкнутого контура управления на базе микросервисной архитектуры.

Читать далее

Настройка Jest и React Testing Library: пошаговое руководство для React и Next.js проектов

Level of difficultyMedium
Reading time7 min
Reach and readers1.9K

В данной статье мы подробно рассмотрим процесс настройки среды unit-тестирования веб-приложений на базе React и Next.js с использованием Jest и React Testing Library. Мы расскажем об установке необходимых зависимостей, создании конфигурационных файлов, настройке Babel и TypeScript, подключении SCSS и SVG, а также организации структуры проекта. Особое внимание уделено специфике настройки Jest в среде Next.js. Материал будет полезен для frontend-разработчиков и команд разработки, которые работают с React или Next.js проектами и хотят внедрить качественное unit-тестирование. 

Читать далее

Делаем простой навигатор с помощью google maps на flutter своими руками

Level of difficultyMedium
Reading time3 min
Reach and readers1.8K

Многие компании сталкиваются с необходимостью создания кастомных навигационных решений, ведь качественно реализованная карта может стать ключевым конкурентным преимуществом — особенно для логистических сервисов, служб доставки и транспортных приложений.

В этой статье мы расскажем, как использовать Google Maps для создания удобного навигатора, и поделимся практическими советами по работе с картами во Flutter.

Читать далее

Event-Driven архитектура на FastAPI: через паттерн Pub/Sub

Level of difficultyHard
Reading time13 min
Reach and readers5.9K

В мире разработки программного обеспечения постоянно появляются новые подходы к построению систем. Event-Driven архитектура выступает одним из наиболее перспективных решений для создания гибких и масштабируемых приложений.

В данной статье мы расскажем о реализации Event-Driven архитектуры (EDA) с использованием FastAPI и паттерна Publish/Subscribe. Рассмотрим основные концепции, компоненты и практические примеры кода для создания масштабируемой системы обмена сообщениями.

Читать далее

Telegram Web App: Интеграция с Flutter

Level of difficultyEasy
Reading time4 min
Reach and readers1.8K

В прошлой статье мы сделали общий обзор этого приложения, его особенности, преимущества и ограничения.

Теперь рассмотрим, как создать Telegram Web App с использованием Flutter, фреймворка для разработки кроссплатформенных приложений.

Читать далее

Реализация простого SSE клиента на Dart

Level of difficultyMedium
Reading time3 min
Reach and readers920

Хочу поделиться недавним кейсом из нашей практики мобильной разработки. Перед нами стояла задача — реализовать обновление данных в клиентском приложении в режиме реального времени, когда изменения на сервере моментально отображаются у пользователя.

Мы рассматривали два подхода: WebSocket и Server-Sent Events (SSE). Оба варианта соответствовали нашим требованиям, но в итоге мы остановились на SSE — из-за его простоты реализации и использования стандартного HTTP-протокола.

Читать далее

Как у нас происходит процесс передачи макетов разработчикам

Level of difficultyEasy
Reading time5 min
Reach and readers1.2K

Важной частью работы дизайнеров является передача интерфейсов в руки фронтенд-разработчиков (mobile и web). Но, между творческим замыслом дизайнера и его воплощением в коде может возникнуть немало трудностей. 

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

Читать далее

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

Level of difficultyEasy
Reading time5 min
Reach and readers2.5K

Мы собрали обратную связь по практическому опыту использования ИИ инструментов у наших сотрудников.

В статье расскажем, как наши разработчики используют нейросети, какие задачи они решают с их помощью и как изменилось их отношение к ИИ за последний год.

Читать далее

Решение задач распознавания на Flutter

Level of difficultyMedium
Reading time4 min
Reach and readers1.8K

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

Читать далее

Общий обзор Telegram Mini App: особенности, преимущества, ограничения и примеры

Level of difficultyEasy
Reading time9 min
Reach and readers26K

Telegram Mini App — встроенное в мессенджер веб-приложение, которое дает возможность пользоваться сервисом без установки отдельных программ. Это позволяет иметь удобный сервис, интегрированный с экосистемой мессенджера, будь то интернет-магазин, система бронирования и др.

Мы написали общий обзор данного приложения, его возможности, первые шаги к созданию и существующие примеры.

Читать далее

Аналитика мобильных приложений на Flutter. Часть 2. Подключение Firebase Analytics

Level of difficultyEasy
Reading time3 min
Reach and readers912

В первой части мы рассмотрели подключение решения Yandex AppMetrica. В этой части мы рассмотрим подключение решения от Google - Firebase.

Читать далее

Аналитика в мобильном приложении на Flutter. Часть 1. Yandex AppMetrica

Level of difficultyEasy
Reading time2 min
Reach and readers1.2K

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

В первой части мы рассмотрим подключение решения Yandex AppMetrica на простом примере.

Читать далее

Реализация чата на Flutter при помощи вебсокетов

Level of difficultyEasy
Reading time3 min
Reach and readers8.3K

Всем привет, на связи PurplePlane! В этой статья мы хотели бы рассмотреть реализацию простого чата на языке Dart, используя пртокол websocket.

Рассмотрим пример использования вебсокета при реализации простого чата с помощью библиотеки web_socket_channel.

Читать далее
1

Information

Rating
447-th
Location
Владимир, Владимирская обл., Россия
Registered
Activity

Specialization

Бэкенд разработчик, Фронтенд разработчик
Git
SQL
Python
Linux
Docker
Nginx