У нас вышла новая версия с обновленной иконкой — ноговодней.
Обновляйтесь, чтобы посмотреть что мы нарисовали.
А пока что — драфты от дизайнеров.
Всех с наступающим 🎉
Обновляйтесь, чтобы посмотреть что мы нарисовали.
А пока что — драфты от дизайнеров.
Всех с наступающим 🎉
Сегодня сразу две статьи про наши стартапы. Кто-то явно торопится рассказать про результаты до Нового Года!
AI-пицца
Первая про то, как мы делали AI-эксперименты для Дубая внутри нашего приложения Пиццы. Сначала попробовали одно, потом переделали на другое, а что в результате — читайте в статье. Или смотрите на видео
Первая про то, как мы делали AI-эксперименты для Дубая внутри нашего приложения Пиццы. Сначала попробовали одно, потом переделали на другое, а что в результате — читайте в статье. Или смотрите на видео
vc.ru
«Додо пИИцца». Как мы внедрили AI в приложение пиццы в Дубае — Дизайн на vc.ru
Привет! Меня зовут Катя Власова, я продуктовый дизайнер в дубайской команде Додо пиццы, и я рада успеть написать этот текст под конец года, в котором нейросети стали самой обсуждаемой темой после сериала Слово Пацана.
Как развивалась Менюза
Вторая статья про отдельное приложение — Менюза. Как проект появился, развивался и какие цели. Если у вас есть пет-проект, то обязательно почитайте как приложение развивалось все это время.
Недавняя новость про AI-генерацию фона - это тоже Менюза.
Вторая статья про отдельное приложение — Менюза. Как проект появился, развивался и какие цели. Если у вас есть пет-проект, то обязательно почитайте как приложение развивалось все это время.
Недавняя новость про AI-генерацию фона - это тоже Менюза.
vc.ru
Как мы сделали международный стартап Menusa внутри Dodo Brands — Еда на vc.ru
Если театр начинается с вешалки, то общепит начинается с меню. И возможность сделать его красивым, цифровым и удобным — бесценна. Именно это позволяет сделать проект Menusa. Рассказываем, как мы создали удобное цифровое меню для ресторанов и кафе.
Подводим итоги года прям сейчас. Не только про мобилу, в целом про айти и бизнес.
Например, тысячная пиццерия открылась в Лагосе, Нигерия!
Я приходил, когда 320 открылась
Например, тысячная пиццерия открылась в Лагосе, Нигерия!
Я приходил, когда 320 открылась
YouTube
Big Demo 2023
Команда продуктовых лидеров Dodo Brands рассказала про итоги работы IT за 2023.
Встречу вели Макс Политов, Head of IT brand и Дима Павлов, Marketplace Director.
Программа:
0:00:00 Вводное слово от ведущих, Макс Политов, Head of IT brand и Дима Павлов,…
Встречу вели Макс Политов, Head of IT brand и Дима Павлов, Marketplace Director.
Программа:
0:00:00 Вводное слово от ведущих, Макс Политов, Head of IT brand и Дима Павлов,…
Forwarded from Стартап Продюсер⚡️
Кайфую от продуманных мелочей. Вот например ребята в киоске бахнули твое имя на банковской карте и настоящий номер заказа на скриншоте с рекламой приложения. А можно же было потратить время вместо этого на объяснение того, что это очень сложно и вообще не влияет на пользовательский опыт. Не наш путь🙂
А мы вам подарочки на Новый год приготовили 🎄
Осталась всего неделя до 2024. Чтобы как-то подвести итог своим результатам и заодно вас порадовать мы решили выпускать по одной нашей внутренней тулзе в опенсурс каждый день. Начнем уже через несколько часов.
Кстати, если вы и сами что-то опенсурсили — делитесь в комментариях к этому посту.
Осталась всего неделя до 2024. Чтобы как-то подвести итог своим результатам и заодно вас порадовать мы решили выпускать по одной нашей внутренней тулзе в опенсурс каждый день. Начнем уже через несколько часов.
Кстати, если вы и сами что-то опенсурсили — делитесь в комментариях к этому посту.
Please open Telegram to view this post
VIEW IN TELEGRAM
DBThreadSafe-ios
Малюсенький хелпер для синхронизации ресурсов между потоками.
Раньше мы копипастили этот код между модулями или между внутренними SPM-пакетами. В какой-то момент это надоело и мы отпилили его в отдельный пакет, теперь просто его подключаем.
Работает на
Малюсенький хелпер для синхронизации ресурсов между потоками.
Раньше мы копипастили этот код между модулями или между внутренними SPM-пакетами. В какой-то момент это надоело и мы отпилили его в отдельный пакет, теперь просто его подключаем.
Работает на
pthread_rwlock_t
, так что оч быстрый. По этим бенчмаркам даже самый быстрый.GitHub
GitHub - dodobrands/DBThreadSafe-ios
Contribute to dodobrands/DBThreadSafe-ios development by creating an account on GitHub.
DBXCResultParser
Этот пакет парсит
DBXCReportModel
Пересобирает результаты прогона тестов
В модельке есть инфа по каждому тестовому таргету, файлу и конкретному тесту. Каверадж тоже будет, если у вас в настройках схемы или тестплана включена эта галочка.
Если вам надо написать свою тулзу по любой обработке результатов тестов — подключайте этот пакет, получайте типизированную модель и вертите её как хотите. Например, переливайте данные из неё в гуглотаблицу и стройке графики как у вас тесты растут. Или в слак репорты отправляйте.
DBXCTextFormatter
Форматирует данные из той самой типизированной моделки
Как мы это используем
Мы подключили этот пакет в несколько других внутренних инструментов, которые используются у нас на CI:
- Отправляем оповещения в наш месенджер. В эти оповещения приказываем инфу по тестам.
- Отправляем в нашу внутреннюю аналитику, чтобы смотреть как у нас растет количество тестов и каверадж.
Этот пакет парсит
.xcresult
и помогает нам собирать аналитику по тестам. Он состоит из двух частей.DBXCReportModel
Пересобирает результаты прогона тестов
.xcresult
в типизированную модельку.В модельке есть инфа по каждому тестовому таргету, файлу и конкретному тесту. Каверадж тоже будет, если у вас в настройках схемы или тестплана включена эта галочка.
Если вам надо написать свою тулзу по любой обработке результатов тестов — подключайте этот пакет, получайте типизированную модель и вертите её как хотите. Например, переливайте данные из неё в гуглотаблицу и стройке графики как у вас тесты растут. Или в слак репорты отправляйте.
DBXCTextFormatter
Форматирует данные из той самой типизированной моделки
DBXCReportModel
в человекочитаемый вид. Есть несколько форматов вывода, можете выбрать подходящий вам. Например, можно вывести список заваленных тестов. Или время, за которое прошли все зеленые тесты.Как мы это используем
Мы подключили этот пакет в несколько других внутренних инструментов, которые используются у нас на CI:
- Отправляем оповещения в наш месенджер. В эти оповещения приказываем инфу по тестам.
- Отправляем в нашу внутреннюю аналитику, чтобы смотреть как у нас растет количество тестов и каверадж.
DBXCResultParser-Sonar
Дополнительный форматтер для
Если будете кормить эту
1. Сколько у вас тестов
2. Какие из них прошли, а какие сломались
3. Сколько на это понадобилось времени
4. И как все эти метрики меняются со временем
Дополнительный форматтер для
DBXCReportModel
, который перегоняет .xcresult
в подходящую для Sonar .xml
.Если будете кормить эту
.xml
с вашего CI прямо в Sonar, то сможете получать разную аналитику:1. Сколько у вас тестов
2. Какие из них прошли, а какие сломались
3. Сколько на это понадобилось времени
4. И как все эти метрики меняются со временем
BlackBox 3.0.0
Синхронные логи
В первой версии BlackBox логирование было асинхронным. Это помогало синхронизировать доступы к ресурсам внутри логеров из одного места.
Но это же и мешало при дебаге: на одной строчке выводишь что-то в логи, на следующей ставишь бряку, смотришь логи, а туда ещё ничего не прилетело.
Мы это исправили и теперь доступы к ресурсам синхронизируются внутри логгеров. Это позволило сделать логи синхронными и упростить дебаг.
Кастомайз формата
К нам прилетел первый ПР, который добавил кастомайз логов при конвертировании их для
1. Настроить как форматируется JSON — prettyPrinted и тд.. Теперь можно выводить неэкранированные ссылки.
2. Указать как форматируется источник лога — в одну строку или в несколько. Поможет сэкономить место.
3. Передать кастомный
4. Указать для каких уровней логов стоит выводить иконку, а для каких нет. Будет проще находить логи уровня
5. Настроить кастомные иконки для каждого уровня. Просто фан.
Если хотите освежить себе память по логам и замерам, то у нас есть три статьи:
Логи в iOS, эпизод 1: os_log
Логи в iOS, эпизод 2: os_signpost
Логи в iOS, эпизод 3: BlackBox
Синхронные логи
В первой версии BlackBox логирование было асинхронным. Это помогало синхронизировать доступы к ресурсам внутри логеров из одного места.
Но это же и мешало при дебаге: на одной строчке выводишь что-то в логи, на следующей ставишь бряку, смотришь логи, а туда ещё ничего не прилетело.
Мы это исправили и теперь доступы к ресурсам синхронизируются внутри логгеров. Это позволило сделать логи синхронными и упростить дебаг.
Кастомайз формата
К нам прилетел первый ПР, который добавил кастомайз логов при конвертировании их для
OSLogger
. Стало можно:1. Настроить как форматируется JSON — prettyPrinted и тд.. Теперь можно выводить неэкранированные ссылки.
2. Указать как форматируется источник лога — в одну строку или в несколько. Поможет сэкономить место.
3. Передать кастомный
MeasurementFormatter
для конвертирования продолжительности замеров, чтобы подкрутить точность, например, до секунды.4. Указать для каких уровней логов стоит выводить иконку, а для каких нет. Будет проще находить логи уровня
.error
, если иконка будет только у них.5. Настроить кастомные иконки для каждого уровня. Просто фан.
Если хотите освежить себе память по логам и замерам, то у нас есть три статьи:
Логи в iOS, эпизод 1: os_log
Логи в iOS, эпизод 2: os_signpost
Логи в iOS, эпизод 3: BlackBox
GitHub
GitHub - dodobrands/BlackBox: Library for logs and measurements
Library for logs and measurements. Contribute to dodobrands/BlackBox development by creating an account on GitHub.
Книжка уходит в опенсорс
Но чуть позже и в другом видео. Про это на видео:
- Какие проблемы есть у книги?
- Что будет дальше с ней?
- Зачем мне редактор на английском?
- Почему ее не надо читать?
- Почему ее не надо будет верстать?
- Зачем компилировать книгу?
- Как документация может повлиять на продажи?
- Что там с VoiceOver Designer?
Самые любознательные найдут все, что захотят.
https://youtu.be/tSzXZpLFEhw
Напоминаю, что книжку «Про доступность iOS» мы можете скачать бесплатно. Подарите кому-нибудь и мне тоже будет приятно.
Если вы хотите помочь с текстом на английском, то напишите мне в личные сообщения
Но чуть позже и в другом видео. Про это на видео:
- Какие проблемы есть у книги?
- Что будет дальше с ней?
- Зачем мне редактор на английском?
- Почему ее не надо читать?
- Почему ее не надо будет верстать?
- Зачем компилировать книгу?
- Как документация может повлиять на продажи?
- Что там с VoiceOver Designer?
Самые любознательные найдут все, что захотят.
https://youtu.be/tSzXZpLFEhw
Напоминаю, что книжку «Про доступность iOS» мы можете скачать бесплатно. Подарите кому-нибудь и мне тоже будет приятно.
Если вы хотите помочь с текстом на английском, то напишите мне в личные сообщения
YouTube
Планы на книгу «Про Доступность iOS»
Скачать книгу «про доступность iOS» https://rubanov.dev/a11y-book
Приложение VoiceOver Designer https://rubanov.dev/voice-over-designer/ru
Будущая версия книги https://github.com/VODGroup/AccessibilityDocumentation
Канал Dodo Mobile https://tttttt.me/DodoMobile…
Приложение VoiceOver Designer https://rubanov.dev/voice-over-designer/ru
Будущая версия книги https://github.com/VODGroup/AccessibilityDocumentation
Канал Dodo Mobile https://tttttt.me/DodoMobile…
Про время жизни приложения
@BaldwinJ очень просил розыгрыш пиццерии. Но мы же IT-бизнес, поэтому разыгрывать будем интересную функцию!
Но сначала предыстория. Когда-то у нас был целый проект по срочному выпиливанию Realm из проекта, это база данных такая. Мы на месяц остановили продуктовую разработку, потому что терпеть было уже невозможно: мы постоянно падали, релизы стали очень нестабильными, а все не по нашей вине, а из-за нескольких подряд кривых релизов. Подробно в статье
В конце мы добавляли скриптик, который удалял файлы рилма даже тогда, когда самой библиотеки нет в проекте.
@BaldwinJ очень просил розыгрыш пиццерии. Но мы же IT-бизнес, поэтому разыгрывать будем интересную функцию!
Но сначала предыстория. Когда-то у нас был целый проект по срочному выпиливанию Realm из проекта, это база данных такая. Мы на месяц остановили продуктовую разработку, потому что терпеть было уже невозможно: мы постоянно падали, релизы стали очень нестабильными, а все не по нашей вине, а из-за нескольких подряд кривых релизов. Подробно в статье
В конце мы добавляли скриптик, который удалял файлы рилма даже тогда, когда самой библиотеки нет в проекте.
BlackBox + Firebase 3.0.0
https://github.com/dodobrands/BlackBoxFirebasePerformance
https://github.com/dodobrands/BlackBoxFirebaseCrashlytics
Вместе с мажорным обновлением BlackBox заапдейтили и плагины, которые перенаправляют логи и трассировки в фаербейз.
Особенного ничего нет, но теперь они тоже принимает на себя конфиги и можно настраивать внешний вид логов в крашлитике.
На этом неделя опенсурса закончилась, всем спасибо ❤️
https://github.com/dodobrands/BlackBoxFirebasePerformance
https://github.com/dodobrands/BlackBoxFirebaseCrashlytics
Вместе с мажорным обновлением BlackBox заапдейтили и плагины, которые перенаправляют логи и трассировки в фаербейз.
Особенного ничего нет, но теперь они тоже принимает на себя конфиги и можно настраивать внешний вид логов в крашлитике.
На этом неделя опенсурса закончилась, всем спасибо ❤️
Про новогодний кодфриз
Еще одно обновления для старой статьи: мы перестали останавливать разработку мобилы на новый год. Бэкенд все еще не обновляется пару недель, а мобила это изящно обошла с помощью релиз-трейна.
Еще одно обновления для старой статьи: мы перестали останавливать разработку мобилы на новый год. Бэкенд все еще не обновляется пару недель, а мобила это изящно обошла с помощью релиз-трейна.
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS
Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тяжко.
А когда речь заходит про автоматизацию тестирования и сборок — тушите свет: Xcode Cloud появился совсем недавно и почти ничего не умеет, популярные облачные решения могут месяцами не обновлять стек на новые мажорные релизы среды разработки или ОС, а ценник при этом может быть в 10 раз больше, чем за машинки на Linux. Ещё тяжелее.
Сейчас мы расскажем как собрали свой CI на М1, с виртуализацией и на полном нативе.
https://habr.com/ru/companies/dododev/articles/782922/
Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный менеджер появился только пару лет назад. Тяжко.
А когда речь заходит про автоматизацию тестирования и сборок — тушите свет: Xcode Cloud появился совсем недавно и почти ничего не умеет, популярные облачные решения могут месяцами не обновлять стек на новые мажорные релизы среды разработки или ОС, а ценник при этом может быть в 10 раз больше, чем за машинки на Linux. Ещё тяжелее.
Сейчас мы расскажем как собрали свой CI на М1, с виртуализацией и на полном нативе.
https://habr.com/ru/companies/dododev/articles/782922/
Хабр
Как Додо Пицца доставляет свежий код: история мобильного CI для iOS
Мобильная разработка под iOS особенная: собрать приложение можно только на macOS, среда разработки по сути только одна, большая часть принятого в сообществе тулинга написана на Ruby, свой пакетный...
Forwarded from Мобильное Чтиво
Вакансия Android разработчика в Drinkit
Мы в Dodo Engineering ищем Андроид разработчика на проект Drinkit ⭐️ (это проект, где сейчас я работаю).
Наши ожидания:
— Уверенно знание Kotlin и AndroidSDK, опыт от 2х лет.
— Надо понимать многопоточку, архитектуру.
— Надо продвинуто знать View. Если знаешь Compose — это плюс!
— Умеешь писать тесты
— Но главное — желание делать крутые, красивые, нелагающие и отзывчивые интерфейсы. Если его нет, то лучше пока не писать, сорян :)
— Кароче, ищем сильного и уверенного в себе разработчика 😉
Что можно почитать/посмотреть про нас:
— Есть крутая статья нашего разработчика Димы о том, как мы делали сложную фичу на Compose.
— Или можете посмотреть мое выступление на Mobius про DI в Дринките.
— Также можете почитать мои статьи про разные проекты в Dodo Engineering.
Наш стек:
- Kotlin, Coroutines/Flows
- Многомодульность, слоистая архитектура, Navigation Component, MVP -> MVI, View -> Compose.
- Kodein, GitHub Actions
- JUnit, Mockito
Я бегу впереди паровоза (нашего замечательного HR) и публикую эту вакансию чуть раньше, чем она официально будет. Поэтому это шанс записаться на собеседование до большого потока кандидатов!
Пишите в личку, кидайте резюме.
#job #dodo
Мы в Dodo Engineering ищем Андроид разработчика на проект Drinkit ⭐️ (это проект, где сейчас я работаю).
Наши ожидания:
— Уверенно знание Kotlin и AndroidSDK, опыт от 2х лет.
— Надо понимать многопоточку, архитектуру.
— Надо продвинуто знать View. Если знаешь Compose — это плюс!
— Умеешь писать тесты
— Но главное — желание делать крутые, красивые, нелагающие и отзывчивые интерфейсы. Если его нет, то лучше пока не писать, сорян :)
— Кароче, ищем сильного и уверенного в себе разработчика 😉
Что можно почитать/посмотреть про нас:
— Есть крутая статья нашего разработчика Димы о том, как мы делали сложную фичу на Compose.
— Или можете посмотреть мое выступление на Mobius про DI в Дринките.
— Также можете почитать мои статьи про разные проекты в Dodo Engineering.
Наш стек:
- Kotlin, Coroutines/Flows
- Многомодульность, слоистая архитектура, Navigation Component, MVP -> MVI, View -> Compose.
- Kodein, GitHub Actions
- JUnit, Mockito
Я бегу впереди паровоза (нашего замечательного HR) и публикую эту вакансию чуть раньше, чем она официально будет. Поэтому это шанс записаться на собеседование до большого потока кандидатов!
Пишите в личку, кидайте резюме.
#job #dodo