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

Dart *

Язык программирования, созданный Google

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

RxVMS — практичная архитектура для Flutter-приложений

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

Это первый пост из серии публикаций, в которых объясняется мое понимание архитектуры приложений для Flutter. Предупреждаю — это будет весьма самоуверенным.


Пока запланированы:



Предисловие


Я в программировании уже около 20 лет. Начал мобильную разработку 4 года назад с Xamarin.Forms, ибо кроссплатформенность была единственной побудительной причиной для меня в качестве инди-разработчика. Xamarin.Forms буквально толкают тебя к использованию паттерна MVVM, так как определение UI ведется в XAML, и тебе необходим какой-то слой, чтобы склеивать UI с Моделью. В процессе работы с Xamarin я познакомился с ReactiveUI и был буквально покорен потоками и реактивными расширениями (Rx), сделавшими мои приложения более надежными.


В то время, как в Xamarin.Forms MVVM были "из-коробки", при переходе к Flutter я был удивлен, что в нем не было никаких похожих шаблонов проектирования. Я начал исследовать различные предлагаемые подходы, но ничего из имеющегося не удовлетворило меня в полной мере:

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

Чем плох JavaScript в большом проекте? С какими проблемами мы столкнулись и как их решали

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


Почему определенные недостатки языка JavaScript в реалиях разработки такого большого проекта, как наш, оказываются критическими? Как решить проблемы JS, когда количество кода превышает 2 млн строк, а команда насчитывает более 20 человек и постоянно растет? Об этом — в докладе фронтенд тимлида Wrike в рамках митапа, проведенного в нашем офисе совместно с сообществом Piter JS.

Смотреть

Другой ответ на вопрос «Нужен ли мне Dart?»

Время на прочтение3 мин
Количество просмотров18K
Если вы хотите создавать клиент-серверные веб-приложения, веб-сайты, скрипты, миниигры и вы еще не адепт JS, то ответ однозначно «Да». Если вы флэш разработчик и хочется вновь делать что-то, что запустится в браузере, я бы сказал «Да». Если вы просто хотите научиться программировать и еще не знаете ни одного языка, то Dart будет хорошим и приятным стартом. Под катом я постараюсь развернуть каждое утверждение.
Читать дальше →

Простой websocket-чат на Dart

Время на прочтение9 мин
Количество просмотров15K
Здравствуйте!

В этой статье я хочу описать создание простого websocket-чата на Dart с целью показать, как работать с вебсокетами в Dart. Код приложения доступен на github, а пример его работы можно посмотреть здесь: http://simplechat.rudart.in.

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

Требования к приложению очень простые — отправка сообщений от пользователя всем или только выбранным участникам чата.
Читать дальше →

И ещё немного про то, что const в dart надо ставить где попало

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

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

Читать далее

Flutter + нативные iOS виджеты: любовь с первого Method Channel

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

Как создать нативные iOS виджеты для Flutter приложения: Widget Extension, Method Channel для обмена данными, Timeline Provider для обновлений и SwiftUI верстка.

Пошаговый гайд с примерами кода на русском языке. Рассматриваем настройку App Groups, работу с UserDefaults и стратегии обновления виджетов.

Без лишних библиотек, только нативные возможности iOS и стандартные механизмы Flutter.

Читать далее

От аналитики до релиза: как я пересобираю мобильную разработку с помощью Flutter и AI

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

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

Обзор рынка в СНГ сейчас дал какую-то однобокую картину: курьер может заработать больше, чем предлагают по вакансиям в разработке.
Кажется, что после COVID стало нормальным, когда у специалиста несколько работ.
Может, и работодатели уже смирились с этим? "Задачи закрываются и ладно".

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

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

Читать далее

Как сделать мобильное приложение в 2025 году за 2 недели

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

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

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

В этой статье разберём как создать своё мобильное приложение для уже имеющегося сайта без лишних морок!

Читать далее

Flutter 3.32 — Что нового во Flutter?

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

Добро пожаловать во Flutter 3.32! Этот релиз наполнен функциями, призванными ускорить вашу разработку и улучшить ваши приложения. Приготовьтесь к горячей перезагрузке (hot reload) для веба, потрясающим "сквирклам" (squircles) в стиле Cupertino для нативной точности и мощным новым интеграциям с искусственным интеллектом через Firebase. С 1024 коммитами от 156 уникальных участников, включая 39 новичков, Flutter 3.32 является свидетельством невероятной работы нашего сообщества. Давайте посмотрим, что нового!

Читать далее

Dart / Flutter — применяя zero / empty объекты ко всему

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

Больше техническая заметка, чем статья, поэтому постараюсь изложить мысли как можно кратче.

Приходя из JS/TS мира, когда я впервые написал на Dart, самой прекрасной вещью, помимо многих было использование функций isEmpty или isNotEmpty для String, List, Map, и так далее. Это было невероятно просто и прекрасно не писать каждый раз  .length == 0.

Также, очень полезным паттерном были empty/zero значения как Duration.zero, Offset.zero, и другие.

Спустя время, я нашел привычку использовать похожий принцип для работы с различными случаями, а также пришел к мысли - что если мы используем такие значения для большей части объектов, избавляясь от null (не для всех случаев, но тем не менее)? Немного поискав, нашел похожий паттерн в Go и других языках, и продолжил думать.

Читать далее

Flutter 3.27 — Что нового во Flutter?

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

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

Читать далее

Редко, но метко! Пять малоизвестных виджетов

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

Flutter предлагает множество виджетов. Одни используются почти в каждом проекте, другие остаются без внимания из-за специфичности или редких сценариев применения. В этой статье расскажем о пяти малоизвестных виджетах: PhysicalShape, Offstage, Flow, 
UnconstrainedBox, SizedOverflowBox.

Читать далее

Два новых линта в Dart 3.4

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

Новшества Dart 3.4 разобраны в официальном анонсе здесь. Но там не говорится про два новых правила линтера.

Разбираем правило missing_code_block_language_in_doc_comment для улучшения документации и правило unnecessary_library_name для чистки старого кода.

Читать далее

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

ООП в Dart

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

Йоу, юзер! Даннаястатья относится к циклу статей «База джуна на Flutter». Если ты не видел начальную ноду — ознакомиться можешь тут, а если уже видел — погнали дальше!

Okaaaay let's go!

Cтейт-менеджмент на Flutter. Введение в Bloc

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

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

Читать далее

Road to Flutter – анализ опыта миграции с React Native

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

Смена стека разработки. Иногда команды просто вынуждены пойти на подобный радикальный шаг для того, чтобы продолжать успешно решать поставленные задачи. И мы в BetBoom пошли на это и хотим рассказать об опыте своего перехода от React Native к Flutter, причинах миграции на новый стек и результатах, которых нам удалось достигнуть на этом тернистом пути.

Читать далее

Анонс Dart 3.4

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

Dart 3.4 вышел сегодня! Этот релиз демонстрирует совместные усилия Dart и Flutter в посте Flutter 3.22 / Dart 3.4 / IO24, так что обязательно ознакомьтесь с полной информацией там. В этом посте мы расскажем о поддержке WebAssembly, а затем подробно остановимся на одном из основных пунктов дорожной карты для языка Dart на этот год: макросы.

Автор: Michael Thomsen

Ура, анонс!

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

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

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

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

Читать далее

Cardoteka — техническая начинка и аналитика решений типобезопасной SP [кто любит вдаваться]

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

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

Узнать далее

Типы-расширения в Dart

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

Тип-расширение (extension type) – это абстракция, которая происходит на этапе компиляции и "оборачивает" существующий тип, предоставляя для него новый, сугубо статический интерфейс. Типы-расширения являются важным компонентом статической интеграции с JavaScript (static JS interop), поскольку они позволяют легко изменять интерфейс существующего типа (что критически важно для любого вида взаимодействия) без затрат на создание реального объекта-обёртки.

Типы-расширения позволяют строго определить набор операций (или интерфейс), доступных для объектов базового типа, который называется типом представления. При определении интерфейса для типа-расширения вы можете оставить некоторые методы типа представления, отбросить другие, заменить некоторые из них и добавить новую функциональность.

Читать далее