Москва • 28 октября, 2014 • Digital October Хоть и с опозданием, но решил поделиться с вами впечатлениями от посещения #MBLTDev 2014. Отличная конференция, надеюсь, мои заметки кому-нибудь пригодятся.
1. Мы с коллегой немного опоздали на конференцию из-за пробок.
Минут 10 Тим Мессержмидт (PayPal) томился в ожидании нас, но как только мы появились в зале, Тим сразу сделал вид, что матч уже давно начался, а зрители подыгрывают ему.
Тим говорил об аутентификации.
Он предоставил статистические данные, по всей видимости, основанные на паролях к учетным записям PayPal. Оказывается, 91% пользователей указывают в качестве пароля слово из топ-1000 популярных паролей.
Забавный факт, конечно, но к нашей системе авторизации он пока не имеет никакого отношения.
Всем тем сервисам, которые требуют какой-то авторизации, я посоветовал не перегружать пользователя сложным вводом пароля, дать возможность отображать символы пароля, в общем, всячески балансировать между необходимостью и безопасностью, не отпугивая аудиторию ненужная сложность.
Он призвал общественность сказать: «пароль — отстой» и посоветовал всем использовать OAuth и регистрацию — «если только вам это действительно не нужно».
Эта речь еще раз напомнила мне, что пользователь скорее похож на ленивого ленивца, которого не стоит лишний раз напрягать, и чтобы узнать его имя, лучше погадать по звездам.
В целом: я думаю, было бы очень здорово дать пользователю возможность авторизоваться через социальные сети (больше информации для нас, меньше головной боли для него).
А также показывать символы пароля при авторизации в мобильном банке, ведь чаще всего пользователь заходит в систему один.
Презентация: www.slideshare.net/elegion/ss-40957408
2. Следующим спикером стал Эш Ферроу (Артси), разработчик, написавший iOS-клиент для стартапа 500px. Такой веселый и жизнерадостный, он жаловался на ошибки Xcode 6.
Он говорил не только о разработке на Swift, но и об использовании ReactiveCocoa в Swift. В общем, идея использования ReactiveCocoa не просто так витала в воздухе на конференции, о ней говорил каждый спикер, имеющий хоть какое-то отношение к iOS-разработке.
У Оши были хорошие примеры, которые он собирал прямо на сцене, показывая кусочки кода, которые хорошо дополняли его презентацию.
В конце доклада был вопрос ведущего конференции: «Шш, если бы тебя наняли для разработки проекта, какой язык ты бы использовалЭ» Ферроу ответил, что для коммерческого проекта обязательно ObjC. В целом: ReactiveCocoa на Swift — интересная тема, но пока не для производства.
Но вам обязательно стоит попробовать ReactiveCocoa на ObjC. После предстоящих релизов.
Время Свифта еще не пришло.
Презентация: www.slideshare.net/elegion/2-functional-programming-in-swift-ashfurrow 3. Затем на сцену вышел представитель ВКонтакте Андрей Новосельский с презентацией рекламного продвижения приложений на платформе ВК.
Меня не очень интересовало его выступление.
Я внимательно слушал, но сейчас не могу вспомнить ничего выдающегося.
Андрей рассказал о конфликте с Apple, предстоящем выпуске маркетинговой платформы и ее крутых функциях.
Помню вопрос из зала: «Почему бы вам не дать нам жетон на поддержкуЭ» Тут я оживился.
Но ответ разочаровал и меня, и автора вопроса: «У нас разные методы связи между серверами, давайте обсудим это после презентации».
Кто-то из зала недовольно пробормотал: «Игры в сторонке».
Итого: Я выяснил, что 60% пользователей ВК пользуются сервисом через мобильные приложения.
Презентация: www.slideshare.net/elegion/mbltdev 4. Илья Славутин, представитель Intel, начал рассказывать об их новом мобильном кроссплатформенном фреймворке INDE. В самом начале выступления была произнесена фраза: «INDE органично интегрируется в наши любимые IDE: Android Studio, Eclipse и Microsoft Visual Studio».
Все.
Выводы сделаны.
Не был показан пример (как указано в названии отчета).
Спикер был больше похож на маркетолога, чем на технического специалиста.
Да, он рассказал о том, как работает фреймворк, о C++-фреймворке поверх родных фреймворков каждой мобильной платформы (iOS, Windows Phone, Android) и даже рассказал о некоторых возможностях (например, работе с видео, аппаратными датчиками, и т. д.), но примеры кода для iOS были на ObjC.
Я написал в Твиттере:
На что я получил ответ:
Все равно код получается другой.
Я бы пока не использовал эту структуру.
В презентации не говорилось о тех API, которых не будет в нативной iOS. В целом: я узнал о попытке Intel создать кроссплатформенный инструмент разработки на C++ для всех платформ.
Но в примерах ObjC. Презентация: www.slideshare.net/elegion/mbltdev-intel-inde 5. Следующим на сцене Digital October появился наш Дмитрий Тарасов (Тинькофф Банк) в костюме и софитах.
Публика приветствовала его стоя, и вся женская публика смотрела на нашего мобильного архитектора влюбленными глазами.
Дима был великолепен.
Уверенный, энергичный, он рассказал об опыте ТКС.
В целом: Все хорошо.
Кстати, прежде чем задать вопрос Дмитрию, друг из зала похвалил наш мобильный банк.
Хороший.
Мы с менеджером переглянулись и расплылись в улыбке.
Презентация: www.slideshare.net/elegion/mbltdev-40959775 6. Следующим на сцене вышел Юрий Буянов, разработчик «Одноклассников».
Ведущий мероприятия не удержался и подразнил героя: «Сейчас мы узнаем, как сделано приложение, которым пользуются наши бабушки и дедушки».
Я был приятно удивлен выступлением.
Юра весело и уверенно, с паузами по мере необходимости рассказывал не просто о том, что такое MVVM, но и указывал на ошибки и приводил примеры с кодом.
Наглядно и понятно.
Я начал с напоминания о том, что такое стандарт MVC. Я включил первый слайд, а там было фото белки.
Юрий доказывал белке, что ему просто лень делать слайд для MVC. Затем он рассказал о MVVM, о том, что ModelView ничего не должен знать о View, и о том, как это соглашение обычно нарушается.
Этого можно избежать, используя шаблон «маршрутизатор».
Объект маршрутизатора содержит всю информацию о переходах между экранами и навигации.
Корректного поведения паттерна MVVM, по мнению Юрия, лучше всего добиться с помощью того же ReactiveCocoa. То есть при использовании сигнального механизма (когда объекты подписываются на изменения свойств других объектов).
Этот ReactiveCocoa повсюду.
В конце выступления ведущий прокомментировал: «Приятно осознавать, что «Одноклассники» тоже умеют программировать».
Итого: Юра поделился ошибками реализации MVVM, которые я вижу в своих проектах.
Было желание это исправить.
У меня тоже было желание попробовать RAC. Презентация: www.slideshare.net/elegion/mbltdev-mvvm 7. На сцену вышел мужчина в костюме (второй раз за день).
Он говорил о безопасности.
Это был Андрей Беленко (viaForensics).
Я тут же мысленно взял лист бумаги и начал составлять контрольный список, пока он говорил.
Андрей привел примеры использования NSUserDefaults в качестве хранилища паролей (это делает приложение «Парковки Москвы»).
И поделился кучей классных ошибок.
Например, хранение личных данных в чистом CoreData. Показано, насколько легко в этом случае получить пользовательские данные.
По чек-листу все хорошо.
Приватные данные шифруются с помощью не придуманного нами алгоритма (стандартного), ключ шифрования меняется динамически, пароли, если они хранятся, хранятся в связке ключей, а адреса серверов для тестирования не включены в сборку релиза.
; они вырезаются на этапе компиляции.
Андрей предложил запутать код, рассказав об особенностях языка ObjC. Действительно, все селекторы видны.
Но это опасно в том случае, когда, подключившись к приложению с отладчиком, можно вызвать метод, который вернет нам что-то секретное.
В Тинькофф Кошельке таких способов нет. (Пример включал метод, который возвращал статический ключ шифрования базы данных).
В целом: дела у нас идут хорошо.
Мы рекомендуем использовать TLS вместо SSL, когда это возможно (сертификат от спонсора).
Презентация: www.slideshare.net/elegion/7-mbltru 8. Руслан Гуменный (e-Legion) рассказал об особенностях коддизайна.
Тема показалась актуальной для сложных CI, но для нас мне показалось, что она не особо важна.
Руслан рассказал о том, как подписывать код и проверять подпись вручную.
Было полезно узнать, что для QuickLook есть плагин, отображающий информацию о пользователях ipa. Мне придется скачать его.
Итого: вам нужно будет скачать удобный плагин для просмотра информации о подписи ipa.
Презентация: www.slideshare.net/elegion/8-codesign-for-i-os-final
9. Далее Алексей Коровянский (Mb-Lock) выступил с докладом на тему автоматического тестирования под Android. Я немного послушал доклад. В нем Алексей рассказал об инструментах тестирования под Android.
В целом: писать тесты очень сложно, но можно и, наверное, нужно.
10. Я вернулся к аудитории в начале выступления Руслана Шевчука из Aviasales.ru. Руслан рассказал о Core Data. О том, что это такое и как этим пользоваться.
В принципе речь была похожа на русскую озвучку презентации WWDC. Интересна была часть про iCloud, что Core Data позволяет неявно авторизовать пользователя и, по сути, хранить данные в облаке.
Я не уверен, подойдет ли это для наших проектов.
Итого: Руслан напомнил всем, как использовать Core Data, и упомянул, что эти данные также можно хранить в облаке.
Презентация: www.slideshare.net/elegion/10-aviasales-final 11. Внезапно мужчина в тапочках, сидевший на полу рядом со мной, встал и вышел на сцену.
Это был Александр Черный (инди-разработчик).
И он говорил о трилатерации с использованием iBeacon. Он демонстративно раскидал по залу 3 маяка и ходил вокруг, определяя свое местоположение с помощью iOS-приложения.
Разумеется, попутно перечисляя все характеристики устройств, трудности и подробности расчетов.
Его выступление было очень интересным в силу его собственной харизмы, и я дослушал его до конца.
Итого: Александр рассказал всё про iBeacon, о его использовании, с примерами, где он может быть полезен.
Презентация: chernyy.ru/yapse/upload/trilateration-with-ibeacons.pdf 12. Потом появилась парочка представителей Google — Дмитрий Нефедкин и Наталья Ефимцева.
Они рассказали о своей платформе Google Cloud.
Например, они рассказали, что серверы Google по всему миру напрямую соединены проводами, что значительно ускоряет обмен данными между серверами, а обслуживание серверов совершенно незаметно, а значит, нет простоев для пользователей.
При создании бэкенда для мобильных клиентов вы можете сгенерировать классы, которые будут отвечать за связь с бэкендом.
На вопрос, чем они лучше Asure, они ответили, что «Дьявол кроется в деталях».
В целом: классный сервис, но есть опасность слишком привязаться к платформе, от которой потом будет сложно отказаться в случае чего.
Презентация: www.slideshare.net/elegion/mbltdev-backend-google-cloud-google 13. Следующим был Realm, о котором говорил Брайан Манхолм.
Насколько я понимаю, это кроссплатформенный Core Data, написанный на C++, работающий оооочень быстро и имеющий очень простой API (похожий на Core Data, но со скрытой внутри инициализацией стека).
Судя по бенчмаркам, там всё очень круто.
Надо попробовать.
Итог: нужно пробовать и оценивать на практике.
Презентация многообещающая.
Презентация: www.slideshare.net/elegion/mbltdev-41144735
14. Илья Рыженков рассказал о новом языке от JetBrains.
Короче говоря, JetBrains планирует выпустить новый язык — Kotlin. Так выглядят все «языки будущего».
Очень похоже на Scala и Swift. Теперь вы можете писать код на Scala в студии Android, и это хорошо.
Илья также рассказал о намерениях партнеров Google использовать этот язык.
Так что, думаю, у JetBrains всё наладится, и через пару лет можно будет смело переходить на Kotlin. Итого: Swift для Android. Та-дам.
Презентация: www.slideshare.net/elegion/mbltdev-40960224
15. В попытке побороть свое дикое желание начать танцевать, на сцену вышел Нди Карвел, представитель Soundcloud.
Он постоянно дергался от переизбытка эмоций.
Он рассказал о том, как Soundcloud переработал клиент iOS и снова использовал для этого ReactiveCocoa. В то же время приложение страдало от сбоев.
Но с помощью множества Mac mini и множества тестов за шесть месяцев мы сократили количество сбоев до 10 в неделю.
Что ж, не плохой результат. В целом: блин, мне обязательно нужно попробовать ReactiveCocoa. Презентация: www.slideshare.net/elegion/mbltdev-ios-soundcloud Следующие два доклада я не слушал.
Вот отчеты, которые я пропустил: 16. Разработка первоклассных Android SDK. Тай Смит, Твиттер.
Презентация: www.slideshare.net/elegion/mbltdev-sdk-android-twitter
17. Как не стать заложником одной платформы.
Алексей Панфилов.
Параллели.
Презентация: www.slideshare.net/elegion/mbltdev-parallels
Спасибо за чтение.
Огромное спасибо e-Legion за фотографии и ссылки на презентации и, конечно же, за мероприятие.
Пока.
Теги: #разработка iOS #разработка мобильных приложений #Kotlin ##mbltdev #reactivecocoa
-
Стоит Ли Вам Иметь Резервную Копию Exchange?
19 Oct, 24 -
Обзор Ноутбука Samsung Rf510-S03Tr
19 Oct, 24 -
Интернет-Термометр Tp-Link Mr3020
19 Oct, 24 -
5 Этапов Разработки Микросервиса
19 Oct, 24