
Почему Flutter должен быть выбран в качестве фреймворка для вашего следующего проекта?
Разбираем популярные высказывания о несостоятельности Flutter как технологии и доказываем обратное.
Фреймворк для кросс-платформенной разработки
Почему Flutter должен быть выбран в качестве фреймворка для вашего следующего проекта?
Разбираем популярные высказывания о несостоятельности Flutter как технологии и доказываем обратное.
Я Магин Максим, Flutter-разработчик агентства мобильной разработки Instadev. Поговорим о таком понятии как “адаптивная верстка”. Разберем, для чего она нужна, чем отличается от других видов верстки и какие подводные камни могут встретиться при использовании.
Каждый разработчик так или иначе сталкивался с вопросом - как сделать качественный UI, который будет хорошо себя показывать на различных устройствах. Даже среди смартфонов существует большое разнообразие размеров – одни шире, другие – длиннее. Понятное дело, что для каждого устройства уникальный код не напишешь. А что делать, если среди устройств необходимо учесть еще и планшеты, где действуют уже другие правила расположения и масштабирования элементов? Есть ли универсальное решение? Но обо всем по порядку.
Для того, чтобы понять, каким образом следует выстроить процесс формирования UI приложения, для начала необходимо разобраться, какие подходы используются в принципе.
Существует 4 основных подхода к верстке: фиксированный, резиновый, адаптивный и отзывчивый. Каждый из этих подходов имеет свои плюсы и минусы. Разберем их чуть подробнее.
Фиксированный подход
Его суть заключается в том, чтобы задать жесткие размеры и расстояния для всех элементов, отображаемых на экране. Иными словами мы “фиксируем” положение каждого виджета на экране. Преимущество очевидно – мы всегда знаем величину того или иного используемого элемента. С другой стороны, если мы возьмем устройство, которое хоть немного отличается размером от того, на котором мы производим тесты, все наши расчеты оказываются неподходящими для него: в лучшем случае, может появиться больше пустого пространства или, наоборот, элементы сильно прижмутся друг к другу, в худшем – мы получим ошибку рендеринга. Это говорит нам о том, что в чистом виде данный подход лучше не использовать.
Привет, Хабр! Меня зовут Юрий Петров, я Flutter Team Lead в Friflex. Это продолжение моей статьи про библиотеку auto_route. В этой статье, я попробую пояснить, что такое охранники(guards), обертки (wrappers) и с чем вам придется столкнуться в легаси проектах при миграции на auto_routе_7.
Привет! Меня зовут Олег Скирюк, я лидирую контент-разработку в одной из команд билайна. Сам я перешёл в мобильную разработку из веба три года назад, после чего собрал и обучил одну из первых Flutter-команд в компании. Вместе с этой командой мы постоянно экспериментируем и пробуем различные решения, чтобы совершенствовать наши приложения.
В этом посте я хочу рассказать про архитектуру Flutter-приложений, о том, как мы в билайне это делаем, чего мы достигли и как это у нас работает. Поговорим о создании архитектуры, организации управления состояниями и зависимостями, о привычных и не очень методах и концепциях, затронем Mobx, GetX и Flutter modular, а также разберём всё это на живом примере — на нашем мобильном приложении для дилеров.
Мы обсудим его особенности, технические сложности, и посмотрим, как реализовать такое крупное приложение. Затем — углубимся в вопрос управления состоянием, зависимостями, приложением.
Hola, Amigos! На связи Саша Чаплыгин, Flutter-dev агентства продуктовой разработки Amiga. Это статья-перевод от автора Kevin Chisholm. Оригинал статьи читайте по этой ссылке. Первую часть статьи можно прочитать по ссылке.
Hola, Amigos! На связи Саша Чаплыгин, Flutter-dev агентства продуктовой разработки Amiga.
Это статья-перевод от автора Kevin Chisholm. Оригинал статьи читайте по этой ссылке. Мы решили разбить материал на несколько частей для удобства восприятия.
Меня зовут Вася, это моя первая статья тут, поэтому не удивляйтесь куче всяких кривых цитат и спойлеров, я учусь в 11 классе, с августа 2020 года работаю с Flutter, а с марта прошлого года занимаюсь коммерческой разработкой мобильных приложений на фрилансе. Сегодня хочу рассказать о том, как я совмещаю подработку с учебой в школе и какие у этого есть последствия
SRP оказался самым сложным принципом из всех SOLID принципов в понимании и как в следствии неправильное применение в кодировании. Множество разработчиков уровня junior / middle, которых я собеседовал на позицию Flutter разработчика давали ответ, что SRP - это принцип единой отвественности. Это конечно правильный ответ согласно книги Роберта Мартина "Чистая архитектура". Но мне хотелось услышать как понимает этот принцип наш кандидат в разработчики. Ведь от этого зависит расширяемость и простота читаемости нашего проекта, ведь мы расширяем команду и хотелось бы чтоб мы писали код в единой концепции. В большинстве случаев разработчики понимают этот принцип, как класс, который он создал должен содержать только один метод. И всё что мы написали в этом методе, несёт единственную ответственность, ведь он решает одну задачу. И на этом кандидат заканчивает свою мысль. Ну что же, неплохо, но и не совсем правильно. Да, такой принцип тоже есть, но он применяется на низшем уровне системы. Действительно для удобства чтения не надо всё сваливать в один метод. Практичнее будет если мы каждому методу разрешим делать что то одно и название этого метода будет понятно другому разработчику, что делает этот метод. SRP же применяется на среднем уровне программы. В общем, я делаю вывод что кандидат не читал книгу "Чистая архитектура", либо это делал очень невнимательно...
SRP это про другое! Сам Роберт Мартин столкнулся с такой же проблемой, неправильное понимание того, что он имел ввиду под SRP и попробовал её решить, написав другое определение и разъяснение к нему. Давайте почитаем!
Привет! Самое время в предновогоднее настоящее поделиться с вами опенсУрс проектом :) Встречайте -> Cardoteka <- строгая типизированная обёртка над Shared Preferences (SP) в мире Flutter. Этот материал будет коротким, с рекламными нотками (а точнее, приглашающий к дискуссии в issues и в комментарии) и readme-подтекстом. Так или иначе, это заслуженная метка "Обзор".
Привет, Хабр. Меня зовут Алексей, я разрабатываю мобильные приложения на Flutter в Пиробайте. Помимо этого увлекаюсь моушн-дизайном. В прошлый раз рассказывал о том, почему Flutter Web (не) мертв. Сегодня предлагаю продолжить наш тру-крайм в мире разработки и снова узнать кто кого убил, за что убил и убил ли вообще. Наш сегодняшний герой — инструмент для создания анимации Rive.
Если в предыдущей статье главная жертва была в общем-то беззащитна и легко пала под натиском убийцы, то в этот раз все гораздо сложнее и запутаннее: противостояние этих двух платформ — Lottie и Rive — можно назвать напряженным психологическим триллером о политике. И я сейчас объясню почему.
Lottie — крайне полезный инструмент для создания анимации, однако далеко не идеальный. А когда у основного игрока начинают появляться проблемы, появляются те, кто с удовольствием начинают на него давить. Медленно, но верно подтачивая ноги глиняного колосса.
Мы в Surf очень любим мобильные приложения и считаем, что за ними будущее. Сегодня Сергей Лазарев, наш инженер по автоматизированному тестированию, расскажет о важной, востребованной бизнесом функциональности приложения, и о том, как мы можем обеспечить уверенность в её качестве с помощью автотестов.
Зачастую мобильные разработчики сталкиваются с проблемой невозможности быстрого delivery какой-то функции до пользователя. Для обхода этого ограничения мобильных платформ существуют самые разные инструменты и подходы: DivKit, СodePush и другие. И сегодня я хочу осветить новый Server-driven UI фреймворк для Flutter, который в некоторой степени может разрешить эту боль.
Как аутсортсинговой компании к веб разработке добавить мобильную разработку.
За этот год мы силами одной команды разработчиков создали с нуля и зарелизили 6 приложений для Android и iOS. В этой статье я расскажу, как выстроить процесс, чтобы быстро создавать качественные продукты, как кроссплатформенная разработка на Flutter помогает экономить время и деньги, а также, сколько стоит разработка приложения для бизнеса и из чего складывается цена.
Привет! Меня зовут Айдар Мавлетбаев, я Flutter-разработчик в AGIMA. Современное приложение почти невозможно представить без анимации. И один из ее типов — Transition Animation, или анимация переходов. Ее используют, чтобы переход с одной страницы на другую был плавным и красивым. В этой статье разберем две библиотеки от Flutter: go_router и animation.
Всем привет! Это Мурат Насиров, Flutter-разработчик в Friflex. Мы разрабатываем высоконагруженные мобильные приложения для бизнеса и специализируемся на Flutter. В этой статье я рассказываю о том, как создать federated plugin для Flutter-проектов.
В мае 2022 года на Google I/O был представлен урок по созданию federated plugin в Flutter. Federated plugin — это способ разделения функционала в рамках одного плагина на разные платформы. Он позволяет сегрегировать функционал на зоны ответственности для каждой из платформ.
К примеру, если мы создаем плагин для работы с bluetooth, тогда нужно будет создавать пакеты отдельно для каждой платформы, то есть: flutter_bluetooth
(как пакет flutter), flutter_bluetooth_android, flutter_bluetooth_ios
и flutter_bluetooth_platform_interface
(интерфейс для работы с платформами).
Создавая federated plugins для всех платформ, разработчики могут использовать только те из них, которые необходимы.
Оптимизация больших карт и столкновений во Flame. Для тех, кто хочет сделать бесшовный огромный мир и не думать о плохих последствиях.
Привет, Хабр! Мы в компании Friflex запустили подкаст «Гости из IT». Вместе с ведущим Антоном Комоловым и экспертами из разных областей IT мы разбираемся в технологиях, и как они меняют нашу жизнь и работу.
Сегодня делимся размышлениями Юрия Петрова, автора YouTube-канала «Мобильный разработчик» и Flutter Team Lead в Friflex, и Ильи Вирника, руководителя сектора разработки продукта «Такси» в Яндекс Про.
Обсуждаем, чем Flutter хорош для крупного и малого бизнеса, почему это перспективное направление для построения карьеры в IT и в чем особенность языка Dart, на котором пишутся Flutter-приложения.
У нас тут хоть и неофициальный, но очень способный наследничек объявился — Jaspr!
Привет, меня зовут Алексей. В Пиробайте я разрабатываю мобильные приложения на Flutter. Расскажу, почему у этого фреймворка на стороне разработки сайтов не все так плохо. Спойлер — потому что Jaspr перехватывает всю инициативу на себя.
Привет! Я Александр Омельяненко, Flutter-разработчик в AGIMA. Недавно мне понадобилось быстро настроить CI/CD на Flutter-проекте. Те несколько руководств, что я нашел в интернете по этой теме, были либо с нерабочими примерами, либо запутанные и просто плохого качества. Но всё же какое-то представление я получил. Плюс задал вопросы коллегам. Набивая шишки по пути, я-таки настроил CI/CD на своем проекте. Но мне тогда очень пригодилась бы четкая инструкция. Поэтому я решил написать ее сам по горячим следам. Сегодня делюсь ею с вами и надеюсь, эта инструкция облегчит жизнь тем, кто настраивает CI/CD на Flutter-проекте прямо сейчас.
У Google есть программа для экспертов в их технологиях. Чтобы попасть в неё, нужно выступать, писать, обучать, менторить или делать open-source в технологиях Google. Программа называется “Google Developer Experts”, и это самое привилегированное сообщество разработчиков, о котором я знаю.