Все потоки
Поиск
Написать публикацию
Обновить
8.11

Flutter *

Фреймворк для кросс-платформенной разработки

Сначала показывать
Порог рейтинга
Уровень сложности

Мой опыт flutter собеседований

Время на прочтение3 мин
Количество просмотров22K

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

Читать далее

3D-объекты во Flutter. Расширяем Flame

Время на прочтение16 мин
Количество просмотров6.2K

В конце прошлого года движок Flame для создания игровых приложений на Flutter опубликовал первую стабильную версию 1.0 и анонсировал большие изменения в системе миксинов, подходах к управлению компонентами и созданию сцены из иерархии объектов, каждый из которых может выступить в роли контейнера. Прежде всего Flame ориентирован на двумерную графику (спрайты, системы частиц, визуальные эффекты), но возможности Skia позволяют использовать трехмерные преобразования и обеспечивать работу с шейдерами, благодаря чему можно приблизиться к созданию трехмерных игр. В этой статье мы обсудим возможный путь создания трехмерных компонентов в Flame с произвольной визуализацией с использованием компилируемых шейдеров.

Читать далее

Поговорим про безопасность в Dart и Flutter

Время на прочтение8 мин
Количество просмотров5.6K

Безопасность приложения определяется всеми уровнями - от операционной системы и компилятора до используемых пакетов/плагинов и кода самого приложения. Особенно этот вопрос актуален, когда значительная часть используемых компонентов поддерживается сообществом и не контролируется единой организацией или фондом и, чем более популярной становится платформа, чем больше пакетов появляется и чем больше становится кодовая база платформа, тем больше вероятность возникновения уязвимостей разного уровня (особенно в низкоуровневом коде на C++, где возможна утечка памяти, переполнение буфера, состояние гонки и другие неприятности), а также внедрения вредоносного кода разработчиками из сообщества (начиная от безобидных баннеров, до внедрения шпионского кода, бэкдоров и деструктивных функций). В статье мы обсудим какие векторы атак возможны в Dart, какие меры предпринимает сообщество и Google для снижения рисков при создании платформы и пакетов (и про бейджик openssf), и как можно обезопасить себя.

Читать далее

Flutter для автомобиля. А почему бы и нет?

Время на прочтение9 мин
Количество просмотров7.5K

Одной из проблем развития бортовых систем для автомобиля является создание качественного переносимого программного обеспечения, которое бы работало на бортовых системах разных автопроизводителей и могло быть скомпилировано под разные аппаратные и программные архитектуры. Несмотря на очевидную актуальность, задача осложнялась прежде всего тем, что большинство автопроизводителей предпочитало создавать собственные проприетарные операционные системы, что затрудняло создание переносимого программного обеспечения. Ситуация изменилась со стартом проекта Automotive Grade Linux (AGL), поддерживаемыми крупными компаниями такими как Toyota, Mazda, Suzuki, Ford и Mercedes Benz и производителями медиасистем (например, Panasonic). И в планах развития проекта Flutter на 2022 год обозначено развитие поддержки AGL как целевой платформы для приложений. В этой статье мы рассмотрим основные идеи создания переносимых приложений для AGL на Flutter.

Читать далее

Разговор с разработчиками о производительности на Flutter

Время на прочтение2 мин
Количество просмотров5.5K

Уже некоторое время команда создателей фреймворка Flutter проводит ежеквартальные опросы пользователей, чтобы сами разработчики могли выразить свое мнение. О чём это говорит? Если коротко, Flutter по-прежнему нравится большинству разработчиков.

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

Читать далее

Как добавить Isar в проект на Flutter

Время на прочтение3 мин
Количество просмотров3.7K

Первое время при работе с Flutter мне хватало Hive. Быстро, удобно, но возможностей Hive мне стало не хватать. На странице https://pub.dev/packages/hive разработчики посоветовали попробовать Isar и я решила рискнуть. Много звездочек, но он совсем свежий, ошибки не гуглятся, а документация оставляет большие белые пятна.

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

Читать далее

Flutter for Web: гайд для начинающих

Время на прочтение8 мин
Количество просмотров32K

Изначально Flutter был известен как фреймворк для создания кроссплатформенных мобильных приложений для Android и iOS. Но концепция Flutter не ограничивается мобильной разработкой, фреймворк позволяет создавать пользовательские интерфейсы для любого экрана с помощью кроссплатформенной разработки: разрабатывать web и desktop-приложения. Мы в Friflex работаем на Flutter с момента выхода первой версии и хорошо знаем особенности фреймворка. В этой статье Никита Улько, Flutter fullstack developer в Friflex, рассказывает об особенностях разработки Flutter для Web. Если вы хотите попробовать Flutter для web, этот гайд для вас.

Читать далее

Ещё о Flutter 3

Время на прочтение7 мин
Количество просмотров4.1K

Продолжаем обсуждать, что нового появилось в версии Flutter 3. Начало здесь.

Читать далее

Как применить БЭМ методологию во Flutter проекте

Время на прочтение5 мин
Количество просмотров3.7K

Я, как и многие Flutter разработчики, мигрировал из веб-разработки. По инерции хотелось использовать те же подходы к вёрстке и управлению состояниями. Если во втором случае можно было взять MobX или BLoC и получить что-то очень близкое к популярным веб фреймворкам, то с вёрсткой было не все так однозначно.

Читать далее

Создай себе инструмент. Часть 1: скрипт на Dart

Время на прочтение5 мин
Количество просмотров3.8K

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

Читать далее

О Flutter 3

Время на прочтение5 мин
Количество просмотров4.7K

Flutter 3 - последний этап для перехода от мобильной к многоплатформенной интегрированной среде, которая поддерживает настольные приложения для macOS и Linux, интеграцию с Firebase, функции повышения производительности, а также может быть совмещена с Apple Silicon. О том, что интересного доступно в новой версии, узнаем под катом.

Читать далее

BLE Inspector, маленькое open source приложение для датчиков уровня топлива

Время на прочтение5 мин
Количество просмотров4K

Это странная статья, где не будет практически ничего ни о Flutter, ни о датчиках уровня топлива. Просто описание ма-а-а-а-аленького opensource проекта который может быть интересен интеграторам оборудования спутникового контроля транспорта (в скобках напишу ещё аббревиатуру “ГЛОНАСС” на которую у нас, интеграторов, срабатывает внутренний триггер).

А если конкретнее, то приложение для тех кто начал работать с BLE датчиками. Возможно оно сможет немного упростить вам жизнь. Всё бесплатно и доступно на GitHub.

триггер сработал

Сборка мусора во Flutter

Время на прочтение4 мин
Количество просмотров6.8K

В РСХБ мобильную разработку мы ведём преимущественно на Flutter. В новой статье поговорим об алгоритме, который используется в любом приложении – о сборщике мусора (англ. Garbage collection). Его основной задачей, как в любом высокоуровневом языке программирования, является наблюдение за ссылками и очистка областей памяти с целью предотвращения переполнения памяти. Под катом рассказываем о том, как во Flutter работает процесс сборки “мусора” - неактивных и неиспользуемых ссылок, а также локальных и глобальных экземпляров языка Dart.

В языке Dart применяется сборщик мусора по поколениям объектов. Сборщик мусора для сборки экземпляров с коротким жизненным циклом и сборщик мусора для долгоживущих экземпляров, переживших более одного цикла сборки мусора.

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

Читать далее

Ближайшие события

Дайджест недели (мобильная разработка) – #3

Время на прочтение3 мин
Количество просмотров1.9K

Продолжаю эксперимент с рубрикой дайджестов на Хабре. На этот раз, собрал наиболее полезные и популярные материалы для мобильщиков за 2 недели.

Android ?

• Знакомьтесь: библиотека TiRecycler
• Custom Canvas Animations in Jetpack Compose
• Special Google I/O 2022 Edition
• Scan code without camera permissions
• Do you use Kotlin’s most powerful tool?
• VK при поддержке Минцифры запустила бета-версию российского магазина приложений
• Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?
• Some Best Practices for Android App Architecture
• 15 Best Android Libraries for 2022
• Strategies for managing Gradle dependencies
• Запросы в сеть с Clean Architecture и MVVM. Boilerplate ч. 2
• Как и зачем собирать Android приложение в docker контейнере
• Как работает UI в Android. Не все так сложно
• Chrome на Android сломал чужие MitM-сертификаты, но это можно исправить
• Toying with Kotlin's context receivers
• Deep dive into Android ANR | OkCredit
• Take Part in the New UI Preview for Your JetBrains IDE
• A cleaner way to interact between Composable and ViewModel in Jetpack Compose
• Speeding up Kotlin Multiplatform
• Jetpack Compose Clean Architecture with Rorty App
• 5 Awesome Jetpack Compose Custom Progress Indicator Designs
• Detect Swipe Direction on Jetpack Compose to trigger BottomSheetScaffold
• Spot your UI jank using CPU profiler in Android Studio
• Как рефакторинг помогает улучшить производительность разработчиков и повысить качество приложений
• Using MotionLayout in Compose
• SOLID – это не правила, а гайдлайны
• Measure and improve performance with Macrobenchmark
• The Suspend & Inline Mystery | Kotlin Tips 2022 - YouTube
• Full Guide to Testing Android Applications in 2022
• Compose Navigation in 3 Minutes
• Jetpack Compose under the hood: Touch Events

Читать далее

Flutter & games: пробуем Bonfire в роли игрового движка

Время на прочтение11 мин
Количество просмотров7.4K

Всем привет! Продолжаю делиться своими раскопками в области использования Dart и Flutter не совсем по назначению. Хотя, учитывая недавний выход в релиз тулкита от Flutter для разработки казуальных игр (https://flutter.dev/games), можно сказать, что статья как раз тематическая. Ну, решайте сами. Кому интересно, что может выйти, если попробовать сделать на Flutter игру серьёзнее "крестики-нолики" и взять в качестве основы фреймворк Bonfire - приглашаю под кат.

Читать далее

Dart 2.17: Продуктивность и интеграция

Время на прочтение8 мин
Количество просмотров4.9K

Языковые фичи. Инструменты, повышающие продуктивность. Более глубокая и масштабная интеграция с платформами. Представляем перевод статьи о свежей версии Dart с комментариями Евгения Сатурова, Head of Flutter в Surf.

Читать далее

Как подружить Elementary и BLoC

Время на прочтение6 мин
Количество просмотров4.5K

У каждого инструмента свои границы применимости, сильные и слабые стороны. Использовать решение в подходящей ситуации, а также комбинировать различные решения — хороший способ достичь эффективной разработки. Например, наша команда Surf удачно использует Elementary в связке с BLoC или Redux для управления бизнес-состоянием. 

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

Читать далее

11 вещей, о которых вы должны помнить перед стартом нового проекта на Flutter

Время на прочтение7 мин
Количество просмотров9.7K


Привет! Меня зовут Дарья, я Flutter-разработчик уровня Junior и это моя первая публикация на Хабре.


Знаете, создавать новый проект всегда приятно — новая кодовая база, отсутствие legacy (пока что), null-safety, свежие версии ваших любимых пакетов и далее, далее, далее.


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


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

Читать дальше →

Выразительные Unit тесты в Dart/Flutter

Время на прочтение7 мин
Количество просмотров6.5K

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

? Доступна также видео версия данной статьи.

Читать далее

Тестирование Flutter-приложений: гайд по разработке тестов на Flutter

Время на прочтение12 мин
Количество просмотров18K

Привет! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. В статье я расскажу про тестирование Flutter-проектов. Это гайд для новичков. Для понимания рекомендую полностью повторить процесс написания кода, который здесь демонстрируется. Готов ответить на любые вопросы по теме.

Читать далее