Как стать автором
Обновить
11.03
Рейтинг

Flutter *

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

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

Flutter: Создание расширения для Chrome

Google Chrome Dart *Криптовалюты Flutter *
Перевод

Как создать расширение для браузера? Создание расширения для Google Chrome.

Сложность: Опытный

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

Расширение будет достаточно простым, будет лишь функционал проверки состояния Биткойна. Вам не понадобится дополнительная установка каких-либо плагинов. Мы напишем его с помощью встроенных средств web.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 1.8K
Комментарии 6

Новости

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

Блог компании Surf Программирование *Разработка мобильных приложений *Dart *Flutter *

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

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 1.8K
Комментарии 4

Flutter: Почему использует язык Dart

Разработка веб-сайтов *Разработка мобильных приложений *Dart *Разработка под Windows *Flutter *
Перевод

Почему Flutter использует язык Dart? Основные преимущества языка Dart.

Сложность: Новичок.

Многие лингвисты считают, что естественный язык, на котором говорит человек, влияет на то, как он думает. Применяется ли та же концепция к компьютерным языкам? Программисты, работающие с разными языками программирования, часто предлагают совершенно разные решения проблем. В качестве более радикального примера, ученые-компьютерщики убрали оператор goto, чтобы поощрять более структурированные программы (не совсем тоже самое, что тоталитарные лидеры в романе "1984", удаляющие еретические слова из естественного языка, чтобы устранить мыслепреступления, но вы поняли идею).

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

Dart — главная причина, по которой разработчики любят Flutter.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 3.6K
Комментарии 4

Flutter: Что нового в версии 2.10

Разработка веб-сайтов *Разработка мобильных приложений *Dart *Разработка под Windows *Flutter *
Перевод

Что нового в версии 2.10? Основные нововведения.

Сложность: Новичок.

Релиз Flutter версии 2.10 состоялся 03.02.2022 и в рамках этого релиза было объявлено о нескольких интересных вещах, включая большое обновление поддержки Flutter для Windows, несколько значительных улучшений производительности, новую поддержку значков и цветов в фреймворке, а также некоторые улучшения инструментов. Кроме того, было произведено удаление канала разработки, сокращение поддержки старых версий iOS и небольшое количество критических изменений о которых вы узнаете в статье. Приступим!

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 2.4K
Комментарии 0

Сохраняем код чистым в приложении на Flutter

Блог компании OTUS Разработка мобильных приложений *Dart *Flutter *

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

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 2.1K
Комментарии 1

Flutter: обзор алгоритмов хэширования на основе плагина crypto

Информационная безопасность *Криптография *Разработка мобильных приложений *Dart *Flutter *

Что такое и с какой целью необходимо использовать хэширование? Все виды хэширования.

Сложность: Новичок.

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

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 1.3K
Комментарии 2

Flutter. MVVM. Начало

Блог компании Digital Design Разработка мобильных приложений *Dart *Flutter *
Tutorial

Доброго времени суток, дорогие читатели! Меня зовут Сурен, и я разработчик.

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

Написано немало статей про MVVM, его реализацию на различных технологиях и на Flutter, в частности. Но мне они давались с трудом, и не было понимания, как оно в итоге работает. Возможно, сказывается особенность восприятия “Бекендера” =) Поэтому, если среди читателей есть люди с похожим складом ума, возможно эта статья поможет и Вам понять, что такое MVVM и как его реализовать на Flutter простым способом. 

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 2.1K
Комментарии 8

Flutter: Все способы защиты данных

Разработка мобильных приложений *Dart *Хранение данных *Хранилища данных *Flutter *
Из песочницы

Как обезопасить приложение на Flutter? Все способы обеспечения безопасности данных.

Сложность: Новичок

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

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 5.4K
Комментарии 5

Flutter for Desktop — новый подход к разработке приложений

Блог компании OTUS Dart *Разработка под Linux *Flutter *

Язык программирования Dart был изначально разработан как перспективная замена JavaScript в веб-приложениях (с поддержкой асинхронности, потоков, классической поддержки ООП и возможностью использования строгой типизации), но, к сожалению, в этом качестве он так и не достиг значительных успехов. Однако в дальнейшем компилятор Dart был доработан для других целевых платформ и наибольшего успеха достиг в сочетании с фреймворком Flutter как инструмент разработки высокопроизводительных мобильных приложений, создаваемых на основе реактивной модели. Но нужно отметить, что наряду с возможностями компиляции в целевые платформы Android и iOS (а также, разумеется, Web), Dart также может использоваться для создания приложений для операционных систем Windows, Linux и MacOS, что в сочетании с возможностями фреймворка Flutter и оптимизированных платформенных реализаций Flutter Engine и Embedder, представило новый путь к созданию нативных приложений с графическим интерфейсом. В этой статье мы рассмотрим возможности и особенности реализации desktop-приложений на Flutter и разберемся с механизмами интеграции внешних библиотек.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 15K
Комментарии 18

Sliver во Flutter, или как работает скролл

Блог компании Surf Программирование *Разработка мобильных приложений *Dart *Flutter *

Если вы уже встречались со сливерами, то наверняка оценили всю «прелесть» работы с ними. На самом деле они совсем не так трудны и ужасны.

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

Читать далее
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 3.2K
Комментарии 3

Актуализация данных в списках Flutter-приложения

Программирование *Разработка мобильных приложений *Dart *Flutter *
✏️ Технотекст 2021
Tutorial

Иногда в приложении необходимо отобразить список c данными. Если это простой статический список, он редко вызывает сложности. Однако создание списков, содержимое которых должно меняться, часто приводит к ошибкам, сложным для выявления и отладки.

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2.2K
Комментарии 0

Flutter: Совмещаем GraphQL с JsonSerializable

Dart *Flutter *
Recovery mode

Всем привет, читатели Habr! В этой статье я расскажу как я познакомился с GraphQL, что это такое и как мне удалось совместить его с JsonSerializable.

Шел 7 месяц работы в моей первой компании. В целом, работой я был доволен, однако платили мало. Повышение должно было быть только через 2 месяца, поэтому я решил перестраховаться и получить офер, на тот случай, если меня не устроит новая ЗП. Начал отправлять резюме и одна из компаний попросила сделать тестовое, где нужно было получить информацию о миссиях SpaceX с использованием GraphQL. С этим аналогом REST API я был не знаком и моим первым шагом стало ознакомление с технологией, а потом уже выбор пакета и реализация задания.

Что же такое GraphQL?

Как я написал выше, это аналог REST API. GraphQL был разработан в Facebook (теперь уже Meta). Он чем-то напоминает SQL, а именно тем, что у него есть свой синтаксис для составления запросов. Используется в основном для загрузки данных с сервера.

Из его основных характеристик можно выделить следующие:

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 1.5K
Комментарии 0

Flutter: Ускоряем работу с помощью VS Code Tasks

Dart *Flutter *

Всем привет, читатели Habr! В этой статье я расскажу как ускорить работу и облегчить нам жизнь с помощью VS Code Tasks. Погнали!

Мы пишем не только код

Это правда, разработчики пишут  не только код. Иногда нам приходиться писать команды, чтобы выполнить определенные действия. Например, я уверен, что большинство из вас писали команду для сборки apk файла или для получения зависимостей (flutter pub get). Либо если у вас есть генерация кода, то вы выполняли команду для запуска генерации.

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

Читать далее
Всего голосов 16: ↑5 и ↓11 -6
Просмотры 2.8K
Комментарии 16

Автоматизированное тестирование на Flutter: нативные тесты или кроссплатформенные решения

Блог компании Surf Разработка мобильных приложений *Тестирование мобильных приложений *Flutter *

Стабильный пакет для работы с E2E и Widget-тестами был включен во Flutter-фреймворк не так давно — в начале декабря 2020 года. Разбираемся в нюансах автотестирования мобильных приложений в рамках Flutter-фреймворка: плюсы, минусы, костыли.

Читать далее
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 2.1K
Комментарии 1

Flutter: Мощь DI и Injectable

Dart *Flutter *

Всем привет, читатели Habr! В этой статье я расскажу про DI (Dependency Injection) и также покажу, как я использую его на практике. Погнали!

Сначала простыми словами про DI

Недавно я скачал приложение, которое показывает сколько времени я провожу в своем смартфоне и мою зависимость от него. Что ж, в некоторые дни я проводил больше 5 часов и мне показало сильную зависимость. У меня Xiaomi Redmi Note 8.

На первый взгляд может показаться, что я завишу конкретно от моего Xiaomi. Однако это не так. Был бы у меня любой другой смартфон, результаты бы не изменились. В итоге получается, что я имею зависимость от абстракции - смартфон, а мой текущий - его конкретная реализация. Настало время переходить к практике!

Теперь к практике

Представим себе такую ситуацию, что каждую первую неделю вы должны показывать заказчику UI с моканными данными, а уже в конце спринта полностью готовую логику. Я надеюсь вы знакомы с паттерном Repository, который отвечает за получение данных, если нет - рекомендую ознакомиться. Самый простой способ решение проблемы - написать в репозитории методы, которые отдают моканные данные, а потом добавить методы для получения реальных данных (или заменить). Однако, поступая таким образом, мы нарушаем один из принципов SOLID, а именно Single Responsibility. Как быть в таком случае? Создать абстрактный класс нашего репозитория и после этого сделать 2 реализации, одна из которых отвечает за моканные данные, а другая - за реальные. И в Bloc или в любой другой класс, который отвечает за State Managment, вы инжектите абстракцию, тем самым давая возможность заменить репозиторий с моками на репозиторий для реальных данных.

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 2.5K
Комментарии 9

Flutter: простыми словами про ассинхронность и параллельность

Dart *Flutter *
Из песочницы

Всем привет, читатели Хабра! В этой статье я хочу простыми словами рассказать про асинхронность и параллельность в Dart/Flutter. Многие новички сталкиваются с непонимаем того, что это и когда что использовать. Я сам столкнулся с этой проблемой в начале своего карьерного пути и хочу простыми словами рассказать, что это такое и когда нужно.

В начале я хочу представиться) Меня зовут Владимир Калашников, я заканчиваю последний курс кафедры искусственного интеллекта и уже больше года профессионально занимаюсь разработкой приложений на Flutter. Несмотря на свой небольшой опыт, я уже успел поработать на проекте от компании, у которой оборот денежных средства более 60 мрлд$ за 2017 год. Я думаю, мне есть, что рассказать :)

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

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 4.9K
Комментарии 6

Как написать «Пятнашки» на Flutter

Блог компании SkillFactory Разработка веб-сайтов *Разработка игр *Логические игры Flutter *
Перевод
Tutorial

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

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Просмотры 3.3K
Комментарии 5

Эпоха красивого кода прошла. Пришло время быдлокода

PHP *Программирование *Разработка под Android *ReactJS *Flutter *
Из песочницы

Эпоха красивого кода прошла. Пришло время быдлокода    

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

Перезапустил IDE, и вуаля:

"Missing essential plugins... Please reinstall from scratch."

Читать далее
Всего голосов 188: ↑132 и ↓56 +76
Просмотры 110K
Комментарии 430

Dart, Flutter и кроссплатформа: небольшой разбор на практике

Разработка мобильных приложений *Интерфейсы *Dart *Разработка под Windows *Flutter *

Кто-нибудь пробовал использовать Dart / Flutter как на клиенте на нескольких платформах, так и в качестве сервера? Кто-то, конечно. пробовал, хотя далеко не каждый за этим приходил к Flutter. Я на своём pet-проекте провёл такой эксперимент, и хотел бы поделиться результатами и выводами.

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Просмотры 11K
Комментарии 21

Элементарное тестирование, или тестирование Elementary

Блог компании Surf Программирование *Dart *Тестирование мобильных приложений *Flutter *
Tutorial

Elementary — архитектурный пакет для разработки приложений на Flutter: помогает чётко разделить слои согласно ответственностям и сделать код прозрачнее.

В предыдущих статьях рассказали, как устроен Elementary, чем он полезен, и на примере реального приложения посмотрели, как его использовать. Сегодня разберём, что у Elementary-приложений с тестированием и почему их код тестировать проще.

Читать далее
Всего голосов 8: ↑5 и ↓3 +2
Просмотры 2.6K
Комментарии 3