Рубрика «dart»

Титульная конференция крупнейшего гиганта рекламного бизнеса отгремела уже как неделю, а некоторые до сих пор пишут статьи. Так как всё, что можно было написать про программу и главные новинки, уже написано (привет phillennium), то что остаётся скромному посетителю? Только рассказать всё, что скрыто, обнажить тёмные уголки и понять, что вообще происходит в солнечной Калифорнии эти три дня в году.

Так получилось, что я был на предыдущей конференции и даже написал статью про это. Поэтому, с одной стороны, задача усложняется, ведь никто не хочет читать одно и то же два раза, а с другой, она усложняется ещё больше. Не хотелось бы превращать текст в отчёт в духе: «прирост посетителей: +20%, надои упали на 3%, настроение личного состава хорошее», поэтому давайте условимся: перед вами будет художественное описание личного опыта и немного объективной информации.

Внимание, это не детальный разбор программы, а своего рода виртуальный тур по конференции. Никто же не любит обманутых ожиданий, правда? Все доклады есть на YouTube

Главный секрет Google I-O 2019, о котором не узнать из интернета - 1

Читать полностью »

Я стою перед стендом Wrike на DevPRO'19 и смотрю, как проходит очередная сессия Code Battle.

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

И я уже собираюсь пуститься в пространное комментирование правил, потом плавно перейти к исторической справке, влиянию игры на психическое здоровье и на культурный код в целом, но в Code Battle выявился победитель, и паренёк слышит от меня только «надо заполнить строки и столбцы так, чтобы в них не было одинаковых картинок». Не лучшее объяснение, но сейчас у нас определился чемпион: один из участников одержал пять побед, решив небольшие задачки на JavaScript быстрее своих оппонентов, а, значит, настало время вручать приз.

image
Читать полностью »

Это четвертая часть моей серии про архитектуру Flutter:

Хотя 2 предыдущие части явно не относились к паттерну RxVMS, они были необходимы для ясного понимания этого подхода. Теперь мы обратимся к самом важным пакетам, которые понадобятся, чтобы использовать RxVMS в вашем приложении.

Читать полностью »

Сегодня (8 мая 2019) мы объявляем о релизе Dart 2.3 SDK с новыми языковыми конструкциями, которые улучшают ваш опыт разработки при создании пользовательских интерфейсов, новой поддержкой инструментов для разработки Flutter UI и двумя новыми веб-сайтами: dart.dev и pub.dev.
Анонсирован Dart 2.3: оптимизирован для разработки пользовательских интерфейсов - 1

Читать полностью »

В конце 2018 года Google, не без помощи Open-Source сообщества, сделал большой подарок для мобильных разработчиков, выпустив первую стабильную версию кросс-платформенного фреймворка для мобильной разработки Flutter.

Однако, при разработке крупных приложений, немного больших, чем одностраничные 'Hello World'ы, разработчики могли столкнуться с проблемой неопределенности. Как стоит писать приложение? Фреймворк достаточно молод, ещё не существует достаточной базы хороших примеров с открытым кодом, основываясь на которых можно было бы понять плюсы и минусы применения различных паттернов, понять что стоит использовать в данном конкрентном случае, а что — нет.

Спасает ситуацию то, что Flutter имеет определенную степень схожести с React и React Native, а значит можно перенять некоторый опыт программирования на последних. Возможно, именно из-за этого появились такие библиотеки, как Flutter Flux, Flutter Hooks, MobX, а также сразу несколько реализаций Redux. Долгое время самой популярной была версия Брайана Игана под названием Flutter Redux.

Тем не менее, пару месяцев назад первый коммит увидела библиотека Fish Redux, опубликованная под именем компании Alibaba. Библиотека за короткое время собрала большую популярность, уже на пером дне обогнав реализацию Брайана по колличеству звезд, а на втором опередив её в два раза.

Читать полностью »

В конце марта в Новосибирске отгремел юбилейный 10-ый CodeFest. Как и, наверное, любая конференция, CodeFestX оставил участникам кучу разных впечатлений от «ноги моей тут больше не будет» до «как купить пожизненную подписку?». То, как это было я описывать не буду, отзывы уже есть и, думаю, еще появятся. Хочу поделиться историей того, как мы запустили альтернативную версию для расписания Codefest (смотреть лучше с мобилки): от идеи до получившегося результата.

DIY: Как мы делали «живое» расписание для Codefest X - 1
Читать полностью »

We’re currently experimenting with Flutter while developing our side project for step challenges with colleagues. This side project should also be considered as a playground, where we can check if we can use Flutter in more serious projects. That’s why we want to use some approaches there that can look like an over-engineering for such a small project.

So one of the first questions was what can we use for dependency injection. A quick search in the internet revealed 2 libraries with positive reviews: get_it and kiwi. As get_it turned out to be a Service Locator (and I’m not a fan of this pattern), I was going to play with kiwi, which looked more promising, but then I’ve found another one library: inject.dart. It is heavily inspired by Dagger library, and as we use the latest one in our other Android projects, I’ve decided to dig into it.

Читать полностью »

Как нанимать людей в огромную компанию с непопулярным стеком. Разговор с Wrike - 1

Увидеть новый и пока мало кому известный язык программирования в маленьком стартапе или пет-проекте у друзей — дело обыденное. Спросишь, зачем его взяли, скажут, что просто изучили из любопытства, понравилось и решили поэкспериментировать, потому что устали от вечных Java/.Net/JS на работе.

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

У Wrike, где около 400 разработчиков, другой подход. Они не закрыли глаза на недостатки JavaScript и даже не выбрали компромисс, вроде Flow или TypeScript — а пошли совсем радикальным путем. Переписали фронт на язык, который тогда вряд ли знала и тысяча человек, и, кажется, до сих пор абсолютно в себе уверены.

Wrike занял почетное третье место среди medium-компаний в рейтинге лучших работодателей в ИТ «Моего круга» со средней оценкой 4.82. В топ самых высоко оцениваемых качеств компании входят: социальный пакет, комфортные условия труда, отношения с коллегами, адекватная зарплата и профессиональный рост.

Читать полностью »

Источник [Announcing Dart 2.2: Faster native code, support for set literals]

Сегодня (26 февраля 2019) мы объявляем о выпуске Dart 2.2 SDK — обновления для Dart 2, которое предлагает улучшенную производительность ahead-of-time (AOT) кода и поддержку Set литералов.

image
Читать полностью »

Основы архитектуры приложений на Flutter: Vanilla, Scoped Model, BLoC - 1

(оригинал статьи на английском языке опубликован на Medium)

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

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

  1. Запрос и загрузка данных.
  2. Трансформация и подготовка данных для пользователя.
  3. Запись и чтение данных из базы данных или файловой системы.

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