На этот раз это действительно будет путешествие в прошлое и прыжок в новые технологии, притом одновременно, как, собственно, и в концепте самой игры с перемещением личности во времени. И да, — это отсыл к Assassin's Creed, а не историческому значению термина «прыжок веры».
И про игры тоже поговорим, но уже про взрослые. Как сделать приложение только для онлайна, без необходимости загрузки, и наоборот, приложение, которое не требует коннекта к сети.
Возможно, мне даже пропустят не совсем стандартный формат обзорного поста и картинка со всеми спикерами конференции будет уже после ката.
А ещё в этот раз у нас не будет открывающего кейноута, т.е. каждый доклад первого тайм-слота — это маленький кейноут, и времени на раскачку не будет. Сразу в прод!
Что ждать от докладов на конференции и куда с их помощью можно попасть — под катом. Совпадает ли наше видение с реальностью или нет, решать участникам Mobius 2017 Moscow.
Программа
Итак, для начала ознакомимся со списком докладчиков в общем. Возможно, кто-то вам понравится визуально, и вы сразу прокрутите на него. Но если всё-таки вы — сторонник подхода «узнать все варианты и потом выбрать», то, возможно, в хронологии у вас получится связная история.
По классической схеме существует несколько вариантов сред доставки
Доклады про Android
Lisa Wray — Data Binding in a Kotlin world
Мат для кого-то — это гимнастический настил, и кому-то не хватает уверенности при прыжке в UI. Что в жизни, что в разработке страхи есть, и, возможно, вы даже уже используете расширения Kotlin и RxJava в роли того самого мата и хотите делать всё чуть быстрее, проще и эффективнее. У нас есть для вас спикер.
Гостья с другой стороны Атлантики готова буквально на пальцах рассказать, как при помощи фреймворка Data Binding значительно уменьшить головную боль с кодом и изменить путь к созданию UI. Лиза не просто Android Google Developer Expert, она — выпускница бакалавриата MIT по музыке и ИТ. Прежде чем начать работать над приложением одного всемирно известного издания, она успела поработать в Google (неожиданно) в команде развития отношений разработчиков Android, Google Glass, Android Wear и т.д.
Jing Li — Android meets Docker
Jing Li — разработчик-агностик (что бы это сочетание ни значило) с упором на тулы, качество и CI. Возможно краткое интервью сможет сделать картинку более ясной.
CI и так не самый легкий в реализации процесс, и в плане разработки ПО он до сих пор развивается в области мобайл. В докладе Джинга будет введение в Docker и качественно сделанный образ Docker для Android, на основе которого и построена презентация использования последнего для Android CI — с описанием преимуществ, ограничений, фишек и производительности.
Конечно, будет живое демо по настройке Jenkins Android slave через Android Docker image за 2 минуты (Как бы невероятно это ни звучало).
В докладе хватает моментов, которые выглядят как вызов стереотипам. При желании поучаствовать в дискуссии просьба готовить вопросы на английском. *
*Cам написал, сам перечитал… нет, это не та же статья, что и «Docker, Docker, Docker».
Сергей @willykolepniy Боиштян — Как я возненавидел ORM
Реклама Тинькофф в той или иной мере появляется регулярно, хайпы и т.д. Но в нашей истории примечателен сам спикер, а Сергей уже два года является частью команды разработки мобильного приложения для юридических лиц. При том что в 2013 у него всё начиналось ещё с профессии бармена, Java и бэкенда.
Доклад Сергея будет о текущем проекте на Android, какие проблемы команде принесла ORM (рост размера базы до умопомрачительных размеров) и как их решали. Обсудим назначение ORM и какие ограничения она накладывает на разработчиков. Цель доклада — заставить рядового разработчика задуматься о целесообразности использования ORM в своем проекте. Технологии, которые будут задействованы: OrmLite, Stetho, DBInspector, Sqlite.
Иван @IvanPonomarev Пономарев — Crash-репорты Android NDK
Иван — ведущий программист под мобильные платформы компании Аквелон. Позади более 5 лет опыта в игровой индустрии со специализацией на кроссплатформенной разработке под мобильные устройства с использованием C/C++ (и они работают, например, у компании есть видео об управлении устройством для наливания пива с мобильного телефона). С проблемой сбора информации об ошибках в NDK-коде знаком не понаслышке, об этом и будет говорить.
В первой части доклада будут кратко рассмотрены уже имеющиеся наработки: как работает встроенный отладчик Android, какие решения уже существуют.
Вторая часть посвящена рассказу о том, как это работает «под капотом»: как получить состояние процессора на момент ошибки, как раскрутить стек вызовов, как узнать номера строк в исходном коде. Будет дан обзор таких библиотек для раскрутки стека, как libcorkscrew, libunwind, libunwindstack.
Доклад будет интересен как Android-разработчикам, в чьих приложениях используется NDK, так и всем остальным для расширения кругозора.
Алексей Буздин — Заставь свой гаджет говорить: Google Assistant
А вот при изучении этого доклада автору, естественно, вспомнилась куча мемов из области Siri, Alexa, Алёнка и Алиса, Amazon Home, Google Home и, в конце концов, шутка про шотландский акцент и голосовое управление лифта…
Вместе с Алексеем будем погружаться в мир Google Assistant.
В докладе спикер покажет, как начать писать приложения для Google Assistant и тестировать их на Android, iOS и Google Home. В течение 40 минут мы вместе напишем приложение с нуля и отладим его с помощью Google Home.
В общем и целом Алексей знает, как организовать сообщество, что он регулярно и делает, устраивая встречи Google Developers Group Riga, Java User Group Latvia и ежегодную конференцию Riga Dev Day.
Евгений @smart_jk Сатуров — Instant Apps: как научить приложение работать без установки
Начнём издалека. 4,8 на Google Play — это много или мало? Понятно, что это достаточно условно, но возьмём за гипотезу, что это честный рейтинг, проверенный и добровольный.
Итак, Евгений — лидер команды Лабиринт Android, той самой, которая первой в России реализовала Instant App и может похвастаться приложением с оценкой 4,8 в Google Play.
Говорить будем об Instant Apps — возможности использования приложения без необходимости устанавливать его на устройство. В рамках доклада будет рассказано о самой технологии, об опыте реализации, о том, как подготовить проект к внедрению Instant Apps и подводных камнях, с которыми можно столкнуться в процессе. Особое внимание будет уделено вопросу выбора use cases, а также бенефитам, которые дает чистая архитектура в контексте создания Instant Apps.
Enrique Lopez Manas — TensorFlow for mobile devs
Энирике Лопес работает с мобильными технологиями с 2007 года и за это время повидал много хайпов, поэтому знает в них толк. В данный момент идёт хайп вокруг ML и AI, и для того, чтобы быть на волне, он предлагает использовать TensorFlow в роли основного фреймворка от Google. А при условии, что сам Enrique Lopez Manas является Google Developer Expert и одним из основоположников Google LaunchPad accelerator, то как тут не хайпануть, да ещё и получить выгоду от использования ML. Перед конференцией даже выпущен предварительный пост по его работе, чтобы вы могли успеть подготовиться.
Сергей @Reallife Рябов — Пишем Java-френдли Kotlin-код
Сергей Рябов — независимый Android-разработчик с бэкенд-бэкграундом. Несколько лет назад обрёл Kotlin-суперспособности, которые и по сей день использует во благо в своих экспериментах и продакшне. Rx-фанатик, Kotlin-евангелист.
И как любой евангелист, он готов нести знание в массы. В этот раз о том, как писать Kotlin-код, чтобы его можно было использовать в Java. Действительно, интероп с Java широко разрекламирован. Однако, в то время как Java-код дёргать из Kotlin можно без особых проблем, работа с православным Kotlin-кодом из Java имеет свои нюансы. Сергей расскажет, что же припасли создатели Kotlin для таких случаев.
Доклады про iOS
Андрей @s1dd0k Володин — Как стать GPU-инженером за час
Андрей Володин — lead developer Cocos2d-ObjC, создатель первого приложения на Swift под Android, автор кроссплатформенного игрового движка Fiber2D, в настоящее время — Metal/ARKit-инженер.
Андрей поможет нам добраться до видеокарты мобильных телефонов. Кто-то может помнить бородатую шутку про «связки Айфонов на колокейшене». В какой-то мере это не шутка. А именно:
Современный мир не был бы таким, какой он есть, без GPU-вычислений. Современные консольные игры, VR, AR, криптовалюты, машинное обучение — всё это работает на горячих графических процессорах.
Однако среди мобильных разработчиков видеокарты не пользуются большой популярностью: многие думают, что это очень сложно, а некоторые вообще не замечают, что iPhone в принципе имеет видеокарту.
С помощью этого доклада хотелось бы ознакомить широкие массы разработчиков с программированием графических процессоров, с прицелом на мобильные платформы и, конечно же, трендовые темы.
Максим @max_sokolov Соколов — Мессенджер наизнанку, или Как сегодня сделать мессенджер в мобильном iOS-приложении
Представьте, что вместо того, чтобы оторвать бумажку с телефоном от объявления на подъезде, можно взять смартфон и сразу написать владельцу напрямую, уточнив статус, не мучаясь с проблемой «трубу не берёт, достали, продали» и т.д.
Для получения подобного мессенджера Максиму Соколову, как Team Lead в Avito, пришлось пройти через все тяжкие, от простого HTTP-API до использования веб-сокетов, узнавая про плюсы, минусы и подводные камни различных подходов. Максим поделится, как его команда проектировала клиент-серверное API и как в этом помогал Swift. Вы узнаете о том, как гарантировать доставку сообщений клиентам, онлайн-статусы пользователей, статусы сообщений и других функциях современных мессенджеров и их реализации.
Мессенджеры развиваются стремительно и новый функционал требуется добавлять быстро. В рамках доклада будет рассказано, как заложить масштабируемую архитектуру, которая позволит легко добавлять новые фишки.
Евгений @ptiz Камышанов — Жизнь без подключения: от хаоса к консенсусу
Слишком много исторических отсылок получается в ходе обзора. Но что поделать, история движется по спирали: «приложения на десктопе стремятся работать в облаке независимо от локальной памяти», «приложения на телефоне постепенно обретают всё больший оффлайн-функционал».
Хорошо это или не очень, можно будет обсудить с Евгением Камышановым из EPAM после его практической демонстрации данного явления в ходе доклада.
При всём этом, будучи Lead iOS developer в компании EPAM в Санкт-Петербурге, спикер не верит в серебряные пули и по мере сил борется с перфекционизмом.
Marcin Krzyzanowski — Decipher the encoding
Marcin — это не просто разработчик и автор Natalie, CryptoSwift и ObjectivePGP, но и тот, кто пытается всё же сохранить приватность при помощи PrivacyApp.io Как следствие последнего, про процессы Encoding он знает много… очень много. Конечно, в докладе будет присутствовать не только практика, но и сравнение encoding vs. encryption. Что больше используется в реальной жизни, пояснения с примерами (по большей части на iOS, но не только).
Кстати, Marcin с нами не в первый раз и уже был приятно удивлен высоким уровнем нашего комьюнити. Надеемся, в этот раз у него будет возможность укрепиться в вере в high level наших мобильных разработчиков.
Дмитрий @handamade Куркин — Оптимизация размера приложения
Итак, с чем у вас ассоциируется звук «о-оу»? За всех, естественно, говорить не стоит, но для тех, кто начинал до пришествия iPhone — это звук одного мессенджера, который по знаменитости был сопоставим с теперешним Telegram.
К чему это всё? Дмитрий 12 лет занимается разработкой мессенджеров под разные платформы. Последние 5 лет делает iOS клиент для ICQ (звук «о-оу») в должности team lead.
Рассмотрим, из чего складывается размер приложения на iOS и как этот размер можно уменьшить. Приведем несколько экспериментов для пояснения, из чего в итоге складывается размер приложения в AppStore, и расскажем про инструменты, которые помогут найти лишние данные и определить наиболее объемные участки кода программы.
Глеб @Novixon Новик — Архитектура сервисного слоя с использованием составных операций
Наверняка многим знаком подкаст про мобильную разработку Podlodka. Его ведёт Глеб Новик, автор фреймворка COOperation.
Доклад Глеба будет построен вокруг распространенного способа построения сервисного слоя приложения — это использование механизмов GCD для создания асинхронного взаимодействия компонентов. Многие задумываются, но мало кто использует на практике всю мощь классов NSOperation и NSOperationQueue для данной задачи.
С помощью тщательной декомпозиции и небольшой доработки указанных классов можно получить чрезвычайно гибкий и переносимый компонент, который станет верным другом при создании новых сервисов. Глеб расскажет о том, как можно использовать составные операции при построении сервисного слоя и как в этом может помочь разработанный им фреймворк COOperation.
Область общей полезности — уже не среда, а нечто большее
Владимир @dzigoro Иванов — Пустота наследия: стратегия кардинальных улучшений в проекте
Владимир — один из достаточно частых гостей наших конференций, и его должность ведущего разработчика в EPAM этому не причина. Всё дело в использовании круга интересов (Android, React, iOS, Web) и не менее занимательного бэкграунда спикера (начинал как Java EE-инженер, но увлекся мобильным технологиями «и покатился»).
Для начала разомнём мат. аппарат (от слова «мат», а не «математика»). Разберём «Legacy». Каждому разработчику приходится сталкиваться с ним постоянно. Более того, каждый новый проект становится legacy со временем, если не уделять достаточно внимания техническому долгу. В докладе поговорим, как жить с особо запущенным случаем, aka проектом возраста более 5 лет.
Мы узнаем:
- как осознать размер долга;
- как придумать план рефакторинга;
- провести его максимально безболезненно.
Код будет на Java, но специфики Android почти нет, поэтому интересно будет инженерам обеих платформ.
Немного теории, много практики, щепотка статистики, нескучные картинки — всё, как вы любите.
Константин @Konojoto Якушев — Универсальные ссылки — дворец из подводных камней
Представление данного спикера хотелось бы начать с введения к докладу его коллеги:
«Кто думает, что Badoo — это поисковая сеть? А кто думает, что это китайский внутренний онлайн-магазин?». Честно, в зале на другой нашей конференции на оба вопроса руки поднимали далеко не единицы. Собственно, и ваш покорный слуга в том числе. Так что жертвами стереотипов могут быть все.
В итоге, это самый большой портал по знакомствам (300+ млн. пользователей), бешеное количество обращений и скачиваний. Чем направлять весь этот поток? Константин предлагает отправиться в путешествие в мир универсальных ссылок вместе с ним. Но с большими оговорками:
«Всё это осложняется тем, что, как только универсальные ссылки запущены, пути назад нет. Нужно их поддерживать, и ваши ошибки, возможно, навсегда останутся с вами».
А чтобы у вас осталось меньше ошибок «навсегда», мы и предлагаем этот доклад. Мы ожидаем, что человек, прослушавший его, получит достаточно информации, чтобы с нуля запустить современную систему универсальных ссылок в своей компании без проблем и сомнений.
Александр @zlx Зимин — Давайте проектировать UI правильно
Уже прошло несколько месяцев с того момента, как мы взяли интервью у Александра, которое можно почитать тут. Информация в статье позволит представить спикера в разы лучше, чем тысяча лишних знаков в обзоре, поэтому перейдём непосредственно к докладу.
В докладе Александр расскажет про подходы к разработке UI, которые позволяют новым разработчикам вносить изменения без переписывания кода и переиспользования написанных компонентов.
Также часть доклада будет посвящена Atomic Design. Многие популярные приложения используют нестандартные визуальные компоненты, и команда Badoo — не исключение. Чтобы это не создавало много головной боли дизайнерам и разработчикам, им пришлось выработать решение, которое и будет представлено в докладе.
Вне категорий (и законов корпорации)
Для начала промокод для тех кто дочитал до этого момента (или случайно на него попал) —
используя при регистрации ключевую фразу выше, вы можете приобрести билеты по октябрьской цене по 5 ноября включительно. Если еще не успели зарегистрироваться – это ваш шанс!
Использовать шанс!
LastCallMobius
Йонатан Левин — Как самому запилить новую фичу и при этом не быть убитым своим менеджером
У вас когда-нибудь была ситуация, когда вы работаете в компании над приложением, и внезапно вам в голову приходит идея новой крутой фичи? Вы понимаете, вот он — переломный момент, но когда вы обращаетесь за поддержкой и одобрением на разработку, вы сталкиваетесь с препятствием: «У нас нет ресурсов», или «На данный момент у нас другие приоритеты». Сотрудники, которые не понаслышке знакомы с продуктом компании, больше всего подходят для придумывания и проектирования лучших фич для приложения, но иногда на пути встают политики и процедуры компании. Но где есть желание, там есть возможности! Мир завоёвывают повстанцы и мятежники — Империя должна пасть! Если вы знаете, что эта фича важна, но у вас нет разрешения продолжать, вам придётся осторожно балансировать между свободой творчества и уважением к приоритетам вашей компании.
В данном докладе Йонатан поделится, как он разработал фичу без разрешения и как при этом его не уволили/покалечили/убили.
Йонатан — один из ведущих израильских мобильных разработчиков, часть элитной команды Google Developer Experts. Сыграл ключевую роль в успехе Gett, собравшем более 500 миллионов долларов, а также получил финансирование своего стартапа KolGene, набирающего популярность генетического market connector-а. Будучи верным приверженцем мобильного и продукт-менеджмента, Йонатан также с большим энтузиазмом занимается бэкендом. Как состоявшийся разработчик и предприниматель, он точно знает, как превратить умные идеи в прибыльный продукт.
©Mobius 2017 Moscow (текст-описания доклада Йонатана взят с сайта как самодостаточный и не нуждающийся в сокращении или дополнении)
На этом всё с докладами, но не с конференцией. Безусловно, выбрать слот и свой путь можно до начала, следуя программе Mobius 2017 Moscow. Либо просто взять и прийти / взять трансляцию совершив свой «прыжок веры».
Если остались вопросы, то их можно задать в комментариях, либо в нашем телеграм-канале Mobiusсonf .
И если вдруг есть сложности и вы не знаете, как с ними быть, то у нас есть ещё и Ч.А.В.О.
До встречи на конференции Mobius 2017 Moscow!