Навигация в Swift UI: что изменилось с появлением iOS 16

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

Эволюция интерфейса. Как мы сделали удобный и практичный дизайн для приложения

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

Создание инициализатора Flutter-проектов. Чисто и SOLIDно

Pet-проект или самописный инструмент помогают решить проблемы, которые возникают в разработке. На примере инициализатора Flutter-проектов рассказываем, как следует подходить к разработке собственной «тулзы» правильно: с SOLID и чистой архитектурой. Чит…

Непрерывность мобильной разработки — как это реализовано у нас

Современный мир – это постоянные вызовы. Непредвиденные ситуации, отказы, поломки всегда были спутниками любого IT-продукта. В последние несколько месяцев примерно у каждой российской компании появился риск, что какой-либо из используемых ими сервисов …

Маркеры на Google Maps во Flutter: от простого к сложному

Я — Тим, разработчик в Гудитворкс. Недавно мы делали приложение-гид по ресторанам. Нам было нужно, чтобы на карте отображалась информация о ресторанах, а пользователь мог бы отмечать понравившиеся. Я расскажу, как работать во Flutter с картами, а такж…

Accessibility в Android для чайников: адаптируем приложение для незрячих людей

В один из зимних вечеров я сидел дома, читал замечательную книжку «Android-программирование для профессионалов» и наткнулся на главу про Accessibility. Раньше я об этой теме не задумывался: клал null в поле contentDescription и жил себе спокойно. Но ко…

Почему спустя 5 лет код-ревью на Upsource мы перешли на GitLab

Наша команда мобильной разработки использовала Upsource с 2017 года: на тот момент он был одним из самых удобных инструментов для просмотра кода, комментирования и изучения правок. Мы использовали selfhosted-вариант сервиса. Однако через некоторое…

IT-забег по стране и винегрет из технологий: как прошёл «Вездекод» и что советуют участники

Завершился сезон нашего «Вездекода» — IT-марафона для дизайнеров и разработчиков. С апреля по июнь этапы забега прошли в пяти городах: Челябинске, Ульяновске, Томске, Иркутске и Владивостоке. Участники вездекодили в гибридном формате — онлайн и очно.Пя…

Как правильно поставить задачу для разработки

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

We need to go deeper: диплинки и кодогенерация

Привет! Мы написали свою систему диплинков на основе кодогенерации. В этой статье поговорим, как мы упростили работу с диплинками и смогли отловить устаревшие, добавили мониторинг и как собрали все диплинки в одной статье в конфлюенсе.Диплинк — это uri…