Что это было и как: впечатления команды Redmadrobot от WWDC

    Роботы-разработчики продолжают телеграфировать из Сан-Хосе. И если о технических новостях WWDC все уже знают — да и мы об этом писали, на этот раз mc_murphy vani2 bealex рассказывают об опыте, который получают участники конференции, и других вопросах, которые обычно остаются за кадром.

    image

    Иван Вавилов, руководитель iOS-команды


    image

    Организация конференции


    К организации не придерешься — Apple давно проводит WWDC и все отполировала. В США целая культура стояния в очередях: они были на keynote, за едой, в туалеты, в магазин. Очереди организованы очень круто и движутся достаточно быстро. Проекторы, сцена, ряды стульев – все ровное, не придраться, везде чисто и приятно находиться. Залы большие, почти во всех на стульях были розетки. Во всем McEnery Convention Center был WiFi и столы с интернетом по проводу со скоростью порядка 500 Мбит/с, по всем коридорам играют HomePod, причем они синхронизированы между собой одной аудио-дорожкой. На конференции лично мне не хватало хорошего кофе, еда была стандартная американская — много сладкого, и не очень вкусно, но голодным точно не останешься.

    image

    На каждом WWDC можно купить сувениры с символикой конференции. Нам не хотелось терять 2 часа в очереди в первый день, поэтому мы зашли за ними во второй — очередь была поменьше, но, кроме XL+ размеров, уже ничего не было. Честно говоря, стремными жилетками, сумками-авоськами, термосами, больше похожими на ручные гранаты, детскими футболками из половой тряпки я остался недоволен — по мне это не уровень того, что производит Apple. Тем не менее, магазин закрылся еще в четверг, т.к. все раскупили.

    image

    Лаборатории


    Главная фишка WWDC — так называемые технические лаборатории. Расписание их работы на всю неделю появляется следом за Keynote. В этом году было 12 зон с инженерами Apple, все они разделяются по темам, время работы зависит от темы, как правило, это от 2-3 часа, одна и та же лаба может быть проходить в течение 1-2 дней. Так что, если вы спросили что-то в первый день, можете завести радар, подготовить исходники и прийти на следующий день. Некоторые темы достаточно популярны (Networking, UICollectionView), к ним выстраивается очередь, но по моему опыту, меньше чем за час она расходится. Редко вы сразу попадаете на инженера, который готов ответить на ваш вопрос, поэтому коллеги отправят вас к другому — и так может происходить несколько раз. Из этого видно, как сильна специализация инженеров. Саша, к примеру, добрался до разработчика UILabel и спросил, как все-таки добавить ссылки без багов — ответ: «никак», а я пообщался с ребятами, которые занимаются NSURLSession и получил ответ на вопрос, почему до сих пор не сделали возобновляемый URLSessionUploadTask — «потому что пока нет отраслевого стандарта». Конечно, не стоит ожидать ответов на все ваши вопросы, крайне рекомендуется заводить радар или подготовить проект для показа. Возникло впечатление, что инженеры действительно не отпустят тебя, пока не ответят на вопрос, никто не торопит, несмотря на очереди. Заметил, что каждый день была лаба Swift Open Hours — это говорит о том, насколько Apple заинтересована в продвижении и развитии языка и вспомогательных инструментов, в частности Swift Package Manager.

    image

    Организация работы


    Из разговоров с инженерами стало немного понятно, как они работают: как таковых грейдов у них нет, все они инженеры, но у каждого есть руководитель, с которым они обсуждают задачи. Сами задачи приходят от т.н. DRI, насколько я понял, это некий аналог наших менеджеров, они могут быть также с техническим бэкграундом, у дизайнеров – аналогично. DRI уже отвечают за выполнение задач перед вице-президентами.
    Интересно то, что одновременно у инженера может быть несколько задач от разных «заказчиков» (DRI). Приоритеты, оценки устанавливаются локально самими инженером и руководителем. Со слов одного из инженеров, бывают задачи с постановкой «это должно работать» и все. Тут уже надо делать ASAP.

    Кто-то честно признался, что в разных командах все может немного отличаться — процессы Continious Integration, разбор радаров. К сожалению, основной фокус направлен на создание новых фич, поэтому в большинстве случаев исправляются только критические баги. Но несмотря на это, никто не запрещает заводить радары с пометкой feature request и надеяться на удачу.

    Apple перед своими презентациями все держит в секрете, поэтому часто разработчики, делая какую-то задачу, могут только догадываться, в какой пазл она встанет. Конечно, осведомленность разработчиков разная, и без подписания дополнительных NDA тут не обходится. Со стороны показалось, что Apple не так уж и отличается от всех остальных компаний — до сентябрьского релиза у инженеров будет череда фич, баг фиксов и оптимизаций.

    image

    Александр Бабаев, технический директор RMR-Спб


    image
    Из года в год, приезжая на WWDC или следя за конференцией из России, я жду новостей про средства разработки. Понятно, что появляются новые SDK, понятно, что старые развиваются, и изредка нам даже дают новые железки. Средствам разработки раньше везло не так сильно.

    И не нужно напоминать, что вышел новый Xcode— только в последние пару лет он начал походить на нормальный IDE. До этого момента мучительные крики пользователей Xcode были слышны издалека. Но в последние пару лет всё стало сильно, сильно лучше.

    В 2018 году разработчики получили не только обновление Xcode — сама система стала лучше. Тёмная тема, которая собрала аплодисменты, действительно удобна для работы в сумерках. До сих пор нужно было использовать AppCode, причём в режиме «полного экрана» (и тестировать приложения на подключенном устройстве), чтобы работать в тёмной теме, а теперь — пожалуйста, без лишних усилий: Xcode и все остальные приложения темные. А как красива новая динамическая тема с пустыней! Немножко напоминает застывшие Aerial-скринсейверы.

    Обновилось и буквально всё остальное:

    • Стал лучше механизм автодополнения в Xcode, удобнее работать с документацией и навигацией по коду. Появился мультикурсор и отметки об изменениях на полях кода. Вернули сворачивание кода, которое пропало после прошлогоднего переписывания редактора.
    •  Подвезли также улучшения в Interface Builder. Выделили в отдельную панельку библиотеку компонентов, так удобнее, говорят. Посмотрим.
    • Instruments получил в обновлениях кастомные инструменты.
    • Скоро (не в первой бете, но, кажется, до релиза) обещают систему профилирования AutoLayout.
    • Отладчики Metal также прокачали.
    • По умолчанию теперь используется «новая» система сборки. Она лучше работает с зависимостями, меньше пересобирает и параллельнее работает.
    • Тестирование также можно теперь распараллелить, и запустить тесты в случайном порядке.
    • Приложения теперь можно «заверять» в Apple. И в какой-то момент компания запретит запускать незаверенные приложения. Само приложение после такой процедуры может распространяться не через App Store.
    • Подключили к уже существующему GitHub поддержку GitLab и Bitbucket.

    Как видно, изменилось очень, очень многое. А ведь ещё и Swift 4.2 с несколькими приятными изменениями подвезли. Вот, что появилось:

    •  Удобный способ получить список всех кейсов для enum’ов.
    • #warning и #error
    • возможность писать интерфейсы к динамическим языкам программирования, пока только для property — методы подключат попозже. Главным образом это сделано для взаимодействия с Python.
    • возможность написания специализированных расширений (conditional conformances) — она появилась уже в 4.1, но в 4.2 заработала как следует.
    • работа со случайными числами (и перемешивание массивов).
    • новая структура работы с хешами объектов.
    • несколько новых методов работы с коллекциями.
    • Bool.toggle()

    К сожалению, не успели доделать Swift 5, который обещают только в следующем году. Поэтому изменений немного.

    Обновка получилась отличная. Я, правда, никуда с AppCode убегать не собираюсь, он тоже очень быстро развивается, и в нём также работать все приятнее. И обновляется он не раз в год, а постоянно. Но мы же сейчас про продукты Apple, верно?

    Остальные изменения, как я уже говорил, не революционные. Но это не делает их хуже. AR взлетел из состояния «игрушка» в разряд инструмента, с которым можно работать. Возможность натренировать нейросеть с помощью CreateML — великолепный способ улучшить решение целого класса задач, чем мы и займёмся после возвращения с конференции. А ускорение, полученное в iOS 12, мы ждали последние лет пять.

    Отдельно удивило появление iOS-приложений под macOS (Новости, Акции, Home и Диктофон). Подробностей нам рассказали безумно мало, но в сети есть место, где можно почитать, если хочется разобраться: твиттер вот этого товарища: twitter.com/stroughtonsmith заполнен информацией. Он уже всё расковырял и описал, как можно самому писать UIKit-приложения для macOS, какие там ограничения, что ещё предстоит сделать разработчикам Apple (там пока хватает острых углов: twitter.com/stroughtonsmith/status/1005104334546309120) и так далее. А если кто-то хочет попробовать Марципан сам, в сети уже появились рецепты для этого, например, вот такой github.com/biscuitehh/MarzipanPlatter. Я не пробовал и пока не планирую, так что про работоспособность ничего не скажу.

    В общем, несмотря на отсутствие новых железок, WWDC получился знатный. Пойдём теперь поработаем.

    Артур Сахаров, технический директор


    image
    Помимо сессий, на конференции происходит уйма всего интересного. Многие посетители — не разработчики, и задача Apple — сделать WWDC информативной и интересной для всех.

    На конференции предусмотрена система консультаций с экспертами Apple, и часть их организована по принципу забронированных аудиенций. Можно посоветоваться по дизайну и UX с командой Human Interface Design, с ревью-специалистами по публикации в AppStore, с командой маркетинга по продвижению приложений.

    Несколько лет назад нужно было стоять на улице с 6 утра, чтобы записаться в список, теперь распределение происходит по принципу лотереи, оставляешь заявку в 7 утра онлайн, и система автоматически выдает слоты на произвольной основе.

    Design review by appointment


    Мы пошли показывать еще не выпущенные сценарии одного нашего банковского проекта, чтобы убедиться, что все спроектировали правильно. На встрече ты получаешь доступ к двум дизайнерам Apple на полчаса, записывать аудио-видео запрещено, только говорить и рисовать в специальных блокнотах для вайрфреймов. Для тех, кто не силен в языке, можно попросить технического переводчика.

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

    image

    Podcast Studio


    В конференц-центре обустроена звукоизолированная студия для записи аудио-подкастов. Времени дают час, в студии сидит звукоинженер, говорить можно о чем угодно группой до 4 человек. Есть даже аудио-вход, чтобы позвонить родственникам в Россию, например :)

    Мы записали выпуск для тех наших коллег, которые не следили за всеми сессиями WWDC, обсудили анонсы и постарались сопоставить все это с нашими проектами.

    image

    Lunchtime Sessions


    Три дня из пяти в обеды проходят сессии, которые не транслируются через интернет и которые нельзя снимать самим — Lunchtime Sessions. В прошлые годы приезжали Базз Олдрин, Мишель Обама, Билл Найи и многие другие. Обычно это темы, которые касаются разработки лишь косвенно, но задают правильный контекст и настрой.

    В этом году были «космический археолог» Сара Парсак (про снимки из космоса, по которым находят древние цивилизации и города), Раджеш Анандан из Unicef (про то, как IT помогает детям привлекать внимание и инвесторов для помощи африканским поселениям) и Даниелла Фейнберг из Pixar (про генеративные ландшафты в фильмах и алгоритмы, позволяющие добиваться реалистичных окружений и освещения).

    Experts at WWDC


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

    Дверь-в-дверь проходят еще две полноценные конференции: AltConf (для разработчиков под iOS и macOS, где выступают не-сотрудники Apple) и Layers (дизайнерская конференция с лучшими умами индустрии). Похоже, что один только AltConf по количеству сессий превосходит российские Mobius и DroidCon.

    Вечерами в театрах Сан-Хосе устраивают шоу и очные записи подкастов с экспертами. В этом году ходили на запись The Talk Show Джона Грубера, ATPLive и RelayFM. Можно послушать, что думают компьютерные журналисты с 20-летним стажем об анонсах и новинках, и я вам скажу, что они намного более оптимистичны и информированы, чем наша общественность. Когда в наших блогах и статьях все поголовно пишут «ничего нового, эппл уже не торт», эти ребята проецируют тенденции на пару лет вперед и смотрят, как из анонсов-кирпичиков сложится новое будущее всей платформы. Довольно интересно и избавляет от пессимизма и нытья.

    image

    Демо-зона ARKit 2


    Вы и так уже все знаете про обновления в ARKit: возможность смотреть дополненную реальность с нескольких устройств одновременно, текстуры мира, которые можно использовать для отражений, сканирование трехмерных объектов.

    Чтобы все это потрогать вживую, на первом этаже поставили специальные столы и написали многопользовательскую игру SwiftShot в дополненной реальности. Нужно из рогатки сбивать деревянные башни противника, и в эту историю устраивали матчи 2 на 2 на четырех айпадах. За выигрыш вручали специальный значок, и все 5 дней стояла очередь. Работало все прекрасно.

    image
    • +16
    • 5,8k
    • 4

    Redmadrobot

    97,00

    №1 в разработке мобильных решений для бизнеса

    Поделиться публикацией

    Похожие публикации

    Комментарии 4
      +2
      Что означает фраза «завести радар»?
        0
        Создать баг в официальный баг-трекер на Apple. Открытые можно посмотреть тут.
        0
        Далековат от Swift, а в чём такая ценность Bool.toggle()? о_о
          0
          Сахар, чтобы не писать вот так, особенно в длинных конструкциях
          myVar.prop1.prop2.enabled = !myVar.prop1.prop2.enabled

        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

        Самое читаемое