«Невероятное ощущение полезности ремесла»
Почему одни приложения, ярко вспыхнув, исчезают без следа, а другие, порой созданные спонтанно, становятся магнитом для миллионов пользователей? Магия рождения популярных мобильных приложений — в интервью с Алексеем Гуриным, ведущим разработчиком решений на iOS для крупных технологических компаний (tutu.ru и др.).
О приложениях
IT: Какие три ключевых фактора делают приложение успешным с технической точки зрения?
– Продуманный адаптивный UI/UX, отзывчивость и общая скорость работы, безопасность. Дополнительно стоит отметить доступность и кроссплатформенность, которая позволяет продолжать использование сценариев на других устройствах.
IT: Что проще – создавать продукт с нуля или развивать существующее приложение? Какие здесь основные вызовы?
– При создании продукта с нуля есть возможность выбирать наиболее подходящие современные технологии, которые соответствуют требованиям продукта. Свежая кодовая база позволяет избежать технического долга и устаревших решений, не ограничивая себя существующими рамками. Однако есть и риски допустить ошибки на этапе проектирования, которые могут быть дорогостоящими в исправлении. Также усложнение возникает из-за недостатка обратной связи от пользователей.
При поддержке существующего продукта помогает наличие сформировавшейся аудитории, которая обеспечивает обратную связь и поэтапное улучшение функционала на основе пользовательского опыта.
В то же время существующий код может содержать устаревшие или неэффективные решения, которые будет сложнее изменить и реализовать новые функции – из-за ограничений текущей архитектуры приложения.
IT: Как изменился процесс разработки мобильных приложений за последние годы? Можно ли создать успешное приложение в одиночку, без опоры на потенциал крупных компаний?
– Повсеместное распространение AI инструментов и нововведения в классических средствах разработки существенно снизили порог входа для новых разработчиков и значительно увеличили эффективность опытных. Встречаются случаи, когда люди практически без опыта кодинга создавали мобильные приложения и запускали их с последующим получением прибыли, поэтому да – в одиночку возможно создавать приложения, с поправкой на масштаб и сложность.
О технических решениях в крупных проектах
IT: Как проходил процесс обновления приложения tutu.ru? С какими вызовами пришлось столкнуться?
- Приложение довольно давно на рынке, поэтому успела сформироваться большая кодовая база, которую сложно поддерживать полностью в актуальном состоянии. Для улучшения ситуации ведутся регулярные техспринты, где мы стараемся по максимуму решить задачи из технического беклога, который составляется по мере работы над продуктовыми задачами и приложением в целом.
Также сложным этапом в обновлении стало внедрение новой дизайн-системы, для чего потребовалось наладить коммуникацию разных команд от разных платформ, чтобы получить возможность собирать экраны из компонентов подобно конструктору, быстро и эффективно, сохраняя общий стиль и консистентность.
IT: Когда у вас уже миллионы пользователей, любые изменения могут иметь серьезные последствия. Как вы подходите к внедрению нового функционала в таком масштабе?
– Перед началом разработки зачастую проводятся исследования пользовательского опыта, а после релиза применяется АБ тестирование для анализа успешности получившегося решения. Например, новая поисковая форма и календарь пережили целых три итерации во время АБ тестирования, прежде чем мы увидели улучшение метрик.
IT: Насколько важна скорость разработки новых функций в сравнении со стабильностью приложения? Как вы находите баланс?
– Стабильность является приоритетом, однако важно сохранять темпы обновлений, поэтому используются Agile-методологии. Они позволяют быстро адаптироваться к изменяющимся требованиям, не снижая качества приложения. Внедрение автоматизированного тестирования приложения дает возможность быстрее вносить изменения и добавлять новые функции, минимизируя количество ошибок. Применение инструментов мониторинга для отслеживания стабильности приложения в реальном времени позволяет быстро реагировать на проблемы, возникающие после добавления новых функций.
О личном опыте и подходах
IT: Как вы стали мобильным разработчиком? Что привлекло именно в iOS-разработке?
– Меня изначально интересовала идея нативной разработки приложений с пользовательским интерфейсом. В самом начале карьеры я занимался десктопными приложениями, а переход в мобильную часть стал закономерным развитием. При использовании устройств Apple возникло желание оказаться по ту сторону «магии», которая вовлекает пользователей и делает экспириенс в пользовании приложениями таким приятным и эффективным.
IT: Был ли в вашей практике особо запомнившийся технический вызов? Как его удалось решить?
– Пожалуй, это создание механизма интеграции и кеширования внешних модулей в систему backend driven UI… Первая итерация вышла не очень удачной, и только после продолжительного тестирования получилось существенно доработать решение, избавившись от ошибок и некорректного обновления модулей.
Перед непосредственным решением сложной задачи добавляется этап проектирования архитектуры, где зачастую меня выручает рисование диаграмм с расположением взаимодействующих компонентов.
IT: Что больше всего вдохновляет в мобильной разработке сегодня?
– Возможность видеть результат своей работы непосредственно на своем устройстве: это создает невероятное ощущение полезности ремесла, как будто ты выковал меч, которым можешь сам пользоваться.
И вдохновляет тот факт, что благодаря современным технологиям результаты работы могут использовать и извлекать пользу миллионы людей, ведь у большинства есть смартфоны.
О будущем мобильной разработки
IT: Какие тренды в iOS-разработке кажутся вам наиболее перспективными?
– Повсеместное внедрение AI инструментов, увеличение доли SwiftUI в проектах, переход на Swift Package Manager.
IT: Что бы посоветовали тем, кто сейчас начинает путь в iOS-разработке? На что стоит обратить особое внимание?
– Можно смело начинать создавать приложения с помощью SwiftUI, но при этом нужно уделить время изучению UIKit, так как это устоявшийся стандартный мощный инструмент. Важно научиться декомпозировать проект с помощью модуляризации. Также стоит освоить основы дизайна пользовательского интерфейса и опыта пользователя и обратить внимание на рекомендации Apple по дизайну и стандарты Human Interface Guidelines.
IT: Каким вы видите будущее мобильной разработки в целом? Какие изменения в данной сфере стоит ждать в ближайшие годы?
– Прежде всего, это рост значения AI в разработке для улучшения процесса написания кода, тестирования и отладки приложений. Возможность интеграции кросс-платформенных решений в нативные приложения без потери производительности. Применение новых подходов к дизайну включая персонализацию интерфейсов на основе данных о пользователях и как следствие ужесточение стандартов безопасности и конфиденциальности, что потребует от разработчиков внедрять более строгие меры по защите своих пользователей. Нет сомнений, что увеличится взаимодействие мобильных приложений с устройствами IoT, что позволит нам управлять умными домами, автомобилями, другими устройствами через свои смартфоны.
IT: Спасибо!
Беседовал Евгений АФАНАСЬЕВ