Слушая доклады на IT-конференции, можно не только узнать много конкретной информации из каждого, но и увидеть более общую картину: вместе доклады говорят о том, чем в данный момент живёт и интересуется индустрия.
В Петербурге на прошлой неделе состоялся Mobius 2017 — как прошло мероприятие, и какие общие выводы о мобильной разработке в 2017-м можно сделать по рассказанному там?
У конференции было сразу несколько отличий от прошлогодней. Во-первых, она впервые проходила в течение двух дней, а не одного. Цель «ровно вдвое больше докладов» мы при этом не ставили: предпочли этому длинные перерывы, помогавшие как следует попытать вопросами спикеров после их выступлений, и зрители активно пользовались этой возможностью.
Во-вторых, в этот раз оказался неожиданно большим географический разброс аудитории. Если немного упростить, то только треть зрителей на конференции была непосредственно из Петербурга, ещё треть — из Москвы, а оставшаяся треть — из регионов. И неожиданной деталью стало присутствие нескольких человек из Японии, решивших совместить посещение России с посещением конференции (поскольку из трёх параллельно идущих докладов почти всегда один был англоязычным, даже без знания русского они не скучали).
В-третьих, изменилась онлайн-трансляция: длинные перерывы дают присутствующим на конференции возможность как следует пообщаться, а что делать зрителям трансляции? Для них в перерывах делали включения из фойе и интервью со спикерами. Напомним, во второй день конференции трансляция одного зала (и перерывов) велась открыто на YouTube — можете сами увидеть, как всё происходило.
Открывал конференцию кейноут Михаила Самарина как раз о трендах мобильной разработки, которые он наблюдает, работая в Futurice (о работе компании мы взяли у Михаила отдельное интервью). В его выступлении упоминались многие технологии — но, кажется, наибольшее оживление в зале вызвала не какая-либо из них, а этот слайд, явно резонировавший с ощущениями многих зрителей:
После кейноута все разошлись по трём залам — и мы не станем пытаться пересказать вообще всё, что в них можно было услышать за два дня, а вместо этого перечислим главные тренды, которые можно было отметить:
React Native
Первым об этом говорил как раз Михаил Самарин. Он заметил, что React Native показал взрывной рост, и игнорировать технологию теперь невозможно, но при этом она остаётся очень спорной. По его словам, специалисты традиционной нативной разработки признают «такой скорости прототипирования мы достичь в принципе не можем» — но некоторые другие аспекты приводят их в бешенство. То, что это проект Facebook, можно назвать одновременно и благословением, и проклятием (например, Facebook может отозвать лицензию на React Native у любой компании, которая перейдёт ему дорогу). JavaScript можно назвать одновременно и благословением, и проклятием («он сейчас как Visual Basic когда-то: используется в областях, для которых не был предназначен»). Множество зависимостей… вот их, пожалуй, благословением не называют. Резюмировал тему Михаил так: «Надо обязательно пробовать, через “не хочу”».
Следом Владимир Иванов (EPAM) погружал в тему уже глубоко, с кодом и решением конкретных проблем. Возможно, в каком-то смысле даже слишком глубоко: его доклад был рассчитан в первую очередь на пробовавших технологию лично, а по вопросам после доклада можно было понять, что очень многие пока что интересуются ей теоретически. Таким зрителям мог в какой-то степени помочь последовавший доклад Дмитрия Евстратова и Даниила Калинцева, рассказывавших о своём опыте использования React Native в «Сбербанк-Технологиях».
Архитектура
На Mobius был целый ряд архитектурных докладов, у одного из которых ещё и необычная история появления. Android-разработчик Евгений Мацюк (Лаборатория Касперского), задумав доклад «Чистая архитектура», ещё в январе опубликовал на Хабре «Манифест архитектурной боли», призвав делиться своей болью в специально созданном для этого Telegram-чате. За несколько месяцев чат разросся до 700 участников, чего никто не ожидал, и породил столько дискуссий, что в получившийся совместный доклад Евгений и Александр Блинов (REDMADROBOT) смогли уместить лишь небольшую часть желаемого. Тем не менее, успели сказать многое и о «чистой архитектуре» самой по себе («многие спрашивают, можно ли убрать слой из фичи, обычно хотят убрать interactor там, где от него не видно большой пользы, но я лично за трейд-офф в пользу консистентности»), и о том, как инкрементально менять в её сторону уже существующий проект.
И дискуссии не завершились после выступления с докладом. Чат продолжает активно жить, а в холле Mobius на второй день можно было увидеть, как Мацюк и Блинов активно обсуждают архитектуру с другим спикером Фернандо Сехасом, на блог которого Мацюк в самом начале ссылался в своём «Манифесте». Круг замкнулся!
Другой «архитектурный» докладчик, Денис Неклюдов (90Seconds), тоже заведует Telegram-чатом на сотни человек — это чат подкаста «Android Dev». Причём прямо на Mobius группа спикеров с помощью Hangouts устроила выпуск этого подкаста. К сожалению, насладиться выпуском зрителям мешали проблемы со звуком — но хотя бы все причастные получали много удовольствия:
Мы спросили Дениса о том, почему сейчас все горят желанием обсуждать архитектуру, и его версия оказалась такой: «Пару лет назад на мобильных конференциях много говорили о каких-то конкретных вопросах вроде отображения картинок, а сейчас подобные вещи уже считаются решёнными проблемами. Поэтому и произошёл переход к архитектурным темам».
А у спикера Антона Кекса нашлась другая версия:
Kotlin
На прошлогоднем Mobius о Kotlin был один доклад с «вступительной» темой «Android-приложения на Kotlin: почему это хорошо», и спикер тогда был из JetBrains. В этот раз компания присутствовала на конференции как спонсор, и представители команды Kotlin охотно отвечали на вопросы о нём, но в Android-докладах уже без участия JetBrains о языке охотно говорили все подряд — причём теперь не в ознакомительном формате «есть такой язык», а разбирая конкретику.
Дэнни Пройслер рассказывал об использовании Kotlin в тестах, братья Антон и Филипп Кексы представляли Kotlin-паззлеры, у Дениса Неклюдова и Степана Гончарова в их архитектурном докладе Kotlin фигурировал как важная составляющая — и это только те случаи, где язык был вынесен прямо в название доклада, а не упоминался мимоходом.
А когда на таких докладах спрашивали «кто использует Kotlin в продакшене», поднятых рук оказывалось много, так что зрители собирались не из академического интереса. В общем, было очевидно, что за прошедший год Kotlin в Android-среде совершил громадный скачок в популярности.
Любопытно вот что. Совсем недавно был представлен проект Kotlin/Native, одной из платформ для которого является iOS. В перспективе JetBrains целятся в кроссплатформенную мобильную разработку, позволяющую писать для обеих главных платформ на одном языке и переиспользовать код (в некотором смысле конкурируя с тем же React Native). И теперь, когда в Android-мире уже очевидно получилось многого добиться, возникает новый челлендж для компании: удастся ли ей сделать так, чтобы на будущих Mobius о языке говорили применительно не только к одной платформе?
Swift
Хотя аналогия «Kotlin для Android — это как Swift для iOS» не вполне корректная, избежать их сравнений сложно. Пока в Android всё чаще используют первый язык, в iOS-мире по-настоящему размахнулся второй, и конференция наглядно это отражала. Как и в случае с Kotlin, если на предыдущем Mobius о языке был один доклад («Advanced Swift Generics — перейдем на T»), то в этот раз — целых три: о перформансе, тестируемости и использовании Swift для скриптов.
Когда год назад перед предыдущим Mobius мы спрашивали нескольких спикеров, как обстоят дела с переходом на Swift в их компаниях и что они посоветуют другим, в ответах было много осторожности: «есть как преимущества, так и недостатки», «если новый проект очень крупный и долгоиграющий — лично я все еще склоняюсь к Objective-C». Теперь же её как не бывало: когда в онлайн-трансляции мы спрашивали iOS-спикеров «есть ли смысл в 2017-м начинать новый проект на Objective-C», им в голову приходили только специфические случаи (например, когда всё завязано на интероп с C++).
Правда, Игорь Кашкута (Badoo), год назад сказавший нам «версия 3.0 будет по-настоящему нормальной версией 1.0», скорректировал свой прогноз: поскольку в Apple с тех пор изменили планы и отложили ABI stability до 4.0, теперь Игорь считает, что «версия 4.0 будет по-настоящему нормальной версией 1.0». Надо будет не забыть уточнить его позицию через год на Mobius 2018!
А в докладе Николая Лихогруда из «Яндекса», рассказывавшего об оптимизации времени загрузки iOS-приложений, было отмечено: пока Swift не стабилизировался полностью и не стал частью iOS, он несколько увеличивает время загрузки по сравнению с Objective-C. Вряд ли разница станет для многих критичной, но момент любопытный и неочевидный.
Помимо трендов
Были и выступления, которые не встраивались в какую-то большую тенденцию, но оказывались интересными из-за того, что смотрели на мобильную разработку через призму своей специфики. Например, Филипп Кекс (Creative Mobile), занимающийся играми, рассказывал, почему рекламные заявления о «производительности новых смартфонов на уровне приставок» не соответствуют действительности. Измерив стандартную продолжительность игровой сессии, оценив вероятность перегрева и определив, насколько можно нагружать устройство, в Creative Mobile пришли к неожиданному выводу: если бы в новые смартфоны вроде Galaxy S8 поставили менее мощные компоненты, то на практике выжать из них можно было бы дальше больше. Перегрев актуален не только для игр: Александр Коршак рассказывал на Mobius о 360-градусном видео и VR, и ранее он говорил нам в интервью, что там этот вопрос тоже очень болезненный.
И завершало конференцию выступление, в котором на мобильную разработку смотрели тоже с другого ракурса. Йонатан Левин (KolGene) — и разработчик, и стартапер, поэтому видит ситуацию с двух перспектив: и технологической, и продуктовой. И если первый его доклад на Mobius 2017 был о происходящем внутри Android-платформы, то закрывающий кейноут «Как сделать из вашего приложения продукт» — о происходящем снаружи. Много смеха в зале вызвала фраза Йонатана, саркастично показывающая отрыв первого от второго:
«Вы долго и старательно делаете приложение, наконец выкладываете в магазин, а его никто не устанавливает. И вы думаете: как же так, почему не хотят, там же RxJava!»
Действительно, слушая два дня подряд про технологии вроде той же RxJava, за кучей полезной информации можно забыть о том, что волнует конечного пользователя. А в такой ориентированной на массового пользователя индустрии, как мобильная разработка, особенно важно не забывать: в конечном счёте все технологические тренды для людей, а не люди для трендов.
Поделиться с друзьями
aquamakc
Видео с конференции на ютубе когда ожидать?
23derevo
в июне по-тихоньку начнем публиковать.