- PVSM.RU - https://www.pvsm.ru -

Расти большой: топ-10 докладов Mobius 2018 Moscow

Расти большой: топ-10 докладов Mobius 2018 Moscow - 1

В 2018-м App Store и Google Play исполнилось 10 лет. За это десятилетие некоторые приложения, начинавшиеся как маленькие стартапы, разрослись в гигантские проекты — а по пути преодолели множество трансформаций, набили множество шишек и извлекли множество уроков.

Мы открыли видеозаписи Mobius 2018 Moscow, и публикуем на Хабре 10 лучших (согласно зрительским оценкам). И в некоторых из них спикеры, работающие в крупных компаниях, описывают как раз изменения, связанные с ростом. Другие темы тоже есть: например, часто ли в случае с видео вы спускаетесь на уровень кодеков и сокетов?

Доклады в списке идут по возрастанию рейтинга — так что самые полюбившиеся зрителям будут в самом конце текста. А для тех, кого интересуют и не вошедшие в десятку доклады, даём также ссылку [1] на плейлист.


Монорепо: путешествие обратно. История модуляризации в Badoo

Платформа: iOS
Спикер: Антон Щукин
Презентация доклада [2]

На 10-м месте — как раз «история роста и приходящего с ним опыта». В Badoo
занимаются iOS-разработкой уже девять лет, а за это время изменилась не только компания, но и вся индустрия (сложно представить, но когда-то человечество существовало без CocoaPods).

Неудивительно, что подход к структуре репозиториев и проектов в Badoo тоже существенно менялся, и это было не линейным движением из точки А в точку Б — начав с одного репозитория, можно в итоге прийти снова к нему же, но уже на другом уровне. Каким получился маршрут, и какие были причины для изменений в каждом конкретном случае?


Как кэшировать информацию в Android-приложении и не стрелять себе в ногу

Платформа: Android
Спикер: Дмитрий Васильев
Презентация доклада [3]

Казалось бы, задача кэширования (в том числе на Android) не нова — но менее актуальной она от этого не становится, а ошибки в ней совершать не перестают, так что и доклады остаются полезными. Ну, недаром из двух главных проблем computer science одна связана с кэшированием!

Виды кэширования, фигурирующие в докладе:

  • Lazy cache
  • Synchronized cache
  • Write-through cache
  • LRU cache.

Мобильная архитектура в большой команде

Платформа: Android/iOS
Спикер: Александр Михайлов
Презентация доклада [4]

Uber — возможно, самый известный в мире пример «большой мобильной команды», их сотни разработчиков стали притчей во языцех. Неудивительно, что компания сталкивается со сложностями, которые маленькие команды не затрагивают. При этом она, как и Badoo, пришла в мобильную разработку как стартап, так что путь к нынешнему состоянию был долгим и извилистым. Каким именно, к каким сложностям пришли, и как с ними борются?

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


Архитектурный подход к обработке ошибок

Платформа: Android/iOS
Спикер: Дмитрий Михайлов
Презентация доклада [5]

Кому хочется иметь дело с обработкой ошибок? Хочется делать стройные замки новых систем, а не возиться со случаями, где что-то пошло не так. В итоге важная тема часто остаётся обделённой вниманием.

Но этот доклад, объединяющий её с архитектурными вопросами, может заставить посмотреть на проблему по-новому: чтобы обрабатывать ошибки как следует, надо как раз выстроить стройную систему, правильно подходящую к каждому из слоёв.


Как приготовить хорошо прожаренный MVI под Android

Платформа: Android
Спикер: Сергей Рябов
Презентация доклада [6]

От доклада, где в названии архитектура, кто-то может ожидать сплошных UML-диаграмм. Не тут-то было: здесь на слайдах много конкретного кода. Настолько, что некоторые зрители даже жаловались — воспринимать столько подряд живьём сложновато. Но при просмотре видеозаписи есть кнопка паузы, так что можно употреблять «хорошо прожаренный MVI» по частям и смаковать, а не давиться.


Kotlin Puzzlers vol. 2

Платформа: Android
Спикер: Антон Кекс

Что будет, если в Kotlin попробовать передать в Int-параметр значение -2_147_483_648.inc()? А почему? Антон показывает случаи, когда Kotlin ведёт себя неочевидно, и предлагает сначала угадать правильный вариант, а затем объясняет, что происходит.

Это уже второй его доклад о неочевидном поведении языка, а мы для обоих этих докладов делали на Хабре текстовые версии — так что тут можно не только посмотреть, но прочитать:


Стриминг и воспроизведение видео поверх голых сокетов и кодеков

Платформа: Android/iOS
Спикеры: Александр Тоболь и Иван Григорьев

Потребление видеоконтента в ОК гигантское, а с появлением OK Live к нему добавился ещё и стриминг. Неудивительно, что в мобильной разработке там подходят к соответствующим вопросам куда глубже, чем «возьмём стандартный плеер и выведем», и в докладе делятся своей экспертизой. Чем эппловская технология HLS уступает DASH? Какие три приоритета в стриминге оказываются недостижимы одновременно, и в пользу какого из них предрасположен WebRTC? В каких случаях вместо стандартных решений стоит делать собственное?

Доклад разделён на две части, о простой передаче с воспроизведением (когда пользователь только потребляет видео) и о мобильном стриминге (где создают его сами пользователи в прямом эфире) — и если вторая для вас неактуальна, полезно посмотреть хотя бы первую.


Compilers. Dalvik. ART. And everything in between

Платформа: Android
Спикер: Йонатан Левин

Кто-то помнит Йонатана по шоу-кейноутам, но здесь вместо костюмированных выступлений он полез вглубь: что такое D8 и R8, зачем они понадобились, и что о внутренностях Android надо знать, чтобы это понять? И получился хороший баланс серьёзного и увлекательного: тема вполне себе серьёзная, но благодаря Йонатану всё не превращается в монотонную лекцию, а подано очень живо.

В отличие от «Kotlin Puzzlers», этот доклад мы не расшифровывали, но Йонатан по его следам сам сделал блог-пост [9] — так что и здесь, если вам удобнее читать, есть такой вариант.


Крайности тестирования: хитрости из темных уголков мобильных интерфейсов

Платформа: Android/iOS
Спикер: Виталий Фридман

Если пользователи в среднем проводят 169 минут в день в мобильных приложениях, а 11 минут в мобильном браузере, какой вывод напрашивается для любой конкретной компании? «Приложение в 15 раз важнее мобильного сайта, сосредоточимся на нём». Но если всмотреться, выяснится, что почти все эти 169 минут у пользователя приходятся на несколько любимых приложений — а там обосновались всякие фейсбуки, составить им конкуренцию крайне затруднительно. И в таком случае расклад сил становится куда менее однозначен.

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


Android builds at Lyft

Платформа: Android
Спикер: Артём Зиннатуллин

Наконец, лидер рейтинга. Число модулей в Android-приложении Lyft превышает 800, что сказывается на сборке. Тут кто-то может подумать «если мы в жизни до такого не доберёмся, то к чему нам это слушать» — но оценки зрителей показывают, что доклад получился интересным не для гигантов, а для всех.

Среди прочего в докладе звучит заявление «Bazel — это будущее», и на тот момент оно казалось очень смелым. Но вот свежая новость: в документации [10] Android Q заметили пример Bazel-конфигурации. Кажется, будущее настаёт, а доклад теперь стоит посмотреть, чтобы к нему приготовиться.

Как можете видеть, на декабрьском Mobius было много интересного. Если хочется подобных докладов, но ещё и с возможностью лично поспрашивать спикера — обратите внимание, что 22-23 мая в Петербурге состоится следующий Mobius, и на сайте [11] уже есть описания большинства докладов. Текущая цена на билеты действует до конца марта, дальше они подорожают.

Автор: Евгений Трифонов

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/razrabotka-pod-ios/312637

Ссылки в тексте:

[1] ссылку: https://www.youtube.com/playlist?list=PLb1A91j1236qBzea_d_tW-JHUxHMZJaqk&disable_polymer=true

[2] Презентация доклада: https://assets.ctfassets.net/2grufn031spf/5ItTyl4T6wUIMGomIOmus4/1ac90b5d6c8f51749f460c00abca0048/Anton_Shchukin_Monorepo__puteshestviye_obratno._Istoriya_modulyarizatsii_v_Badoo.pdf

[3] Презентация доклада: https://downloads.ctfassets.net/2grufn031spf/1LCRsIRS7y80W6mqmyYKCa/837f61b90c5fa1ef85a0811e34771dcc/Dmitriy_Vasilyev_Kak_keshirovat_informatsiyu_v_Android-prilozhenii_i_ne_strelyat_sebe_v_nogu.pdf

[4] Презентация доклада: https://assets.ctfassets.net/2grufn031spf/4CrnFHgEw0qQy00Ym2a6Au/1f000f1f16c44bf7b4232659bc8c6c76/Aleksandr_Mikhaylov_Mobilnaya_arkhitektura_v_bolshoy_komande.pdf

[5] Презентация доклада: https://assets.ctfassets.net/2grufn031spf/1mbchoE4jKOqK2Q0kYAuEK/6c56bb594a28c639e6b014881cce8727/Dmitry_Mikhailov_Architectural_approach_to_errors_handling.pdf

[6] Презентация доклада: https://downloads.ctfassets.net/2grufn031spf/6lC85sBYmQmSCoiqYiQOMo/a7ccea6ded95c6a1c5d3f46d74773da1/Sergey_Ryabov_Kak_prigotovit_khorosho_prozharennyy_MVI_pod_Android.pdf

[7] Kotlin Puzzlers: https://habr.com/ru/company/jugru/blog/338924/

[8] Kotlin Puzzlers vol.2: https://habr.com/ru/company/jugru/blog/440974/

[9] блог-пост: https://proandroiddev.com/android-cpu-compilers-d8-r8-a3aa2bfbc109

[10] документации: https://developer.android.com/preview/features

[11] сайте: https://mobiusconf.com/?utm_source=habr&utm_medium=445238

[12] Источник: https://habr.com/ru/post/445238/?utm_source=habrahabr&utm_medium=rss&utm_campaign=445238