Всем привет, меня зовут Семен, я iOS-разработчик в Ситимобиле. 🙋‍♂️ Недавно мы провели внутренний хакатон для iOS-разработчиков. Расскажу, зачем мы это сделали, как всё прошло и что получилось.  Для тех, кто не знает, хакатон — это офлайн-встреча, на которой разработчики, дизайнеры, продакт-менеджеры и другие специалисты за короткий промежуток времени (обычно 48 часов) создают MVP проекта на заданную тему. У нас в Ситимобиле как раз витали в воздухе продуктовые идеи, для которых не находилось ресурсов в рабочее время. Опыта проведения хакатона в компании ещё не было, но многие хотели попробовать. К тому же выходила iOS 15, для которой можно было сделать различные платформенные фичи. Стечение всех этих обстоятельств и привело нас к тому, что мы организовали внутренний хакатон для iOS разработчиков. Конверсия в участие была не такая высокая, как хотелось бы, но тем не менее откликнулось несколько iOS-разработчиков и дизайнер. Для первого раза мы решили ограничиться одним днем вместо каноничных 48 часов. Как и полагается хакатону, у нас была куча еды и призы. Изначально тема была «Новые интерфейсы заказа такси», но можно было привнести что-то своё. В качестве судей выступали наши продакт-менеджеры и техлид iOS-команды. В итоге у нас получилось три проекта от трёх команд. Первая команда оказалась адептами Apple Watch, для которых они решили разработать визуальную составляющую приложения. У ребят получился свежий прототип приложения (свежий, потому что у нас уже была однажды watchOS-версия, и она канула в небытие), в котором можно наблюдать за статусом активного заказа, а также создавать новый. Идея имеет хороший потенциал, так как популярность носимых устройств сильно возросла и приложения для них актуальны как никогда. Если несколько лет назад это было 3.5 пользователя, то с тех пор их количество выросло кратно и поддерживать такую функциональность стало целесообразно. К тому же бизнес-логика в большей степени переиспользуется, и необходимо только разобраться с визуальной составляющей. Начиная с iOS 12 Apple добавила такую замечательную фичу, как Siri Shortcuts. Благодаря голосовым командам можно ускорить различные рутинные задачи, будь то установка таймера, запуск музыки или прокладывание маршрута в навигаторе. Достаточно просто сказать «Эй, Сири, включи мою музыку». А если выполнить ряд настроек в коде, то со временем Сири обучится на данных, и начнет предлагать шорткаты на заблокированном экране, в центре уведомлений и в поиске спотлайта, ориентируясь на то, в какое время и в каком месте вы выполняете эти действия. Наша вторая команда решила изучить технологию шорткатов Сири, благодаря которым можно заказать такси голосом. Потратив несколько часов на реализацию и отладку, получился вот такой прототип. Приятный бонус — это можно использовать как на iPhone, так и на Apple Watch. Технология оказалась не такой сложной, а вау-эффект она вызывает существенный. Да и голосовой интерфейс — один из текущих трендов, который полезно поддержать.  Третья команда в лице меня реализовала аналитику по поездкам. Ранее я уже предлагал в конце года вывести статистику по поездкам для каждого клиента, о чем и сообщал коллегам из маркетинга. Но, к сожалению, на это не хватало ресурсов разработки, да и задача была низкоприоритетная, поэтому я взял инициативу в свои руки и сделал прототип фичи. Так как время было ограничено, то для своей визуальной составляющей я решил переиспользовать механизм сторизов (почитать, как я их делал, можете тут). В итоге мне оставалось просто сделать сетевой запрос на получение истории поездок за последний год, обработать полученные данные и отобразить их в формате истории. На реализацию ушло несколько часов, и, как мне кажется, получился интересный результат. Как минимум, для себя я узнал, что если выходить заранее из дома, то можно сэкономить деньги на платном ожидании. А белая Киа — это мой верный спутник в поездках.  Можно было пойти дальше и проанализировать расстояние, водителей, время и т.д. Я думаю, там тоже нашлись бы интересные идеи.  Несмотря на то, что участников было немного, для нас это был важный опыт. Мы показали, что такой формат может жить и приносить пользу компании. Показали, какие фичи можно быстро сделать, которые, возможно, дойдут до продакшена. И конечно же, разработчики смогли изучить интересные для себя технологии и реализовать свои задумки. Хотим теперь развивать культуру хакатонов внутри компании и делать их масштабнее! А это мы сидим после хакатона на крыше офиса и разговариваем о том, каково это — провести выходные в офисе, и как бороться с болью в спине после 25 лет. iOS developer