Мы в Додо используем Google Meet для созвонов, и у нас есть подписка на Gemini.
В Meet встроен Gemini - можно запускать транскрибацию и саммари звонков.
Конечно же, есть одно но!
Gemini пока не поддерживает русский язык.
Поэтому для этих целей я использую Notion AI, который посоветовал наш Head of Design
Это довольно удобно:
- в реалтайме транскрибируется звонок
- можно делать заметки
- просить не записывать какую-то важную информацию
- и подводить итоги встречи в виде саммари
Минусы: транскрибация не самая лучшая, потому что Notion не подключается к звонку, а записывает звук с микрофона и динамика.
Но тем не менее саммари получаются 🔥
Всё бы хорошо, но платить $20 в месяц, когда есть корпоративная подписка на Gemini - такое себе 🫠
Поэтому на одной из встреч наш инженер предложил лайфхак:
1. Включаем запись с субтитрами — они поддерживают русский
2. Google сохраняет видео + текст субтитров + чат в отдельных файлах
3. Скармливаем субтитры Gemini и просим сделать саммари
4.
Я даже подумал, что можно всё это автоматизировать через Google Apps Script и сразу отправлять результат в корпоративный мессенджер.
Но, увы.
Даже с русскими субтитрами Gemini всё ещё пытается распознать английский в русском, поэтому эксперимент не удался.
Так что пока остаюсь без $20 с Notion AI 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5😁2🤔1
Сижу в самолёте, лечу в Питер после отпуска. С понедельника командировка.
Рядом парень в спортивном костюме и кавказской внешности спрашивает у меня:
В тот момент понял, что тоже лечу в Россию подзаработать.
Кстати, на днях была презентация Apple. Я её с радостью пропустил, выбрав плавание в бассейне.
Но там есть пару интересных обновлений, о которых хочу рассказать👀
Рядом парень в спортивном костюме и кавказской внешности спрашивает у меня:
Ты отдыхать или работать?
В тот момент понял, что тоже лечу в Россию подзаработать.
Кстати, на днях была презентация Apple. Я её с радостью пропустил, выбрав плавание в бассейне.
Но там есть пару интересных обновлений, о которых хочу рассказать
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍3❤1🤔1
Лично мой фаворит — Live Translation в AirPods.
Теперь в наушниках можно слушать перевод в реальном времени, когда кто-то говорит на другом языке.
Наконец я буду понимать французов, итальянцев и вьетнамцев.
Хотя, вряд ли:
1. В Европе фича недоступна
2. Список языков ограничен (английский, французский, немецкий, испанский, португальский)
3. Работает только на AirPods 4+ или AirPods Pro 2+
4. Нужен iPhone не ниже 15 Pro
5. Только с iOS 26
Apple сделала красиво, но пользоваться этим смогут пока только избранные.
А значит, всё ещё придётся использовать Google Переводчик 🙂
Теперь в наушниках можно слушать перевод в реальном времени, когда кто-то говорит на другом языке.
Наконец я буду понимать французов, итальянцев и вьетнамцев.
Хотя, вряд ли:
1. В Европе фича недоступна
2. Список языков ограничен (английский, французский, немецкий, испанский, португальский)
3. Работает только на AirPods 4+ или AirPods Pro 2+
4. Нужен iPhone не ниже 15 Pro
5. Только с iOS 26
Apple сделала красиво, но пользоваться этим смогут пока только избранные.
А значит, всё ещё придётся использовать Google Переводчик 🙂
🔥4👀3👍1
Ребят, мы в Додо Пицце 🍕 ищем Middle+ iOS-разработчика в команду оформления заказа 📱
Если ты не просто пишешь код, а хочешь видеть, как он сразу влияет на то, что видят пользователи, — тебе к нам. Здесь твои фичи мгновенно отражаются на заказах и среднем чеке.
Что ты будешь делать:
• Проектировать архитектуру
• Запускать ключевые фичи, от выбора адреса до финального оформления заказа
• Поддерживать стабильность критического пути
• Работать в тесной связке с соседними командами: back-end, UX/UI, маркетинг, аналитика
Что важно уметь:
• UIKit + SwiftUI
• async/await
• VIPER (или хотя бы понимание, зачем он нужен)
• Любишь писать тесты и поддерживать высокое качество кода
Что ты получишь:
• Удалёнка, но есть классные офисы в Москве, Питере, Алматы, Сыктывкаре и Нижнем
• Продуктовый подход
• ДМС, курсы, английский и всякие плюшки
Если стало интересно - пиши мне в личку @goshaginyan
Сама вакансия тут
Если ты не просто пишешь код, а хочешь видеть, как он сразу влияет на то, что видят пользователи, — тебе к нам. Здесь твои фичи мгновенно отражаются на заказах и среднем чеке.
Что ты будешь делать:
• Проектировать архитектуру
• Запускать ключевые фичи, от выбора адреса до финального оформления заказа
• Поддерживать стабильность критического пути
• Работать в тесной связке с соседними командами: back-end, UX/UI, маркетинг, аналитика
Что важно уметь:
• UIKit + SwiftUI
• async/await
• VIPER (или хотя бы понимание, зачем он нужен)
• Любишь писать тесты и поддерживать высокое качество кода
Что ты получишь:
• Удалёнка, но есть классные офисы в Москве, Питере, Алматы, Сыктывкаре и Нижнем
• Продуктовый подход
• ДМС, курсы, английский и всякие плюшки
Если стало интересно - пиши мне в личку @goshaginyan
Сама вакансия тут
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2🤔1
А вы видели новый айфон?
Разработать дизайн нового iPhone 17 Pro Apple пригласила дизайнера Сергея Мекрюкова, который консультировал купертиновцев в выборе цвета.
Тим Кук и команда в знак благодарности выпустили эксклюзивную линейку DodoPhone.
PS. Сергей занимает роль Head of Design в Dodo Engineering(Drinkit, Dodo Pizza) и ведет тг канал
Разработать дизайн нового iPhone 17 Pro Apple пригласила дизайнера Сергея Мекрюкова, который консультировал купертиновцев в выборе цвета.
Тим Кук и команда в знак благодарности выпустили эксклюзивную линейку DodoPhone.
PS. Сергей занимает роль Head of Design в Dodo Engineering(Drinkit, Dodo Pizza) и ведет тг канал
1😁10❤5🔥4
Apple услышала пользователей, которым не хватает контраста.
С iOS 26 текст довольно часто из-за недостаточной контрастности плохо читается.
И с iOS 26.1 beta 4 теперь можно настроить уровень Liquid Glass.
Если не нравится прозрачность, можно будет добавить немного “блюра”
Для разработчиков и дизайнеров это, конечно, новая головная боль.
Необходимо поддержать версии:
- до iOS 26 (18, 17…)
- iOS 26.0
- теперь ещё с iOS 26.1 будет +1 вариация
С iOS 26 текст довольно часто из-за недостаточной контрастности плохо читается.
И с iOS 26.1 beta 4 теперь можно настроить уровень Liquid Glass.
Если не нравится прозрачность, можно будет добавить немного “блюра”
Для разработчиков и дизайнеров это, конечно, новая головная боль.
Необходимо поддержать версии:
- до iOS 26 (18, 17…)
- iOS 26.0
- теперь ещё с iOS 26.1 будет +1 вариация
👍4😁2
Нужно ли делать двойную работу и рисовать макеты под Android?
В прошлом посте в комментариях поднялась тема как мы поддерживаем iOS и Android?
И каким-то магическим образом наша дизайн команда именно сегодня выложила на эту тему пост
https://t.iss.one/designdodo/275
В прошлом посте в комментариях поднялась тема как мы поддерживаем iOS и Android?
Дисклеймер:да, мы готовим макеты под каждую платформу , поддерживаем две темы(темную и светлую), поддерживаем Dynamic Type и тд
И каким-то магическим образом наша дизайн команда именно сегодня выложила на эту тему пост
https://t.iss.one/designdodo/275
Telegram
Dodo Desisign
Это выпуск про автосвитчер между платформами 💔
Вы просили — Никита записал. Пожалуйста, не скупитесь на лайки и респекты в комментариях — чувак делает лекции в свое свободное время.
PS коммент про микрофон уже в работе
#НикитапроДС
Вы просили — Никита записал. Пожалуйста, не скупитесь на лайки и респекты в комментариях — чувак делает лекции в свое свободное время.
PS коммент про микрофон уже в работе
#НикитапроДС
👍2❤1🔥1
Теперь и на Android будут красивые приложения😁
В начале месяца Apple выпустила библиотеку App Migration Kit, которая позволяет передавать данные между iOS и Android.
Тогда было не очень ясно зачем?
И вот вчера всё стало понятно.
Команда Swift представила Swift SDK для Android.
Теперь iOS-разработчикам будет гораздо проще портировать свои приложения под Android.
Пойду свой пет переводить, что ли
В начале месяца Apple выпустила библиотеку App Migration Kit, которая позволяет передавать данные между iOS и Android.
Тогда было не очень ясно зачем?
И вот вчера всё стало понятно.
Команда Swift представила Swift SDK для Android.
Теперь iOS-разработчикам будет гораздо проще портировать свои приложения под Android.
Пойду свой пет переводить, что ли
🔥4👍2🤔1
Media is too big
VIEW IN TELEGRAM
Пока iOS-разработчики не заменили Android-разработчиков
В Додо мы каждый год проводим хакатон.
И в этом году наш Android-лид из Drinkit вместе с командой выиграли его, создав AI-помощника прямо внутри приложения Drinkit🐳
Они использовали Firebase AI, которую Google представила на Google I/O 2025.
Очень горжусь, что работаю с такими крутанами, поэтому не могу не поделиться радостной новостью.
Макса пригласили выступить на ряде конференций, где он расскажет как работает Firebase AI.
Если будете в этих городах, не пропустите:
🇹🇷 6 Dec — DevFest Mersin
🇹🇷 7 Dec — DevFest Istanbul
🇹🇷 13 Dec — DevFest Izmir
🇦🇪 15 Dec — Droidcon Abu Dhabi
🇦🇲 20 Dec — DevFest Armenia
В Додо мы каждый год проводим хакатон.
И в этом году наш Android-лид из Drinkit вместе с командой выиграли его, создав AI-помощника прямо внутри приложения Drinkit
Они использовали Firebase AI, которую Google представила на Google I/O 2025.
Firebase AI Logic — это набор инструментов,
позволяющий разработчикам интегрировать
возможности ИИ от Google, включая модели Gemini.
Очень горжусь, что работаю с такими крутанами, поэтому не могу не поделиться радостной новостью.
Макса пригласили выступить на ряде конференций, где он расскажет как работает Firebase AI.
Если будете в этих городах, не пропустите:
🇹🇷 6 Dec — DevFest Mersin
🇹🇷 7 Dec — DevFest Istanbul
🇹🇷 13 Dec — DevFest Izmir
🇦🇪 15 Dec — Droidcon Abu Dhabi
🇦🇲 20 Dec — DevFest Armenia
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥9❤2👍2👎1
Запустили Live Updates на Android
Люблю новые технологии. Кто же их не любит, правда?
В мае на Google I/O показали Live Updates — Android-аналог Live Activity.
Да, работает только на Android 16.
Да, покрытие - меньше 7%.
И всё равно мы решили делать.
Потому что Live Activity на iOS - одна из самых удобных штук для трекинга статусов: доставка, такси, кофе - всегда перед глазами.
Теперь Live Updates доступны в Dodo Pizza и Drinkit.
Фича уже в проде, можете тестить.
Но самое крутое, что наш Android-разработчик в Пицце не просто внедрил Live Updates, а разобрался в API и написал подробную статью по реализации.
Кому интересно - читайте, там все разложено по полочкам.
В комментах закину еще скрины из Дринкита
Люблю новые технологии. Кто же их не любит, правда?
В мае на Google I/O показали Live Updates — Android-аналог Live Activity.
Да, работает только на Android 16.
Да, покрытие - меньше 7%.
И всё равно мы решили делать.
Потому что Live Activity на iOS - одна из самых удобных штук для трекинга статусов: доставка, такси, кофе - всегда перед глазами.
Теперь Live Updates доступны в Dodo Pizza и Drinkit.
Фича уже в проде, можете тестить.
Но самое крутое, что наш Android-разработчик в Пицце не просто внедрил Live Updates, а разобрался в API и написал подробную статью по реализации.
Кому интересно - читайте, там все разложено по полочкам.
В комментах закину еще скрины из Дринкита
1👍7🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
KPACUBO и ТЕХНО/\ОГИЧНО
Одно из немногих приложений, которое не боится делать смелые и дерзкие решения.
Придумать классную пасхалку сложно.
Продать её бизнесу — ещё сложнее.
Профита никакого, кроме эмоций и хайпа.
Но иногда именно это делает продукт живым.
Уже угадали к чему пасхалка?
Передаю огненный привет команде Дринкита 💔
Одно из немногих приложений, которое не боится делать смелые и дерзкие решения.
Придумать классную пасхалку сложно.
Продать её бизнесу — ещё сложнее.
Профита никакого, кроме эмоций и хайпа.
Но иногда именно это делает продукт живым.
Уже угадали к чему пасхалка?
Передаю огненный привет команде Дринкита 💔
🔥11👍4
Костыль года: Firebase Crashlytics → Loop
История о том, как отсутствие одной интеграции заставило меня и Макса написать целый парсер Gmail-писем.
Проблема простая: у нас в компании используется Loop (корпоративный мессенджер на базе Mattermost).
Firebase Crashlytics умеет слать алерты только в Slack, Email, Jira и PagerDuty. Slack у нас нет, Jira мы не пользуемся, email никто не смотрит, PagerDuty нам не нужен. А Crashlytics-алерты очень хочется видеть в реальном времени.
Что пришлось сделать:
1. Настроить Firebase → отправка всех крашей на e-mail
2. Сделать фильтр в Gmail → все письма от Firebase падают в метку «crash_alerts»
3. Написать Google Apps Script, который каждую минуту:
- проверяет новые письма в метке
- парсит их
- форматирует в красивый attachment
- отправляет через webhook в наш Loop-канал
В итоге, что мы получили:
- Все новые краши из всех наших мобильных приложений теперь в одном канале
- Покрыто 8 приложений: Dodo Pizza, Drinkit, Menusa и курьерское приложение.
- Все в одном месте: какое приложение, какая платформа, какая версия упала и что за ошибка.
Когда нет готовой интеграции — приходится писать свою.
В следующий раз расскажу, как я готовил технический дашборд в Grafana и собирал свой Crash-Free дашборд для всех наших приложений, потому что у Crashlytics нет API.
История о том, как отсутствие одной интеграции заставило меня и Макса написать целый парсер Gmail-писем.
Проблема простая: у нас в компании используется Loop (корпоративный мессенджер на базе Mattermost).
Firebase Crashlytics умеет слать алерты только в Slack, Email, Jira и PagerDuty. Slack у нас нет, Jira мы не пользуемся, email никто не смотрит, PagerDuty нам не нужен. А Crashlytics-алерты очень хочется видеть в реальном времени.
Что пришлось сделать:
1. Настроить Firebase → отправка всех крашей на e-mail
2. Сделать фильтр в Gmail → все письма от Firebase падают в метку «crash_alerts»
3. Написать Google Apps Script, который каждую минуту:
- проверяет новые письма в метке
- парсит их
- форматирует в красивый attachment
- отправляет через webhook в наш Loop-канал
В итоге, что мы получили:
- Все новые краши из всех наших мобильных приложений теперь в одном канале
- Покрыто 8 приложений: Dodo Pizza, Drinkit, Menusa и курьерское приложение.
- Все в одном месте: какое приложение, какая платформа, какая версия упала и что за ошибка.
Когда нет готовой интеграции — приходится писать свою.
В следующий раз расскажу, как я готовил технический дашборд в Grafana и собирал свой Crash-Free дашборд для всех наших приложений, потому что у Crashlytics нет API.
👍7🔥6
Про внутреннюю конкуренцию
В 2020 году в Dodo Brands у нас было три продукта:
• Dodo Pizza — зрелый бизнес
• Drinkit — новый кофейный стартап
• Doner 42 — ещё один стартап
И между ними постепенно возникла естественная конкуренция.
Не корпоративная — а здоровая, живая и творческая.
Любимый пример — комбо.
В 2021 году мы в Doner 42 запускали комбо и разобрали все решения, какие были на рынке:
• конкурентов
• зарубежные аналоги
• и, конечно же, старшего брата — Dodo Pizza
На основе этого микса родилось решение, которое мы считали самым удобным на тот момент —
простым, интуитивным, без лишних шагов. Для донера оно подходило идеально.
Спустя годы в Dodo Pizza решили полностью обновить раздел комбо.
И задача была уже другая:
• не просто сделать лучше, чем было
• а сделать лучше, чем у всех
• при этом учесть специфику пиццы, где вариаций и кастомизаций в десятки раз больше
И, конечно, решение донера не подошло бы.
Получилось свежее, современное и сильное решение.
Сейчас такую же задачу решает Drinkit.
Команда проектирует комбо «с чистого листа» — смотрит на весь рынок,
учитывает специфику напитков и пытается сделать своё, уникальное.
И я уверен: у них получится версия, на которую потом будут смотреть уже другие команды.
И это дает эффект, которого невозможно добиться, если сделать одно универсальное решение для всех.
Что это даёт:
• каждая итерация делает продукт лучше
• каждая команда привносит свой стиль и своё понимание «удобно»
• каждая внутренняя конкуренция поднимает планку
• никто не застревает в иллюзии «мы и так лучшие»
• команды двигаются быстрее
• разные подходы рождают сильные решения
• создает дружеское соревнование, которое вдохновляет
Совсем свежий пример:
Сегодня остались два проекта — Drinkit и Dodo Pizza. Обе команды сделали Live Updates, про которое я писал выше. И снова наблюдаю знакомую картину:
• одна команда выкатывает решение
• вторая выкатывает другое
• потом подсматривают друг у друга и делает еще лучше
Это тот случай, когда win-win — не просто слова
Простой вывод:
Когда внутри компании несколько команд решают одну и ту же задачу по-разному, рождаются не компромиссы, а самые лучшие решения.
И мой совет на последок:
• Не убивайте конкуренцию ради унификации — универсальное часто оказывается средним решением.
• Не бойтесь разных подходов в одной компании.
• Подсматривайте лучшие идеи друг у друга — в этом сила.
• Поощряйте здоровое соревнование — оно делает лучше всех.
Однажды расскажу и про обратную сторону — когда важно не конкурировать, а собраться и сделать одно общее сильное решение.
Главное, выбрать подход под задачу.
В 2020 году в Dodo Brands у нас было три продукта:
• Dodo Pizza — зрелый бизнес
• Drinkit — новый кофейный стартап
• Doner 42 — ещё один стартап
И между ними постепенно возникла естественная конкуренция.
Не корпоративная — а здоровая, живая и творческая.
Любимый пример — комбо.
В 2021 году мы в Doner 42 запускали комбо и разобрали все решения, какие были на рынке:
• конкурентов
• зарубежные аналоги
• и, конечно же, старшего брата — Dodo Pizza
На основе этого микса родилось решение, которое мы считали самым удобным на тот момент —
простым, интуитивным, без лишних шагов. Для донера оно подходило идеально.
Спустя годы в Dodo Pizza решили полностью обновить раздел комбо.
И задача была уже другая:
• не просто сделать лучше, чем было
• а сделать лучше, чем у всех
• при этом учесть специфику пиццы, где вариаций и кастомизаций в десятки раз больше
И, конечно, решение донера не подошло бы.
Получилось свежее, современное и сильное решение.
Сейчас такую же задачу решает Drinkit.
Команда проектирует комбо «с чистого листа» — смотрит на весь рынок,
учитывает специфику напитков и пытается сделать своё, уникальное.
И я уверен: у них получится версия, на которую потом будут смотреть уже другие команды.
И это дает эффект, которого невозможно добиться, если сделать одно универсальное решение для всех.
Что это даёт:
• каждая итерация делает продукт лучше
• каждая команда привносит свой стиль и своё понимание «удобно»
• каждая внутренняя конкуренция поднимает планку
• никто не застревает в иллюзии «мы и так лучшие»
• команды двигаются быстрее
• разные подходы рождают сильные решения
• создает дружеское соревнование, которое вдохновляет
Совсем свежий пример:
Сегодня остались два проекта — Drinkit и Dodo Pizza. Обе команды сделали Live Updates, про которое я писал выше. И снова наблюдаю знакомую картину:
• одна команда выкатывает решение
• вторая выкатывает другое
• потом подсматривают друг у друга и делает еще лучше
Это тот случай, когда win-win — не просто слова
Простой вывод:
Когда внутри компании несколько команд решают одну и ту же задачу по-разному, рождаются не компромиссы, а самые лучшие решения.
И мой совет на последок:
• Не убивайте конкуренцию ради унификации — универсальное часто оказывается средним решением.
• Не бойтесь разных подходов в одной компании.
• Подсматривайте лучшие идеи друг у друга — в этом сила.
• Поощряйте здоровое соревнование — оно делает лучше всех.
Однажды расскажу и про обратную сторону — когда важно не конкурировать, а собраться и сделать одно общее сильное решение.
Главное, выбрать подход под задачу.
1🔥15👍6💯4
Макс Качинкин — Android Lead в Drinkit
Запустил мини-серию постов про шейдеры на Android.
Разобрал базу AGSL, показал, чем он удобнее GLSL, и собрал простой красный фильтр за 3 строки.
Сергей Запухляк — iOS разработчик в Drinkit
Рассказал про запуск «Подарка другу» на iOS и про новую реферальную программу.
Борис Лысиков — QA Lead в Dodo Pizza
Показал, как сделали AI-ревью тест-кейсов на Gemini.
Скрипт сам проверяет кейсы, оставляет комментарии и экономит время регресса.
Сергей Орлов — Android разработчик в Dodo Pizza
Рассказал, как реализовали Live Updates на Android и как это работает внутри.
Женя Бондарев — Android разработчик в Dodo Pizza
Поделился своим путём в геймдев: от хаоса идей до структурированного ТЗ.
Выпустил первый девлог собственной RTS.
Лёша Березка — iOS Lead в Dodo Pizza
Рассказал, зачем хранит все скриншоты с 2013 года.
Архив как машина времени: эволюция дизайна, баги и этапы разработки.
Никита Белкин - DS дизайнер в Dodo Pizza
Продолжает рассказывать про нашу дизайн-систему в пицце
Борис Герн — AI Lead в Dodo Brands
Поделился запуском первого AI-агента по данным — Blender.
Показывает выручку, заказы и чек прямо в Loop.
Сергей Мекрюков — Head of Design в Dodo Brands
Подвёл итоги года по найму дизайнеров: чего не хватило кандидатам и что помогает пройти.
Паша Притчин — CTO Dodo Brands
Разобрал алгоритм, как правильно работать с обратной связью «через одного» и когда подключаться руководителю.
Дима Павлов — Deputy CIO в Dodo Brands
Рассказал, почему умение управлять людьми — недооценённый навык.
Все учат языки и фреймворки, но наверху оказываются те, кто умеет растить лидеров.
И подготовил для вас ссылку на все наши каналы, чтобы вы не пропустили важные новости 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤9🔥7
Forwarded from Dodo Engineering
Приложением года в App Store стало Tiimo — новый формат ToDo-планировщика. Head of Mobile Георгий Шагинян объясняет, что в нём интересного и почему это решение не случайно:
Многие удивились выбору: на первый взгляд это обычный список задач, местами даже перегруженный текстом и визуальными элементами. Кажется, что нет ничего «революционного».
Здесь важен контекст:
Во многих странах тема доступности всё ещё остаётся на периферии. Приложения, адаптированные под людей с когнитивными особенностями, ограничениями внимания, моторики или зрения, у нас пока не стали нормой. Чаще их воспринимают как редкое исключение, а не как часть базового качества продукта.
На глобальном рынке ситуация другая:
Apple традиционно уделяет особое внимание доступности и последовательно продвигает продукты, которые создают инклюзивный опыт. Для компании доступность — не «фича», а признак зрелости дизайна и инженерной культуры.
Этот контекст хорошо знаком нам в Додо:
Мы много лет относимся к доступности с таким же вниманием:
• Dynamic Type — обязательная часть проектирования интерфейсов в нашей дизайн-системе.
• Приложением можно пользоваться с VoiceOver, и незрячий человек способен оформить заказ без затруднений.
• Бывший Head of Mobile в Додо, Михаил Рубанов, написал целую книгу о доступности.
И именно поэтому выбор Apple становится понятным.
Tiimo — приложение, созданное для людей с СДВГ и нейроотличиями — стало App of the Year. Оно решает не задачу «управления списком дел», а проблему повседневной жизни тех, кому стандартные ToDo-приложения не подходят.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4🔥3
Дайджест тг-постов в Додо за прошедшую неделю.
Дима Максимов — Android разработчик
Разобрал Baseline Profiles и Startup Profiles.
Показал, как включить Startup Profiles, зачем они нужны и почему Google обещает +15–30% к скорости старта.
Все вместе ждём данные с продакшена, чтобы сверить эффект.
Макс Качинкин — Android Lead
Показал первые фото с DevFest Istanbul 2025 — крупнейшего DevFest в Турции.
Уже пообщался с Google и Netflix.
Ну и выступление Макса, разумеется, было самым лучшим🔥
Никита Белкин — DS дизайнер
Выпустил новый разбор дизайн-системы.
Показал, как автоматизирует токены из Figma на iOS и Android.
Сергей Орлов — Android разработчик
Начал делать ActiveTrend — трекер питания и активности.
Фокус на привычках, минимуме цифр и простом UX.
Женя Бондарев — Android разработчик
Продолжает рассказывать как делает свою игру.
Показал тизер нового ролика: Blender, AI-инструменты и ранние рендеры.
Поделился, почему 3D-генераторы пока не подходят для реальных игр, и как Firefly спас по звуку.
Аня Горохова — концепт-дизайнер
Выступила на Sber Design Meetup.
Разобрала, как делать концепты, что такое ДНК бренда и почему эмоции важны в дизайне.
Дени Егалуев — iOS разработчик
Запустил канал, поделился опытом миграции на Swift Sharing, который длился 4 месяца и разобрал ключевые нюансы.
Лёша Березка — iOS Lead
Рассказал, как ускоряем тесты на CI через параллелизм.
Разобрал нюансы UI- и unit-тестов, использование --only-testing, merge .xcresult и матрицу GitHub Actions.
Борис Лысиков — QA Lead
Показал, как настроить выборочный запуск iOS-тестов из TestOps.
Разобрал связку TestOps → CI → xcodebuild, нюансы -only-testing и готовый workflow.
Полезно при рефакторинге, регрессе и приёмке фич.
Дима Карпов — Lead Product Owner в B2B
Рассказал, что сделали с валом обращений по AI-фоткам пицц.
Укрепили ручную модерацию, обучили поддержку, прокачали скоринг.
Модели для детекции — дорогие и неточные, поэтому упор сделали в процессы и антифрод.
Женя Пятков — фронтенд разработчик
Разобрал, почему Claude Opus 4.5 — лучшая модель для написания кода.
Пояснил разницу между tool-call и computer-use.
Сделал прогноз: Anthropic может возглавить AI-гонку в 2026.
#godigest #drinkit #dodopizza #goshamobile
Напоминаю, что у нас есть ссылка для подписки оптом
Прошлый дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤1
Общее состояние мобильных приложений в 🔠 🔠 🔠 🔠 🔠 🔠 🔠
Одно из самых важных для мобильной команды — видеть текущее состояние приложений.
Понимать, что там с краш-фри, как долго запускаются приложения и где начинаются проблемы.
Когда приложений много, задача усложняется.
У нас — несколько мобильных продуктов, по две платформы на каждый, и того больше шести приложений, за которыми нужно следить регулярно.
На рынке основной инструмент для отслеживания мобильных метрик — Firebase.
Мы тоже активно им пользуемся, но при масштабе появляются трудности:
- нужно прыгать по разным дашбордам Firebase
- нет общей картины по продуктам
- сложно смотреть состояние на уровне всей компании
В Додо основным инструментом мониторинга является Grafana.
Значит, логичное решение — собрать в ней единый дашборд, который объединяет все важные мобильные метрики.
Мы начали его собирать.
Первые две метрики, которые туда добавили — краш-фри и скорость старта приложений.
0️⃣ Firebase не имеет API
Поэтому любые данные можно получить только через экспорт в BigQuery.
Это ключевой шаг, без которого ничего не заработает.
1️⃣ Скорость запуска
Тут всё довольно просто, так как в Пицце и Дринките уже были кастомные трейсы для измерения старта.
Если вы захотите повторить, порядок действий такой:
0. Добавить кастомные трейсы в Firebase Performance для измерения скорости запуска приложения.
1. Включить интеграцию Firebase → BigQuery.
2. Включить экспорт Performance Monitoring и Crashlytics.
3. Установить BigQuery Plugin в Grafana
4. Добавить BigQuery DataSource в Grafana (нужен service account с правами на чтение).
5. Использовать SQL-запросы для получения статистики.
Пример запроса за последние 7 дней:
Теперь скорость запуска подтягивается в единую панель Grafana.
2️⃣ Crash Free
Crash Free — это процент пользователей или сессий, которые не столкнулись с падениями приложения.
В идеале это должно быть 100%.
На практике такого не бывает — разве что в собственных пет-проектах с одним пользователем 🙂
Мы считаем crash-free по пользователям.
Раз Firebase уже экспортируется в BigQuery, достаточно поменять таблицу на firebase_crashlytics и забрать нужные данные.
2.1. Забираем критичные краши
В Crashlytics нам нужны только is_fatal = TRUE.
2.2. Забираем количество пользователей
Эти данные мы берём из внутренней аналитики, а не из Firebase — так дешевле, потому что BigQuery берёт деньги за чтение данных: цены тут
2.3. Считаем Crash Free
Дальше остаётся визуализировать эти данные в Grafana:
SLA-линии, алерты, тренды, сравнение платформ.
Итог
Сейчас в дашборде уже есть 4 приложения: два от Пиццы и два от Дринкита.
В планах:
- добавить остальные продукты
- перенести метрики скорости запуска в нашу внутреннюю аналитику (чтобы отказаться от Firebase Performance и снизить косты)
- подумать над альтернативой Crashlytics — если у вас есть опыт, делитесь
Одно из самых важных для мобильной команды — видеть текущее состояние приложений.
Понимать, что там с краш-фри, как долго запускаются приложения и где начинаются проблемы.
Когда приложений много, задача усложняется.
У нас — несколько мобильных продуктов, по две платформы на каждый, и того больше шести приложений, за которыми нужно следить регулярно.
На рынке основной инструмент для отслеживания мобильных метрик — Firebase.
Мы тоже активно им пользуемся, но при масштабе появляются трудности:
- нужно прыгать по разным дашбордам Firebase
- нет общей картины по продуктам
- сложно смотреть состояние на уровне всей компании
В Додо основным инструментом мониторинга является Grafana.
Значит, логичное решение — собрать в ней единый дашборд, который объединяет все важные мобильные метрики.
Мы начали его собирать.
Первые две метрики, которые туда добавили — краш-фри и скорость старта приложений.
Поэтому любые данные можно получить только через экспорт в BigQuery.
Это ключевой шаг, без которого ничего не заработает.
Тут всё довольно просто, так как в Пицце и Дринките уже были кастомные трейсы для измерения старта.
Если вы захотите повторить, порядок действий такой:
0. Добавить кастомные трейсы в Firebase Performance для измерения скорости запуска приложения.
1. Включить интеграцию Firebase → BigQuery.
2. Включить экспорт Performance Monitoring и Crashlytics.
3. Установить BigQuery Plugin в Grafana
4. Добавить BigQuery DataSource в Grafana (нужен service account с правами на чтение).
5. Использовать SQL-запросы для получения статистики.
Пример запроса за последние 7 дней:
SELECT
_PARTITIONDATE AS day,
ROUND(APPROX_QUANTILES(trace_info.duration_us, 100)[OFFSET(50)] / 1e6, 2) AS p50,
ROUND(APPROX_QUANTILES(trace_info.duration_us, 100)[OFFSET(90)] / 1e6, 2) AS p90
FROM
`[project].firebase_performance.[app_bundle_id]`
WHERE
_PARTITIONDATE BETWEEN DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AND CURRENT_DATE()
AND event_name = "cold_startup_menu_shown"
GROUP BY day
ORDER BY day
Теперь скорость запуска подтягивается в единую панель Grafana.
Crash Free — это процент пользователей или сессий, которые не столкнулись с падениями приложения.
В идеале это должно быть 100%.
На практике такого не бывает — разве что в собственных пет-проектах с одним пользователем 🙂
Мы считаем crash-free по пользователям.
Раз Firebase уже экспортируется в BigQuery, достаточно поменять таблицу на firebase_crashlytics и забрать нужные данные.
2.1. Забираем критичные краши
В Crashlytics нам нужны только is_fatal = TRUE.
DECLARE days_back INT64 DEFAULT 7;
SELECT
COUNT(DISTINCT COALESCE(user.id, installation_uuid)) AS users_with_crash
FROM
`[project].firebase_crashlytics.[app_bundle_id]`
WHERE
TIMESTAMP_TRUNC(event_timestamp, DAY) >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL days_back DAY)
AND is_fatal IS TRUE;
2.2. Забираем количество пользователей
Эти данные мы берём из внутренней аналитики, а не из Firebase — так дешевле, потому что BigQuery берёт деньги за чтение данных: цены тут
2.3. Считаем Crash Free
Crash Rate = critical_crashes / total_users
Crash Free = 1 − Crash Rate
Дальше остаётся визуализировать эти данные в Grafana:
SLA-линии, алерты, тренды, сравнение платформ.
Итог
Сейчас в дашборде уже есть 4 приложения: два от Пиццы и два от Дринкита.
В планах:
- добавить остальные продукты
- перенести метрики скорости запуска в нашу внутреннюю аналитику (чтобы отказаться от Firebase Performance и снизить косты)
- подумать над альтернативой Crashlytics — если у вас есть опыт, делитесь
P.S. Как бонус мы добавили туда покрытие автотестами в регрессе.
Зачем это нужно — расскажу в следующий раз.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥4
Media is too big
VIEW IN TELEGRAM
Смотреть со звуком!
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥10👏4