Как стать автором
Обновить
Dodo Engineering
О том, как разработчики строят IT в Dodo
Сначала показывать

Путешествие в yarn

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

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

Наши бекендеры решили настроить резервную инфраструктуру на базе ресурсов «Яндекса». Мы, фронтендеры, задумались над альтернативой npm registry — источнику библиотек, фреймворков и других полезных в работе штук.

От нашей изначальной идеи — создания локального registry — мы пришли к yarn 2+. О том, как так получилось, и с чем мы столкнулись на этом тернистом пути, я сегодня и расскажу.

Читать далее
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 13

Как Додо Пицца доставляет свежий код: история мобильного CI для iOS

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

Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тяжко.

А когда речь заходит про автоматизацию тестирования и сборок — тушите свет: Xcode Cloud появился полгода назад и почти ничего не умеет, популярные облачные решения могут месяцами не обновлять стек на новые мажорные релизы среды разработки или ОС (вставить ссылку на тред где гитхаб не может привести новую макось уже полгода), а ценник при этом может быть в 10 раз больше, чем за машинки на Linux. Ещё тяжелее.

Меня зовут Леха Берёзка, я iOS-техлид в Додо Пицце и сейчас я расскажу как мы собрали свой CI на М1, с виртуализацией и на полном нативе.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 9

App Clip и тысяча проблем

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

Menusa - проект Dodo Brands. Инструмент по автоматизации процессов для малого бизнеса в сфере общепита.

В этой статье расскажу как мы добавляли функционал вызова официанта в App Clip и с какими проблемами столкнулись.

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

Что будет если команда, не видавшая Compose, решила делать новую сложную фичу на нём?

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

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

Звезды сошлись таким образом, что произошло 2 события:

Настало время делать кардинальный редизайн одного из наших главных экранов — карточки продукта

Мы приняли решение переходить на стек Jetpack Compose в нашем Android приложении.

В этой статье я расскажу, как мы сделали кастомный Compose экран с кастомным скроллом и снаппингом.

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Комментарии 10

Kodein DI для Android. KMP и Compose

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

Быть в авангарде в разработке — жизненная необходимость. Поэтому многие проекты уже переходят на Jetpack Compose, а самые смелые и продвинутые даже выпускают приложения на KMP. Мы в проекте Дринкит тоже активно переходим на Jetpack Compose (с KMP пока не сделали подход).

Ну и как же жить со всем этим без DI? Правильно, никак. Поэтому в этой статье я расскажу, как применять DI Kodein в Kotlin Multiplatform и Jetpack Compose.

Это вторая статья из цикла статьей про Kodein DI для Android.

Погнали.

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

CD-диск на шейдерах и NameDrop в iOS 17

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

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

Описать метериал через шейдер сложно, а создать динамичный эффект — ещё сложнее. В этой статье разберём пару примеров: переливающийся диск и нашумевший NameDrop в iOS 17.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 1

Как увеличить мощность A/B-теста, если мало данных и время поджимает

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

Привет, меня зовут Настя, я продуктовый аналитик в Dodo. Недавно мы провели A/B-тест по запросу геолокации у пользователей. Когда я приступила к анализу, то с ужасом обнаружила, что данных — кот наплакал, а бизнес уже очень ждёт результатов. Тогда мне пришлось пустить в ход свои «секретные техники» A/B-тестирования.

В этой статье расскажу, как мне удалось увеличить выборку без загадочного бутстрапа, причём тут раскатка и почему отсутствие результата — тоже результат. Статья может быть интересна как аналитикам и продакт оунерам, так и всем неравнодушным, интересующимся A/B-тестированием.

Погнали!
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 7

Шейдеры в iOS для начинающих

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

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

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

В iOS 17 пришло значимое обновление — теперь добавить шейдер можно к любой View, а значит, вся интеграция стала проще и растровых эффектов появится больше.

Давайте разбираться, что за чудо-код надо написать, как это подключить и как в целом погрузиться в тему. Начнём с простых градиентов, а закончим сложным примером «как в Air Drop на iOS 17».

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Комментарии 1

Kodein DI для Android. Основы API

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

Android разработчики обожают DI. Куда ни посмотри, куча статей и выступлений про Dagger 2, Hilt или Koin, но очень мало про Kodein. Даже на Хабре всего пару неплохих статей, но и те от 2018 года. Но с тех пор Kodein бурно развивался, и вышло много мажорных версий, API значительно изменился.

Мы используем Kodein в приложении Drinkit и успели прочувствовать на себе плюсы и минусы этого инструмента. Я расскажу, как пользоваться Kodein, как у него дела со скоупами и многомодульностью.

Итак, погнали
Всего голосов 18: ↑18 и ↓0 +18
Комментарии 4

Деврел — не человек, или Все мы немножко деврел

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

На Хабре уже писали, кто такие деврелы, и не кто-нибудь, а одна из топ-деврелов русскоязычного пространства Женя Голева. Рекомендую сначала заглянуть в статью Жени, а потом продолжать читать, если вдруг вы вообще ничего не знаете про деврел. В целом понятие относительно новое, в СНГ — уж тем более, и из-за нашей локальной специфики окутанное ложными представлениями, тайнами, мифами и легендами.

Меня зовут Вероника Ильина, я Head of Developer Relations в Dodo Engineering уже почти два года. И я очень люблю «Разрушителей мифов». Так что в этой статье пройдусь по популярным мифам, живущим в головах разработчиков, эйчаров, бизнес-заказчиков деврелов и самих деврелов.

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

Читать далее
Всего голосов 23: ↑18 и ↓5 +13
Комментарии 9

Гайд по UX для телеграм-бота

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

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

В Маркетплейсе приложений Dodo IS есть уже 2 телеграм-бота, которые помогают управляющим наших ресторанов. Они оба прошли нашу модерацию, а в процессе у нас родился небольшой UX-гайд, как сделать бота удобным и простым в использовании. Несмотря на то, что некоторые рекомендации могут показаться уж слишком банальными, мы решили ими поделиться здесь, потому что порой даже самые очевидные вещи забываются.

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

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 3

Как впилить Allure TestOps в свой проект, если ты простой тестировщик

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

В прошлом году нашей QA-команде нужно было интегрировать Allure TestOps в проекты. До этого никто из нас этим не занимался, но вместе разобрались и сделали. Я осознал, что в одиночку потратил бы на это очень много времени или вообще бы не разобрался, потому что инструкции, как это сделать, не было. Поэтому написал свою, в надежде, что она будет полезна тем, кто окажется в такой же ситуации.

В общем, если вы тестируете бэкенд на .NET, а для сборки проектов используете GitHub Actions и хотите внедрить Allure TestOps — эта инструкция для вас.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 2

Управление, интерфейсы и доступность в Apple Vision Pro

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

Apple показала Vision Pro – устройство, которое по максимуму использует все наши ощущения и погружает в прямое управление интерфейсом руками, голосом и движением головы.

Вот только не все могут видеть, слышать, двигать руками или говорить. Как будут работать очки для них? Неужели Apple придумала альтернативные способы управления для всего?

Да, придумала. Будущее невероятно.

Много картинок
Всего голосов 18: ↑17 и ↓1 +16
Комментарии 12

Как мы на 20% повысили скорость запуска приложения с помощью Baseline Profiles

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

На конференции Google I/O 2022 показали инструмент Baseline Profiles, с помощью которого можно ускорить запуск приложений после установки. Мы попробовали его у себя и получили прирост до 20% при холодном запуске приложения!

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

Демонстрировать это я буду на нашем приложении Дринкит.

Поехали!
Всего голосов 22: ↑21 и ↓1 +20
Комментарии 14

Нельзя просто взять и сделать нормальную адресную систему в приложении

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

Олды помнят, как ещё каких-то 10-15 лет назад заказывали пиццу по телефону, диктуя адрес операторам кол-центра. Мало кто тогда думал, что отсутствие подсказок адресов и карты на сайте с определением геолокации, а уж тем более в мобильном приложении, будет вызывать у нас реакцию «да сложно, что ли, нормальную карту сделать?».

Но вот мы здесь, рассказываем, как в Додо Пицце лишь недавно появилась уже привычная многим адресная система. Как так вышло — история долгая и не всем интересная. Скажу только, что переделывать и менять как-то работающее старое на новое в большой системе — тот ещё квест. В итоге нам пришлось зарыться достаточно глубоко во внутренности Dodo IS, чтобы можно было добавлять адреса с помощью карты. В этой статье расскажу, с чего мы начинали и как реализовали эту фичу в нашем iOS-приложении.

Читать далее
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 9

Как учиться учиться и для чего интровертам телеграм-канал

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

«Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер». Дональд Кнут (как минимум викицитатник говорит, что он так сказал).

Год назад я осознал, что моё развитие как инженера застопорилось. Не то, чтобы я перестал изучать что-то новое, скорее, страдал от отсутствия системности. Не было понятно, что изучать дальше, что уже получилось изучить и что из изученного я смог для себя извлечь. Поэтому я решил как-то осмыслить процесс самообучения и за год привёл его к системе, которая мне довольно сильно помогает.

Для тех, кто, как и я, испытывал похожие проблемы, я решил поделиться своим методом.

Читать далее
Всего голосов 25: ↑23 и ↓2 +21
Комментарии 7

Как помочь своему лиду не наломать дров

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

Всем привет, меня зовут Вероника, я Head of DevRel в Dodo Engineering. Я работаю с людьми в IT уже больше 7 лет и за эти годы насмотрелась на мириады Больших Менеджерских Ошибок (БМО, далее по тексту заменяется на «факапы») менеджеров во всех ипостасях: новичков, суперопытных, директоров, нанимающих, увольняющих, увольняющихся… Конечно, наошибалась и сама. На собственной шкуре знаю, что многие менеджерские факапы можно предотвратить в зачатке. И наблюдала, как команды спасают своих лидов от ошибок.

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

Разбираем на утках 9 ситуаций из жизни
Всего голосов 20: ↑19 и ↓1 +18
Комментарии 0

3 примера, в которых доступность помогла заработать денег, подсветить ошибки и решить споры

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

Первое, что люди спрашивают про доступность: а может ли она принести денег, ведь там немного пользователей? Популярное искажение в том, что они выделяют одну группу (ну сколько там незрячих на миллион?) и не оценивают картину в целом (45% на iOS и 59% на Android включают хотя бы одну настройку доступности).

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

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

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 8

Обновляю ссылку один месяц, или Лёгких задач не бывает

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

История о том, почему «обновить ссылку» — задача для техлида: тут и про тесты, и про вёрстку, и про архитектуры процессоров.

Бульварное чтиво из 15+1 мемов
Всего голосов 41: ↑39 и ↓2 +37
Комментарии 13

Как мы приложение Додо Пиццы на арабский переводили

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

Что вы знаете о том, как добавить поддержку языков, которые пишутся справа налево (Right to Left, RTL), в iOS‑приложение? Нужно использовать leading и trailing вместо left и right, а ещё… Вот и мы больше ничего не знали, но пришлось разобраться.

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

Читать далее
Всего голосов 51: ↑49 и ↓2 +47
Комментарии 18

Информация

Сайт
dodo.dev
Дата регистрации
Дата основания
Численность
201–500 человек
Местоположение
Россия