Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
В День программиста делимся с мобильными разработчиками подборкой отличных докладов! В мае в Петербурге прошла конференция Mobius, а теперь мы опубликовали её видеозаписи — и для Хабра сделали подборку из десяти лучших (по зрительским оценкам).
Темы очень разные — от масштабируемой архитектуры до accessibility. А вот оценки, наоборот, удивительно кучные. У третьего места разница с первыми двумя всего в 0,01 балл! То есть тут нет смысла особо придирчиво смотреть «кто выше кого»: всё так близко, что это, по сути, просто набор хороших докладов. И смотреть стоит всё, где вас хоть сколько-то интересует тема.
Реактивные ошибки, или Retry-диалог в одну строку кода
Спикер: Константин Цховребов
Место: 10
Презентация доклада
Начнём подборку с истории о том, как проектирование решения обычной задачи привело к необычному решению, раскрыло суть реактивного подхода (без RxJava) и упростило множество связанных проблем.
Доклад посвящен тому, как с помощью правильно построенной архитектуры можно просто решить нетривиальную проблему, аккуратно и естественно придя к концепции реактивных потоков. Константин рассмотрит привычную задачу с Retry-диалогом, обсудит минусы «классических» решений, разберется в реактивном программировании и придумает практичное решение, которое поможет обрабатывать любые ошибки в приложении.
Accessibility for iOS: Doing well by doing good
Спикер: John Fox
Место: 9
Презентация доклада
Если iOS-разработчик серьёзно относится к своему приложению, он должен так же серьезно относиться к тому, чтобы взаимодействие с ним было приятным и удобным для людей с ограниченными возможностями, считает Джон Фокс. И хотя обычно тема accessibility не вызывает бурного энтузиазма, обаятельный и увлеченный ей Джон «раскачал» слушателей и получил отличные оценки.
В докладе Джон рассказал, как Netflix разрабатывает своё приложение с учетом VoiceOver и других инструментов и фреймворков Apple, а также объяснил, почему инвестиции в качество accessibility дают множество преимуществ — от привлечения и удержания клиентов до возможностей автоматизированного тестирования.
Бонус: ещё мы брали у Фокса интервью карьере в IT и доступности приложений.
640 килобайт должно хватить всем
Спикер: Йонатан Левин
Место: 8
В прошлый раз на Mobius Йонатан полез разбираться, зачем нужны D8 и R8, и попал в топ докладов. На этот раз он закрывает очередной пробел в вопросах «как там оно на самом деле работает», разбирается с JVM и памятью — и снова попадает в топ.
Из этого доклада вы узнаете, как работает управление памятью в Android, что означают Swap, GC, Native Allocations и другие страшные слова, и если сами раньше не разбирались в этой теме — за час получите нужную информацию в доступном варианте от харизматичного спикера.
Как начать писать автотесты и не сойти с ума
Спикер: Дмитрий Мовчан, Евгений Мацюк
Место: 7
Автотесты крайне важны для поддержания высокого качества приложения, но вот как получается — о них много говорят, но мало кто пишет! Ведь автотесты только начинают приходить в жизнь разработчиков, и нормальных практик не то, чтобы особо много.
Это и постарались исправить в своём докладе Женя и Дима. Они с разных сторон рассматривают, как писать автотесты и, по их словам, дают «ту самую базу в одном флаконе», которая поможет взять и начать писать автотесты с нуля или развивать и улучшать существующие.
Реализация кэша сообщений ВКонтакте
Спикер: Александр Сорокин
Место: 6
Презентация доклада
Довольно хардкорный и полезный доклад про кишочки — о том, как под капотом работает мессенджер «ВКонтакте». Александр рассказывает как устроена сложная бизнес-логика, каким образом оптимизируется БД и на какие хитрости приходится идти, чтобы диалоги пользователей всегда были в консистентном состоянии, но при этом не раздражали тормозами и постоянными подзагрузками.
Рассказ Александра можно смело применять в качестве инструкции, если придётся реализовывать похожую функциональность «Сообщений» или оптимизировать работу с базой данных. Вы найдете конкретные идеи и полезные хаки для работы SQLite, которые сразу после просмотра можно бежать применять в своих проектах.
Кейноут: Эмпатия в IT: как рационально использовать свою человеческую природу
Спикер: Андрей Бреслав
Место: 5
Отдых после хардкора — в середину топа зрители поставили открывающий кейноут о важности эмоций для работы в IT. Андрей раньше выступал на Mobius с громадным успехом, рассказывая о влиянии на Kotlin других языков. А в этот раз он объяснил, как разработчики могут прибегать к эмоциям и эмпатии в качестве рабочего инструмента, чтобы человек мог быстрее и легче получить то, что ему необходимо.
Андрей работал и со своими собственными эмоциями прямо во время доклада: «Обычно я очень переживаю о том, как выгляжу, поэтому специально решил надеть дурацкие ушки и заметить, что ничего не изменилось». В докладе он объясняет почему взрослые люди с техническим образованием не могут договориться в технических вопросах, а работа, которая приносила чистую радость и удовольствие, может привести к выгоранию.
Gradle pipeline optimisation: Beyond basics
Спикер: Степан Гончаров
Место: 4
Чем больше размер мобильного проекта, тем сильнее ощущается время его сборки, и проблема долгих билдов замучила множество разработчиков. Один из таких примеров — критическое время сборки в Gradle для Android, которую пытаются оптимизировать всеми возможными способами.
В своём докладе Степан рассказывает обо всех нюансах этого процесса и проходится по множеству приёмов и хитростей, причём не тех, что перечислены в документации. Слушатели доклада отмечали, что о большой части приёмов, о которых говорил Степан они не знали, и сразу же отправились применять их на практике.
Smarter mobile interface design patterns
Спикер: Виталий Фридман
Место: 3
В сети есть множество примеров удивительно отвратительных интерфейсов, но большая часть из них сделана намеренно — например, как в соревновании на худший UX ручки громкости. А вот Виталию знакомы такие же дикие интерфейсы, но разработанные на полном серьезе. Как вам выбор количества детей с помощью слайдера с максимальным значением? Как это могло прийти в голову?
В закрывающем докладе-кейноуте Виталий исследует приветствия пользователей и способы прощаться с ними, прохождение аутентификации, работу с запросами cookie, уведомлениями, приветствиями, просьбами отзывов, капчами, входом через соцсети и множеством других элементов, каждый из которых может заставить пользователя уйти с сайта, если будет слишком неудобным или назойливым.
Фактически, Виталий создал набор простых инструкций-методик, которые можно применять в любом мобильном проекте — от встроенного приложения до старого-доброго веб-сайта.
Работаем с сетью эффективно
Спикер: Евгений Ртищев
Место: 2
Около 90% приложений используют сетевые запросы — то есть разбираться в соответствующих вопросах полезно почти всем мобильным разработчиков. При этом, решая сетевые задачи, разработчики вполне могут усложнить себе жизнь, тратя лишнее время на написание простых процедур и классов для работы с вебом.
Доклад Евгения — первый из пары победителей топа — как раз о том, как нативным средствами сделать то, ради чего многие разработчики используют сторонние библиотеки. Для многих рассказ может перевернуть представление о том, как правильно работать с сетью, и станет полезным инструментом и инструкцией, чтобы стать библиотеконезависимым.
Евгений объясняет, как с помощью существующих инструментов наиболее эффективно и быстро решить типовые задачи, с которыми сталкивается каждый разработчик при работе с сетью — работа с кэшем, аутентификация пользователя, исполнение запросов, диагностика ошибок, отладка, проверка сетевого стека и взаимодействие с API. По мнению посетителей конференции его рассказ — это must watch перед тем, как работать с сетью.
Scaling architecture at Lyft
Спикер: Денис Неклюдов
Место: 1
И ещё один победитель — рассказ Дениса об опыте работы в Lyft. Его доклад посвящен проблемам, которые часто встречаются при масштабировании архитектуры приложения и тому, как делать архитектуру «на вырост» на основе пережитого в Lyft.
Lyft начинался как простое Android-приложение, которое разрабатывал один человек. Сейчас это больше 50 разработчиков, два приложения с общей кодовой базой и множество еженедельно добавляемых фич — изменились требования, появились новые трудности. В таких меняющихся условиях задним числом особенно заметно «как стоит действовать с самого начала».
Интересно, что это второй подряд доклад от Lyft, становящийся у нас лидером: полгода назад в топе предыдущего Mobius фаворитом оказалось выступлением Артёма Зиннатуллина о нюансах сборки.
Если десятки лучших недостаточны, можете открыть на YouTube более полный плейлист конференции.
Заинтересовали эти доклады? Захотелось задать вопросы их авторам? В таком случае вам, скорее всего, понравится на Mobius 2019 Moscow: там тоже будет много интересных выступлений, а ещё там будет возможность как следует расспросить спикеров в дискуссионных зонах. Часть программы уже опубликована — можете посмотреть сами, интересны ли вам темы.