16 мая 2017

Mobius 2017

Мы в Noveo всегда стараемся быть в курсе последних событий и трендов и охотно участвуем в профильных конференциях, ведь это отличная возможность узнать, чем дышат коллеги из других городов,  и взглянуть на, казалось бы, привычные вещи под совсем неожиданным углом. Этой возможностью с удовольствием воспользовался наш старший iOS-разработчик и тимлид Семён, побывав на конференции Mobius для разработчиков мобильного ПО. Слово Семёну!

В конце апреля состоялась конференция мобильных разработчиков Mobius 2017. Про неё я узнал на одном из местных митапов от широко известного в российском iOS-сообществе Егора Толстого, который всячески хвалил организацию и подход к докладам на этой конференции. Тогда я решил, что и правда стоит посетить мероприятие такого рода, к тому же в этот раз конференция проходила в одном из красивейших городов России — Санкт-Петербурге. Далее хочу поделиться своими впечатлениями.

Открылась конференция обзорным докладом Михаила Самарина из европейского агентства Futurice. В своём докладе Михаил обобщил последние тренды и веяния мобильной разработки — отличная вводная, позволяющая настроиться на нужную волну на оба дня конференции. Вот некоторые из названных трендов:

    • Мобильные устройства стали основным источником цифровой информации. В США 70% online-времени люди проводят именно на мобильных устройствах. В Европе — чуть меньше, в Индонезии — 90% (http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/).
    • При выборе между качественной веб-версией ресурса и двумя мобильными приложениями (iOS+Android) заказчики выбирают приложения, даже несмотря на возрастающий бюджет. При этом основной причиной такого выбора являются не столько преимущества нативного интерфейса, сколько возможности более тесного взаимодействия с пользователем через нотификации!
    • Будущее iOS мира — однозначно за Swift. Большинство новых проектов начинаются именно на Swift, всё больше старых проектов постепенно на него переходят — такая же тенденция сложилась и в Noveo. Однако объем существующего кода на Objective-C всё равно очень большой, поэтому существует некоторый дисбаланс в квалификации разработчиков: множество опытных разработчиков по-прежнему более сильны в Objective-C.
    • Нехватка нативных разработчиков в индустрии обеспечила взрывное развитие подхода “Learn once, write anywhere” с помощью ReactNative. Однако пробуют его всё равно очень осторожно, зачастую лишь на проектах, предназначенных для внутреннего использования. JavaScript (хоть и в виде TypeScript) выступает одновременно в роли и преимущества, и недостатка. Также настораживает зависимость технологии от Facebook.
    • Возвращаясь к Swift, несмотря на любовь разработчиков и явного желания писать именно на этом языке, проблем всё равно хватает — в частности, с производительностью и обратной совместимостью. Производительности Swift-кода было посвящено несколько докладов; они будут упомянуты ниже. Но настрой у сообщества всё равно пока оптимистичный. Что ж, ждём WWDC и узнаем, разделяет ли Apple наш оптимизм!

Отмечу доклад Игоря Кашкуты из Badoo. Игорь рассказывал про организацию всего процесса разработки в iOS-отделе — как  бизнес-требования для конкретной фичи преобразуются в код, проходят всевозможные тесты и в итоге оказываются в AppStore-сборке. Вызывает уважение уровень автоматизации — вся рутина вроде слияния веток, обновления тикетов, сборка скриншотов и рассылка уведомлений происходит с помощью помощника с говорящим именем AIDA.

Автоматизация всего и вся — еще одна из ярко выраженных тенденций мобильной разработки. Всё это ради того, чтобы как можно сильнее сократить количество переключений контекста разработчика и поддерживать состояние работы в потоке. При этом даже на багфиксинг отвлекаться не стоит: в Badoo существует отдельная роль “багфиксер недели”- человек, который на неделю становится лучшим другом тестировщиков. Помимо прочего, такая практика повышает уровень совместного владения кодом, что благотворно влияет на общее качество продукта.

Из интересных спикеров  запомнился также весёлый John Sundell, который прочитал два доклада. Первый — про то, как писать тестируемый код. Из рекомендаций — использовать фреймворки, а чтобы облегчить их создание, Джон рекомендовал инструмент https://github.com/JohnSundell/SwiftPlate, который он сам и написал. С помощью SwiftPlate создание фреймворка с настроенными target-ами, podspec и прочей вспомогательной информацией сводится к одной shell-команде!

Второй доклад был про необычный подход — писать ежедневные скрипты не на привычных bash/Python/Ruby, а на Swift. Мотивация проста: если есть технология, в которой ты хорошо разбираешься, да еще и с любимыми библиотеками,  — почему бы её не использовать? И опять же, меньше переключений контекста, больше твоя личная производительность! Этому посвящен репозиторий https://github.com/JohnSundell/SwiftScripting, в котором собраны различные библиотеки и приспособления для  скриптинга.

Было два доклада про производительность Swift:

    • от Николая Лихогруда из Яндекса про оптимизацию времени запуска. Николай подробно рассказал, как можно провести замеры и выявить слабые места в своём приложении (основываясь на данных, полученных с помощью DYLD_PRINT_STATISTICS). Основные рекомендации по оптимизации — меньше swift-фреймворков, больше lazy-подхода;
    • от Marcin Krzyżanowski из PSPDFKit, создателя CryptoSwift, а рассказывал он про ежедневные возможности для оптимизации. Некоторые из них могли показаться очевидными (например, что стек работает сильно быстрее, чем куча), но всё равно напомнить о таких вещах, собрав их в одном докладе, — весьма полезно.

Через несколько месяцев видео с лекциями появятся в публичном доступе.

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

Завершить рассказ хотелось бы историей знаменитого Форта Боярд, которую рассказал Михаил Самарин, а я теперь пересказываю всем друзьям. Начиная со средневековья,  морской доступ к французскому городу Рошфор проходил через узкий залив. На берегах залива находились две батареи, однако дальности орудий не хватало, чтобы полностью перекрыть этот залив, и в теории враг всё равно мог проникнуть. В начале 19 века было решено построить форт прямо посреди залива — невероятно сложное и дорогое по тем временам сооружение. В процессе стройки французы столкнулись с техническими и финансовыми трудностями, в итоге строительство было завершено лишь через 56 лет после начала. Но оказалось, что за этот срок форт стал попросту не нужен, поскольку дальность артиллерийских орудий повысилась настолько, что береговые батареи стали полностью перекрывать морской подход к городу. В итоге следующие 150 лет форт так и стоял в полузаброшенном состоянии, пока не был выкуплен телевизионной компанией для знаменитого шоу.

Но как это относится к разработке программного обеспечения? Многие доклады связывала одна очень важная мысль: важны не те технологии, которые мы используем, а важен пользователь. Независимо от продукта, нужно очень и очень внимательно изучать свою целевую аудиторию. Пользователю не важно, VIPER у тебя или MVC, используешь ли ты Rx или Realm — ему нужно приложение, которое решает его проблемы. Поэтому не стоит терять голову в погоне за идеальным стеком технологий, главное — то, как их использовать.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Читайте в нашем блоге

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: