Обновить
9
0

Разработчик мобильных приложений Flutter

Отправить сообщение

Когда важна каждая миллисекунда: оптимизация съёмки для CV и AR

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.6K

2ГИС Ситискан — это мобильное приложение для автоматизированной съёмки городской среды. Оно устанавливается на смартфон, закреплённый в автомобиле, и во время движения делает снимки, собирает координаты, скорость и другие параметры. Эти данные обрабатываются с помощью ИИ, чтобы находить проблемы в инфраструктуре: ямы, мусор, повреждённые объекты и другое.

Одна из ключевых задач приложения — снимать изображения с высокой частотой, особенно при объездах сложных участков. Но на практике оказалось, что стандартный метод съёмки takePicture во Flutter может занимать до 3 секунд на один кадр. Это делает невозможной съёмку даже 1 кадра в секунду, не говоря уже о 4 кадрах, которые нам нужны для точного анализа.

В этой статье мы — Руслан Цицер и Арген Жукеев @zhukeev— расскажем, как исследовали узкие места, перепробовали разные подходы — от RepaintBoundary до нативной обработки на C и Java — и в итоге добились стабильной съёмки с минимальной задержкой. Наш кейс будет полезен Flutter-разработчикам, которым необходима высокая частота съёмки (до 4 fps и выше) для своих приложений и инженерам в области компьютерного зрения и машинного обучения или разработчики AR/VR-решений на Flutter, где важны каждая миллисекунда и каждый пиксель.

Читать далее

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 2

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.5K

В предыдущей статье мы рассмотрели, как организовать самый простой CI/CD для сборки под Android через Codemagic.

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

Читать далее

Самый простой CI/CD пайплайн для flutter приложения с Codemagic. Часть 1

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.8K

Допустим, вы являетесь разработчиком на каком-нибудь небольшом проекте. Есть только ограниченный доступ в App Store Connect и Google Play. Это такие ограничения, как подписание сборок, публикация в маркеты.

Их, конечно, можно обойти, если почитать документацию и сделать необходимые сертификаты и профайлы (в случае с iOS) или используя оригинальный jks файл и пароли к нему (в случае с Android). Для этого, как правило, нужно пнуть владельца этих аккаунтов.

Данная статья будет вам полезна, если вы увидите себя хотя бы в одном из перечисленных случаев:

1. Процесс сборки под iOS или Android занимает слишком много времени и ресурсов вашего компьютера
2. На проекте есть другой разработчик, который активно занят проектом и день через день вносит какие-то изменения, но только вы можете сделать сборку
3. Ваш проджект менеджер попросил отправить очередную сборку тестировщикам, но вы не имеете доступ к своему компьютеру

Это будет подробный туториал с множеством скриншотов.

Читать далее

Создаем гироскопический параллакс-эффект во Flutter

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.8K

Сегодня расскажу, как с помощью гироскопа или акселерометра можно оживить картинку при простом наклоне телефона.

Читать далее

Создаем параллакс-эффект во Flutter с CustomPaint

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.9K

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

Читать далее

Раскраска SVG картинки во flutter, и почему я решил отключить Impeller

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.4K

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

Читать далее

Как с помощью ChatGPT реализовать раскраску во flutter

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров3.2K

Сегодня мы рассмотрим, как реализовать раскраску для растровых изображений с помощью алгоритма flood fill. Посмотрим, что уже есть на pub.dev, заглянем немного в теорию этого алгоритма, реализуем его на dart с помощью ChatGPT и применим во flutter приложении.

Читать далее

Как реализовать обрезку изображений во flutter без сторонних библиотек

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров2.9K

Сегодня рассмотрим, как с помощью небольших знаний в математике и встроенных инструментов flutter реализовать функционал редактирования изображений. Сначала рассмотрим существующие библиотеки, которые предоставляют нужный функционал, а потом реализуем собственное решение, используя GestureDetector, CustomPainter, RepaintBoundary и GlobalKey.

Читать далее

Как я повысил производительность flutter приложения с помощью FragmentShader. Часть 2

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров3.1K

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

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

Читать далее

Как я повысил производительность flutter приложения с помощью FragmentShader. Часть 1

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров2.4K

Статья о том, как я добавил фичу с рисованием пальцем на экране с помощью CustomPaint во flutter приложении и далее пошагово занимался оптимизацией

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Porto, Porto, Португалия
Дата рождения
Зарегистрирован
Активность

Специализация

Mobile Application Developer, Application Developer
Senior
От 450 000 ₽
Flutter
Dart
Development of mobile applications
Android development
iOS development
Client-server applications