Обновить
20.13

Flutter *

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

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

Навигация в приложениях Flutter: разбираем Navigator, Router и лучшие библиотеки

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

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

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

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

Читать далее

Ключи во Flutter

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

Во Flutter очень много виджетов и в каждом есть свойство key — ключ.  Используется оно не так часто и, на первый взгляд, может показаться несущественным. Но если использовать его неправильно, настанет хаос, разведутся баги, а приложение начнет вести себя неподобающе. Приставать к людям, наверное, не станет, но явно усложнит жизнь. 

У ключей во Flutter есть несколько разновидностей. Выбрать правильный тип ключа для конкретной ситуации — сложная задача даже для опытных разработчиков. Так что идём смотреть, как правильно использовать ключи и избежать потенциальных проблем в работе приложения.

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

Особенности const в Dart и Flutter

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

Умные книжки, умные люди и умный линтер советуют использовать const-константы. Но, почему так важно использовать это магическое слово, и когда его важно не использовать?

В этой статье раскроем особенности работы const-констант и ответим на эти вопросы.

Читать далее

Тестирование веб-приложений Flutter с помощью Selenium

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

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

Мы рассмотрим метод, который поможет преодолеть разрыв между уникальным процессом рендеринга Flutter и мощными возможностями тестирования Selenium.

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

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

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

3-е издание «Основы Dart», анонс печатной версии и новой книги — «Основы Flutter»

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

Всем привет!

Прошло не так много времени с выхода второго издания «Основы Dart» и т.к. этот язык программирования не стоит на месте, привел книгу к актуальному состоянию, добавив в нее раздел по Extension Types. Несмотря на то, что материал был у меня еще до выхода Dart 3.3 (да здравствует копание в dev-ветке), 3-е издание «Основы Dart» анонсируется на хабре сегодня и тому имеется ряд причин....
В этой статье хотел бы затронуть несколько важных моментов дальнейшего развития книги, рассказать о подготовке печатной версии, чем она будет отличаться от текущей, а также поделиться планами на книжку "Основы Flutter".

Читать далее

Создавайте виджеты главного экрана iOS с помощью Flutter

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

Hola, Amigos! Меня зовут Сергей Климович, я Mobile TeamLead агентства заказной разработки Amiga и соавтор телеграм-канала Flutter. Много. На канале мы уже рассказывали про Home Widget для Android, теперь пришло время поговорить про iOS. Я нашел отличную статью по этой теме и решил поделиться с вами переводом. 

Читать далее

Android и iOS, Flutter и Kotlin: что обо всём этом расскажут на Mobius

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

До конференции Mobius остался месяц, мы представляем Хабру её программу. И её вечно непросто поделить на блоки.

Понятно, что доклады «про iOS» и «про Android» интересны разным разработчикам, поэтому хабрапост хочется разделить пополам. Но как правильнее поступить с докладами по Flutter? А про Kotlin, когда есть KMP? А с теми, которые не привязаны к платформе?

В общем, не уделяйте слишком много внимания тому, как всё разделено на части — лучше смотрите, о чём будут сами доклады.

Программа Mobius 2024 Spring

Рекуррентные платежи, или как мы доработали функционал платных подписок во Flutter приложении

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

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

Читать далее

Разбираем генеративный SDK от Google — google_generative_ai. Часть 1

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

Привет, Хабр! Меня зовут Юрий Петров, я автор ютуб-канала «Мобильный разработчик» и Flutter Tech Lead в компании Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. 

В версии Flutter 3.19 появился SDK для работы с генеративным ИИ. В этой статье разбираемся с возможностями google_generative_ai на примере простого Flutter-проекта.

Читать далее

Где заканчивается Flutter и начинается платформа?

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

Сердце фреймворка Flutter (который для разработчиков часто представляется только в виде набора классов на языке Dart) написано на языке С и компилируется в двоичный артефакт, известный как Flutter Engine, подключаемый к приложению и используемый из Dart-классов через механизм нативного связывания (аннотации @pragma('vm:entry-point') для вызовов из Flutter Engine в Dart, @Native и external для обращения к C++ коду во Flutter Engine из Dart).

Но в действительности Flutter Engine не имеет никакого платформо-специфического кода (при этом собран под целевую аппаратную архитектуру) и не знает, как работает платформенный event loop, как создавать потоки, на какой поверхности выполнять отрисовку сцены и не может получать информацию о действиях пользователя (касание экрана, перемещение указателя мыши, нажатие клавиш) и системных событиях. Такое архитектурное решение было сделано для того, чтобы иметь возможность запускать Flutter-приложения потенциально на любом устройстве с экраном (даже светодиодной панелью). В этой статье мы поговорим про Flutter Embedder, его роль в запуске приложения и привязке к системным event loop, а также рассмотрим сборку простого embedder для публикации Flutter приложения как VNC-сервера.

Читать далее

Опыт внедрения компонентной разработки

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

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

Читать далее

Реализация pin code во Flutter приложении

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

Hola, Amigos! С вами Владимир Зевеке, Flutter dev агентства продуктовой разработки Amiga и соавтор телеграм-канала Flutter. Много. Сегодня расскажу про пакет pin_code_fields и его применение на практике. 

Пакет полезен для авторизации в приложении по номеру телефона. Покажу реализацию на примере проекта, над которым работаю сейчас. Проект находится под NDA, поэтому могу сказать, что это сфера здоровья. Но авторизация в приложении по одноразовому коду много где встречается, например, банки, e-com, услуги доставки и так далее. 

Читать далее

Flutter: история успеха

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

Кроссплатформенный фреймворк Flutter появился в 2017 году. С тех пор он стал одним из самых популярных инструментов для разработки мобильных приложений. Мы в Friflex работаем с Flutter с первого релиза, следим за его развитием и каждый год проводим большую конференцию о кроссплатформенной разработке — CrossConf. В этой статье вспоминаем историю фреймворка. А еще делимся, как с ним познакомились наши разработчики.

Читать далее

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

Как исправить ITMS-91053: Missing API declaration

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

Если вы разработчик iOS (или Flutter, как я) приложений, вероятно, вы уже сталкивались с предупреждением от Apple: ITMS-91053: Missing API Declaration. 

Читать далее

Как определить, что мобильное приложение написано на Flutter

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

Привет, Flutter-энтузиасты! Сегодня мы поговорим о том, как можно определить, что мобильное приложение написано на Flutter. Это знание может быть полезным для разработчиков и менеджеров в иссоедовании конкурентов, а также для любителей технологий, которые просто хотят узнать больше о том, что находится под капотом их любимых приложений. Итак, без лишних предисловий, давайте приступим.

Читать далее

Эффективный Dart: Руководство по документации

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про руководство по документации в Dart!

Легко думать, что ваш код очевиден в данный момент, не осознавая, насколько сильно вы полагаетесь на контекст, уже существующий в вашей голове. У людей, незнакомых с вашим кодом, и даже у вашего забывчивого будущего "я" не будет этого контекста. Написание краткого, точного комментария занимает всего несколько секунд, но может сэкономить кому-то из этих людей часы времени.

Читать далее

Распознавание виджетов на экране приложения Flutter

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

Hola, Amigos! На связи Саша Чаплыгин, Flutter-dev агентства продуктовой разработки Amiga и соавтор телеграм-канала Flutter. Много. Сегодня мы вновь займемся практикой! Расскажу об интересной теме — определение положения объекта на экране. Это может быть полезно, когда мы хотим понять, виден тот или иной виджет на экране в данный момент или нет.

Читать далее

Эффективный Dart: Руководство по стилю

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про руководство по стилю в Dart!

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

Читать далее

Эффективный Dart

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

Привет, если вы на пути изучения Flutter/Dart или вам просто интересно почитать про путь изучения, подписывайтесь на мой канал в telegram, буду рад вас видеть! А сегодня поговорим про руководство по эффективному Dart-у!

За последние несколько лет мы написали тонну кода для Dart и многое узнали о том, что работает хорошо, а что нет. Мы делимся этим с вами, чтобы вы тоже могли писать согласованный, надежный и быстрый код. Есть две общие темы:

Быть последовательным и кратким!

Читать далее

Dart 3.1 и ретроспектива программирования в функциональном стиле в Dart 3

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

Сопоставление шаблонов (pattern matching) и исчерпывающие переключатели (exhaustive switches) объединяются для создания функциональных моделей данных, которые легко сочетаются с объектно-ориентированным ядром Dart. ?

Читать далее