3 греха мобильной разработки на Mobius 2016
До Mobius 2016 осталось 3 дня, и программа уже готова. Получилось 24 доклада о мобильной разработке: Android, iOS и кроссплатформенной. Чтобы внимательно изучить их все, надо потратить почти час времени, поэтому мы подготовили небольшой гайд по программе, которая сама собой разделилась на три направления, не привязанных к платформе:
- On the Edge;
- Hardcore;
- Software Craftsmanship;
Однако этот пост не только о конференции — каждый из докладов попадает в программу из-за того или иного «грешка», распространенного среди программистов. Давайте посмотрим подробнее…
Грех 0: Поклонение silver bullet.
Да, это вечное ожидание новых версий наших любимых тулов, фреймворков, технических решений или даже подходов к разработке. Синдром серебряной пули у программистов в крови, и, очевидно, передается воздушно-капельным путем.
Правда новые версии iOS приносят не только приятные сюрпризы, а дедлайн не дождется Java 9 в Android (а ведь мы подобного и ждем) — работать надо здесь и сейчас. Правда в том, что у нас уже есть полная обойма пусть не серебряных, но убийственно эффективных патронов, и именно им мы решили посвятить львиную долю наших докладов: зачем ждать, когда все уже готово? Бери и пиши код.
Будет лучше, скажете вы? И будете совершенно правы! Однако и сейчас у нас есть инструменты для тех, кто жаждет безопасного, reusable и maintainable кода в iOS-разработке, прямая дорога в Swift — на примере дженериков и Application Coordinators мы рассмотрим инструментарий iOS-разработчиков, который не используется в новых проектах из-за того, что его попросту не было в Objective-C или о нем не так много говорят. Подробное интервью о том, какие плюшки и грабли разложены в Swift, можно прочитать здесь.
То же самое и с Android: только главная проблема платформы — ее фрагментированность. И Google давно выкатил свое решение в виде концепции Material Design — совокупности подходов, которые дают нам возможность сделать красивое, живое приложение, не будучи гением в дизайне. При чем здесь разработчик, спросите вы? При том, что 77 процентов приложений получают плохие оценки из-за того, что выглядят ужасно, независимо от оптимизации, правильного бэкенда или широкого функционала. Как с этим справляться, расскажут Wiebe Elsinga (Android GDE/Эксперт по UX) и Владимир Иванов, на практике внедряющий Material Design в свои приложения. Кстати, большое интервью на эту тему можно почитать здесь.
Также поговорим об актуальных (а главное, уже работающих!) фреймворках:
Егор Толстой (Rambler&Co) расскажет о Typhoon;
Игорь Василенко (Yota) — о ReactiveCocoa;
Кирилл Попов (Одноклассники) — о том, когда готовые библиотеки лучше своих родных «велосипедов» на примере Fresco;
Денис Кретов и Максим Евтух (Нотиссимус) — о том, как им удалось добиться сокращения времени разработки под несколько платформ с помощью Xamarin и MvvmCross.
Грех 1: Знания «высокого уровня».
Есть как минимум 2 типа разработчиков: те, кто любит строить высокоуровневые архитектурные «воздушные замки» и те, кто закапывается по самое «не хочу» в дебри низкоуровневых оптимизаций. Программисты первого типа часто забывают о том, что разбираться в низкоуровневых нюансах следует не только разработчикам драйверов: всегда следует понимать, как ваш код будет вести себя на той или иной платформе, с той или иной VM. И это весьма распространенный «косяк», хотя среди участников наших конференций много разработчиков второго типа: тех, что любят работать поближе к ОС. Среди спикеров тоже — в этот раз у нас четверть докладов проходят под меткой «хардкор»: о «кишочках», виртуальных машинах, языках и подходах в программировании.
Два доклада, по одному на каждую платформу, выделены под реактивный подход: Матвей Мальков уже делал «вводный доклад» о реактивщине под Android в прошлом году, в этот раз речь пойдет о тех ошибках, которые допускают разработчики и о том, что такое правильное реактивное программирование на Android (кстати, на эту тему есть недавнее интервью). В стане iOS о реактивном подходе расскажет Евгений Ртищев (Сбербанк-Технологии) в докладе «Реактивный MVVM»
Про Swift мы говорили в прошлом разделе, так как там в мире iOS особо не разгуляться. А вот Android с точки зрения выбора доступных языков разработки предоставляет обширное «меню»: кроме Java 7 и 8 (в обозримом будущем), в продашн уходят приложения написанные на Kotlin и Scala. О плюсах и минусах мобильной разработки на этих языках расскажут Ян Жуланов (JetBrains) и Матвей Мальков (уже больше года пишущий на Scala).
Ну и последние два доклада в этой категории посвящены Android internals: доклад Дмитрия Полищука о тонкостях и граблях в работе с мультимедийной подсистемой Android и выступление Михаила Розумянского «Bytecode weaving 101», в котором речь пойдет про кодогенерацию на уровне байткода, про патчинг байткода в целом и преимущества и недостатки по сравнению со стандартным annotation processing«ом.
Грех 2: Лень и консерватизм.
«Что за чушь? Первый пункт про серебряные пули, а третий — про консерватизм?» Да, именно так! Мы ждем каких-то решений, изучаем их с энтузиазмом и радостью, но все это работает только там, где нам интересно. Однако судьба любого разработчика полна сюрпризов: все время происходит множество изменений, которые приходится изучать. И никто не хочет этого.
Впрочем, технологический стек мобильного разработчика обновляется еще быстрее: Material Design, Swift 3.0, React, Kotlin, новые версии виртуальных машин и операционных систем — только успевай смотреть и осваивать: все это отнимает силы и время. На Mobius мы подготовили для вас выжимку важных новостей так, чтобы вы не тратили десятки часов на серфинг в интернетах и попытки отфильтровать полезные вещи из тонн информационного «шума».
Простейший пример: Google i/o 2016 — сотни разношерстных статей и анонсов, один повторяет другой, а третий перевирает второй — при этом большая часть всего этого рассчитана на гиков и сочувствующих. Если честно, нам так и не удалось найти единого источника со всей важной для программиста информацией с конференции, поэтому лично я с удовольствием пойду слушать доклад с «горячими новостями» для разработчиков. из первых уст Дениса Неклюдова, Android GDE. А в качестве затравки можно почитать интервью с Денисом про Android N.
Второй пример: очень сложно оценить перспективы тех или иных технологий самостоятельно. В конце концов, мы все верили в успех Google Glass, и где они теперь? С другой стороны, тема VR или Android вне-телефонов растет и развивается, становясь индустрией. Пора ли двигать в этом направлении? Об этом будет пара докладов:
- Коршак Александр о практическом применении и разработке под Cardboard
- Алексей Рыбаков про Android TV Gaming (Vulkan API, Nvidia Gameworks и т.д.)
Третья тема, которую следует знать, но в которую не очень хочется вникать, это безопасность: о последних фичах iOS и Android в этой области расскажет Борис Рютин.
Конечно, пытливый читатель, дойдя до этой строчки, посчитав доклады в программе и в статье и обнаружит, что контрольная сумма не сошлась. Да, потому что на самом деле грехов четыре, и в последнем грехе многие себе не хотят признаваться:
Грех 3: Никто не любит кодить.
Да-да, кодить никто не любит — все любят решать интересные задачи и ломать голову над алгоритмическими задачами или оптимизацией. А писать-то кто будет? В любом случае, на Mobius у нас есть несколько докладов о написании тестируемого кода, о практическом «ускорении» ваших приложений, о быстром управлении набором «фич» и их конфигураций, а также о практической типографике в iOS.
А что в итоге?
Индульгенции не будет, однако на каждый грешок у нас есть, что сказать. Если же вы знаете что-то, о чем стоит говорить на конференции, а в программе этого нет — смело пишите нам, в следующий раз мы снова будем стараться сделать все на высшем уровне.
До встречи на конференции!
P.S. если вам хочется на Mobius, но до Питера не доехать, у нас есть онлайн-трансляция.
P.P. S. Если вы хотите посмотреть на доклады прошлых Mobius, они уже все выложены на нашем YouTube-канале.