Приложение приложению рознь: есть такие, которыми пользуются время от времени, а есть такие, за которыми миллионы людей проводят много времени ежедневно, устанавливая их на новый смартфон первым делом.

Приложение «ВКонтакте» из вторых, поэтому интересно заглянуть внутрь и понять, кто над ним работает и как. Мы взяли у iOS-разработчика Алексея Савина небольшое интервью, спросив и об особенностях работы, и о жизни.

— Чем именно ты занимаешься?
— Последние три года я работаю iOS-разработчиком ВКонтакте. Занимаюсь задачами, связанными с мультимедиа: видео и онлайн-трансляции.

— А чем занимался до того, с чего начиналась твоя карьера в ИТ?
— Как и у многих, она начиналась с того, что на первом курсе я пытался немного фрилансить: верстал странички для интернет-магазинов. Потом мы с друзьями пробовали делать своё мобильное приложение. Оно называлось «9 мая». По сути, это была карта города, на которой отмечались точки, связанные с ВОВ, и можно было прочитать про каждую из них. Это был первый успех — приложение заметили, оно оказывалось во всяких тематических подборках.

Потом я постепенно перешёл работать полностью в аутсорс на мобильные приложения. А три года назад пришёл в ВК.

— А как пришёл конкретно к iOS-разработке — с покупкой iPhone?
— Тогда у меня ещё даже не было iPhone. Я был на втором курсе, это были времена iOS 6, я купил себе Mac, и захотелось попробовать. Это было модно, было на слуху, мне стало интересно, каково это — написать мобильное приложение, а так как появился Mac, выбор платформы напрашивался. Впрочем, Android я тоже попробовал примерно в это же время (в рамках университетского курса по Java). Но в сравнении iOS мне понравилась больше.

— Недавно мы расспрашивали iOS-разработчиков о эппловской презентации, тебя тоже спросим: какой сейчас телефон, и захотелось ли после презентации сменить?
— Сейчас iPhone X, переезжать на новый пока не планирую, обычно это делаю раз в два года. В следующем году, наверное, возьму следующий.

— А что думаешь про iOS 12?
— То, что релиз был про стабильность, безусловно, радует. После обновления чувствуется, что пропало большое количество каких-то раздражающих мелких багов. То есть решили взять перерыв на год, чтобы улучшить стабильность, и, кажется, получилось здорово.

— Переходя к теме приложения ВК: а много ли у вас возникло работы в связи с выходом iOS 12?
— Как ни странно, в этой версии было всего несколько мелких багов. Чтобы поддержать iOS 12, не понадобилось основательно что-то менять. В прошлый раз было куда больше работы, там мы потратили не одну неделю.

— Приложения ВК хорошо известны, а вот кто их делает — куда менее известно. Скажи, какая у вас мобильная команда, сколько человек и как она устроена?
— Сейчас iOS-разработчиков 18 человек. Они состоят в разных продуктовых командах: есть команда, которая занимается медиа, есть команда мессенджера, есть инфраструктурная команда, которая реализует какие-то общие решения, используемые другими командами. В командах есть мобильные разработчики для обеих платформ (2-3 человека у каждой), есть бэкенд-разработчики — в общем, получается full stack, который полностью покрывает собственные задачи. Мы регулярно синхронизируемся в рамках платформы между командами, чтобы обмениваться новостями и знаниями.

— У вас гигантское количество пользователей, каким образом это влияет на разработку?
— Любая ситуация, которую ты считаешь маловероятной и не учитываешь, обязательно себя проявит, причём сразу на тысячах пользователей. Краш на десятках тысячах человек — это страшно и непривычно, но развивает огромный уровень ответственности.

— Откуда приходят идеи для фич, и что с идеей происходит от момента её одобрения до выхода в App Store? Каким образом происходит разработка этого всего?
— У каждой продуктовой команды есть ключевые показатели, на которые она ориентируется. Например, если брать прямые трансляции, то это количество создаваемых в месяц трансляций и число их просмотров. При обсуждении фичи мы определяем, как она повлияет на значимые для нас метрики. Только после этого принимаем решение, будем ли мы её делать. Дальше процесс довольно стандартный. Мы заносим её в наш план на ближайшее свободное время. Если это какая-то крутая идея, и хочется её сделать побыстрее, можно что-то подвинуть. Дальше формируем документацию: что нужно по дизайну, что нужно по API. После этого начинаем делать.

— Насколько понимаю, у вас есть release train, можешь поподробнее рассказать?
— Приложение релизится каждые две недели. Каждая команда должна в начале недели сказать, что она планирует добавить в этот релиз. За пять дней до релиза — feature freeze, когда больше уже нельзя добавлять ничего нового, и если кто-то не успел залить свои изменения, то они в этот релиз не попадут.

— А как этот процесс выглядит технически, что с code review и CI?
— У нас есть код ревью, есть CI. И на каждый коммит у нас появляется сборка и распространяется внутри сотрудников Дома Зингера — всего их порядка 200 человек. Все сотрудники у нас уже привыкли пользоваться тестовыми сборками приложения. Идея заключается в том, что в сборки для сотрудников не должно попадать ничего не протестированного и не проверенного. Если что-то заливается в Dev, то разработчик предполагает, что фича полностью готова: она прошла тестирование, и сотрудники могут пользоваться, это нормальная стабильная версия.

Благодаря этому мы получаем реальный фидбэк от пользователей, которые в течение двух недель между release train пользуются этой сборкой чуть ли не круглосуточно. Таким образом, мы можем сформировать обратную связь.

— У вас нетипичное приложение (далеко не каждый разработчик занимается крупной соцсетью), причём существующее далеко не первый год. Можешь ли рассказать, сколько там строчек кода, и насколько сложно с ним работать?
— Сколько строчек кода, с ходу не скажу. Но то, что проекту много лет, сказывается: немало легаси-кода, есть места, в которых до сих пор осталось MRC. А ещё практически все решения самописные: внешних зависимостей практически нет. У приложения достаточно высокий порог вхождения, в том числе из-за этого.

— С таким порогом сколько времени занимает процесс онбординга для новых разработчиков?
— Все новые разработчики первоначально попадают в команду инфраструктуры, перед тем, как они присоединятся к одной из остальных команд. Можно здесь же и остаться. Там они проводят полтора-два месяца — наверное, это и есть «период адаптации», в рамках которого они знакомятся с приложением и делают какие-то небольшие задачи, которые не зааффектят что-то.

— Ты выступишь у нас на Mobius с докладом о видеотрансляциях на iOS. Расскажи про проект, благодаря которому возник доклад: откуда пришла идея, как это произошло?
— Проект — это то, что стало отдельным приложением VK Live. Идея пришла, когда я ещё в университете учился. Мы с друзьями тогда часто пытались делать какие-то демо-приложения, тестировать какие-то идеи, и периодически выбирали для этого модные темы. Как-то раз 1 января, после Нового года, мы подумали, что давненько мы ничего не делали, и надо бы выбрать тему. А тогда ВКонтакте проводил конкурс по мобильной разработке VK Challenge, в рамках этого конкурса был предложен ряд тем, и там были live-трансляции. Мы подумали, что ничего про них не знаем, поэтому будет интересно попробовать. В итоге за пару месяцев сделали прототип, и с этого начался VK Live.

— Очень интересная история: студенческое участие в конкурсе вылилось в то, что ты уже три года в ВК. А это единичный случай, или конкурсы систематически проводят? Есть ли у тех, кто только становится разработчиком, возможность повторить подобную историю успеха? А есть ли у вас, например, своя школа разработки?

— Различные мероприятия у нас проводятся систематически, в том числе хакатоны и чемпионаты по программированию VK Cup. Исторически проводилось много конкурсов и по дизайну, и по разработке, и я не единственный человек, попавший так в ВК. Школы разработки нет, но, например, недавно у нас проходили стажировки по машинному обучению. В дальнейшем мы планируем проводить подобные мероприятия чаще.

— Возвращаясь к VK Live: а в чём разница с конкурентами типа Перископа? Почему пользователь должен пользоваться именно вашим приложением?
— Главная разница в социальном графе. Люди, которые создают трансляции у нас, будут иметь определённых зрителей: их друзей из ВК, с которыми они постоянно общаются. Этого графа у них нет на других площадках.

— А в каком направлении движется проект сейчас?
— В сторону увеличения интерактивности. Например, это возможность добавить в ходе трансляции опрос. То есть дополнительные способы взаимодействия со зрителями.

— Когда работаешь в таком масштабном проекте, как ВК, не давит ли большой объём работы?
— Проблемы не возникает. Люди, которые у нас работают, безумно любят то, что делают, чувствуют за это ответственность и получают от этого определённый кайф. В том числе и я. Я могу запросто просидеть в офисе всю ночь и попросту не заметить этого. В тоже время у нас вполне можно соблюдать work-life balance.

— А что тебе нравится делать, помимо написания кода?
— Путешествовать.

— Какие наиболее запомнившиеся места посетил?
— Из последних — Перу. Мачу Пикчу — волшебное, очень красивое место. Необычно. Ещё очень понравился Гранд Каньон.

— Чем бы ты занимался, если бы не был iOS-разработчиком?
А: Я бы наверное, попробовал себя в машинном обучении — это то, что кажется интересным, перспективным и тем, что будет актуальным еще n-ное количество лет.

— Последний вопрос. По тому, что ты видишь, как стоит развиваться iOS-разработчику в текущих реалиях?
— Сейчас достаточно много разработчиков «заточены» под какие-то конкретные фреймворки. То есть в своей работе они использовали только крупные библиотеки от фейсбука/гугла, зачастую практически не касались нативных фреймворков, и не всегда понимают, как они работают. И мне кажется, в числе прочего важно попробовать более глубоко понять, как работают основные компоненты системы — например, тот же UIKit.

Если вас интересуют технические вопросы live-трансляций на iOS — о них Алексей подробно расскажет в Москве 8 декабря на конференции Mobius.

Комментарии (15)


  1. TonyLorencio
    01.10.2018 14:12
    +2

    Еще бы разработчики ВК вспомнили, что у них где-то лежит и пылится клиент под iPad


    1. phillennium Автор
      01.10.2018 14:25
      +2

      У меня есть ощущение, что в 2018-м сами iPad обычно где-то лежат и пылятся :) Но оно субъективное, интересно было бы посмотреть на конкретные числа вроде monthly active users.


      1. peresada
        01.10.2018 14:42
        +3

        Скорее возраст аудитории айпадов стал 3-9 лет :)


      1. Bubniv
        01.10.2018 17:53

        И мне так кажется.


      1. akademik21
        01.10.2018 18:41

        iPad’ы не пылятся, просто команда ВК почему-то решила, что проще адаптировать веб-версию ВК для айпада, а приложение разве что не удалить из App Store.


  1. virl
    02.10.2018 08:51

    А почему не спросили про его отношение к внесудебным сливам компанией данных юзеров в органы?
    Ну и почему он не уволился и не устроил забастовку в ответ на это.


    1. phillennium Автор
      02.10.2018 08:54

      Правила Хабра запрещают инициировать политические дискуссии, а тут она возникла бы неизбежно.


      1. virl
        02.10.2018 11:06

        Ну и отлично, значит это интервью было бы удалено с хабра за нарушение правил.

        Лучше так, чем самоцензура для обеления плохих компаний.


        1. peresada
          02.10.2018 11:24

          Это интервью с конкретным программистом. Интервью с человеком, который пишет код, добавляет-развивает функционал приложения. И вряд ли является участником политических терок. При чем тут вообще обеление компании?


          1. virl
            02.10.2018 11:42

            Как причем? Вон интервьювер выше признался, что самоотцензурил вопросы этому программисту о его компании, чтобы интервью было возможно опубликовать.

            А значит результат интервью не показ правды, а введение читателей в заблуждение об этой компании.


            1. peresada
              02.10.2018 11:47

              Где интервьюер выше в этом признался? То, что не были заданы какие-то вопросы, которые интересны лично вам, не говорит об обелении компании, самоцензуре и прочее. Это говорит лишь о том, что они либо не в тему, либо о них просто не подумал автор. На кой черт в чисто техническое и индивидуальное интервью пихать политические вопросы я не понимаю.

              Судя по вашей логике, теперь в любом интервью, нужно интересоваться у человека, как он относится к власти или всяким реформам? а если этот вопрос не задать — то это обеление власти и не показ правды, ведь он живет в этой стране!


              1. virl
                02.10.2018 11:53

                Они были не заданы не потому что интересны только, не потому что не в тему и не потому что автор о них не подумал. А потому что статья с ними по мнению автора противоречит правилам хабра, а о чем он и сказал выше.

                И это не индивидуальное интервью, а с программистом компании (в котором куча мероприятий компании упоминается и сама она в заголовке).

                Т.е. автор ради публикации статьи засамоцензурил важные вопросы о том, почему этот программист еще не уволился и какое вообще его (программера) личное отношение к внесудебным сливам данных его компанией в полицию.


      1. BingoBongo
        03.10.2018 15:19

        Это вот так что ли хабр запрещает политические дискуссии habr.com/post/425173?


    1. Javian
      02.10.2018 11:50

      Пользователь должен сам понимать, что ставит на свой телефон жучок. Вот только я лично не понимаю тех кто пользуется ВК и имеет там аккаунт.


      1. strcpy
        02.10.2018 21:27

        Вконтакт имеет хорошую коллекцию порно и пиратской музыки, ради этого и ставят.