Весной мы провели в Петербурге конференцию по мобильной разработке Mobius, и до сегодняшнего дня видеозаписи докладов были доступны только её зрителям. Но теперь настало время поделиться со всем миром: по ссылке плейлист, а в этом посте представляем лучшую десятку.
Она составлена по оценкам зрителей, так что мы никак не влияли, но при этом сам собой возник баланс платформ: четыре доклада по Android, четыре по iOS, и два применимых для любой платформы. А темы докладов совсем разные, от нюансов ARKit и JobScheduler до реверс-инжиниринга и подхода к релизам — найти что-то для себя смогут самые разные разработчики.
Доклады в списке расположены по возрастанию рейтинга — так что чем дальше, тем интереснее!
Upload в Одноклассниках
Платформа: Android
Спикер: Кирилл Попов
Презентация доклада
Может показаться, что тут и говорить не о чем: «отправить файл на сервер» — распространённая задача, которую разработчики реализуют уже годами. Но не все реализации одинаково хороши, и здесь есть свои нюансы, в которые не все вникают. Кто особенно мотивирован вникать в них? Разработчики сервиса, где очень большое количество пользователей отправляет на сервер очень большое количество файлов. У Одноклассников как раз так — неудивительно, что они и поделились своим опытом на Mobius.
Layers of testing in iOS applications
Платформа: iOS
Спикер: Ewa Ludwiczak, Aleksander Grzyb
Презентация доклада
О тестировании вроде бы тоже говорено-переговорено, но Ева и Александр делают это по-своему. Они разбирают разные вариации тестирования в iOS не «в вакууме», а отталкиваясь в каждом случае от конкретных проблем и переходя к конкретным решениям: «был запутанный код без явных багов, но с плохой читабельностью — начали использовать SwiftLint, и ситуация исправилась».
Reverse engineering mobile apps: how, why, and what now?
Платформа: iOS/Android
Спикер: Michał Kałużny
Презентация доклада
Конференция открывалась выступлением Феликса Краузе, напоминающим о некоторых вопросах безопасности, и этот доклад может показаться схожим. Но есть и принципиальная разница: здесь докладчик ведёт речь не с позиции осторожного разработчика, а с другой стороны баррикад. «Давайте поговорим о том, как заниматься реверс-инжинирингом, зачем люди вроде меня делают это с вашими приложениями, и как люди вроде вас могут остановить таких, как я». А дальше начинаются описания конкретных инструментов, которые используют «такие, как он» — и ощущается близкое личное знакомство с каждым.
Релизы мобильных приложений в Avito
Платформа: iOS/Android
Спикер: Алексей Шпирко
Презентация доклада
В начале доклада говорится «в 2014-м у нас было по два мобильных разработчика на каждую платформу, а теперь по двадцать». Avito — не единственный проект в подобной ситуации: похоже, к 2018-му многие приложения доросли до того, что потребовали много людей.
В такой ситуации подходом «… и в продакшн» уже не отделаешься, и если с двумя разработчиками можно посвятить всё внимание коду конкретной фичи, то с двадцатью не менее важен вопрос «как вообще организовать процесс». Неудивительно, что на конференции зрителей привлекли не только доклады со словами вроде «RxJava», но и этот доклад со словами «continuous delivery» и «release train».
Как не состариться во время сборки: Kapt и другие приключения
Платформа: Android
Cпикер: Денис Неклюдов
Презентация доклада
Вот ещё один вопрос, который становится актуален для больших и успешных приложений: время сборки. Для начинающих это может казаться «проблемой первого мира»: у нас тут фича работать не хочет, а вы о каком-то уменьшении временного промежутка, который и так не смертельный. Но чем больше разрастается и чем больше сборок за спиной, тем больше готовности вложить много часов, чтобы сэкономить на каждой сборке минуты.
Собственно, Денис их вложил, а на Mobius представил результат затраченных усилий. Но при этом он позиционирует доклад не как «истину в последней инстанции», а как «информацию для обсуждения» — наверное, самое интересное развернулось после его окончания в дискуссионной зоне.
Нелёгкая дорога до JobScheduler и обратно
Платформа: Android
Спикер: Артур Василов
Презентация доклада
Новые Android-приложения уже сейчас обязаны ставить targetSdkVersion не ниже 26, а с 1 ноября та же учесть постигнет и обновления старых. Эта новая политика Google означает, что теперь при всём желании не получится отсиживаться под корягой со старыми подходами, и необходимо осваивать современные — в том числе и JobScheduler.
Какие проблемы возникают в связи с ним и как можно действовать, чтобы переход прошёл максимально безболезненно? В докладе рассказывается и о первом, и о втором с кучей конкретики: «У JobInfo на Android версий 5-6 параметр .setPeriodic забивает остальные. Вы пытаетесь сказать «если есть сеть и зарядка, выполняйся каждые шесть часов». А система в ответ: «ясно, выполняться каждые шесть часов, хорошо»».
Дополненная реальность в Яндекс.Картах
Платформа: iOS
Спикер: Дмитрий Тримонов
презентация доклада
Вокруг мобильного AR много шумихи, но реального использования на данный момент куда меньше. Всё-таки большинство из нас занимается не теми эффектными проектами, которые Apple гордо демонстрирует на презентациях, а более традиционными приложениями, так что с необходимостью опробовать ARKit мы пока сталкиваемся нечасто.
Тем интереснее послушать тех, кто уже масштабно внедрил его, причём не в маленьком экспериментальном проекте, а в приложении для миллионов людей. Год назад при выходе iOS 11, когда новые возможности стали доступны, Яндекс воспользовался ими одним из первых — а на Mobius поделился приобретёнными знаниями.
How to fit a million start into iPhone
Платформа: iOS
Спикер: Konrad Feller
Презентация доклада
Тут ARKit тоже упоминается, но не как тема доклада: выступление посвящено оптимизациям, позволяющим приложениями есть меньше памяти и работать быстрее. За красивым названием «Как поместить в айфон миллион звёзд» на практике скрывается «как тратить меньше ресурсов». При чём тогда вообще звёзды и ARKit? Конрад демонстрирует свои тезисы с помощью небольшого приложения для изучения звёздного неба, сделанного с помощью ARKit: там при простой задумке требуется тот самый «миллион звёзд», требующий задуматься об оптимизациях.
Готовим приложение в Playgrounds
Платформа: iOS
Спикеры: Денис Кириллов и Константин Юричев
Презентация доклада
Появление в Xcode инструмента Playgrounds вызвало положительные отклики, но обычно к нему относятся в соответствии с названием — как к «детской площадке». Мол, начинающим он поможет попрактиковаться в Swift, а более опытным людям там можно разве что побаловаться. В контексте «постоянно используем в рабочем проекте» о нём обычно не слышишь.
Но в дейтинге Mamba как следует попробовали «Playground-Driven Development», обнаружили, что вообще-то в большом и серьёзном проекте из инструмента можно извлечь заметную пользу — и теперь на Mobius поделились своим опытом.
На плечах гигантов: языки, у которых учился Kotlin
Платформа: Android
Спикер: Андрей Бреслав
И, наконец, доклад-лидер. Неудивительно, что на конференции, где множество участников использует Kotlin, Андрей Бреслав интересен очень многим. Но высокие оценки это выступление получило не только из-за имени спикера — само оно тоже уникальное. Можете ли вы вспомнить другой случай, когда автор востребованного языка программирования подробно рассказал, что и откуда позаимствовал? Мы тоже нет, а жаль, такое интересно было бы услышать далеко не только от Андрея.
Отчасти весь доклад — попытка разрушить стереотип о том, что использовать в языках чужие удачные идеи «плохо». А отчасти — просто интереснейший рассказ, помогающий лучше понять, как идеи кочуют по индустрии (это ведь не только с Kotlin так, а со всеми языками).
Доклады понравились, и хочется ещё в том же духе? Следующий Mobius пройдёт в Москве 8-9 декабря — и когда присутствуешь на конференции лично, можно не только послушать доклады, но и как следует расспросить спикеров в дискуссионной зоне. На сайте Mobius уже есть описания многих докладов, и там же можно приобрести билет.
Обращаем внимание, что 1 октября цена билетов возрастёт, а ещё в тот же день закроется приём заявок на доклады. Так что, если хотите прийти как зритель или выступить как спикер, в обоих случаях стоит поторопиться!
Автор: phillennium