#MBLTDev 2014 глазами простого iOS-разработчика из Тинькофф Банка

в 16:09, , рубрики: mbltdev, mobile development, reactivecocoa, Блог компании Тинькофф Кредитные Системы, разработка под iOS

Москва • 28 октября 2014 • Digital October

Хоть и с опозданием, решил поделиться с вами своими впечатлениями от посещения #MBLTDev 2014. Отличная конференция, надеюсь, кому-то пригодятся мои заметки.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

1. На конференцию мы с коллегой немного опоздали из-за пробок. Около 10 минут Тим Мессержмидт (PayPal) томился в ожидании нас, но как только мы появились в зале, Тим сразу сделал вид, что спич давно начался, а публика ему подыграла.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Тим рассказывал об аутентификации. Приводил статистические данные, видимо, взятые на основе паролей от аккаунтов PayPal. Оказывается, 91% пользователей в качестве пароля указывают слово из топ-1000 популярных паролей. Забавный, конечно, факт, но к нашей системе авторизации пока ни какого отношения не имеет.
Всем тем сервисам, что требуют какую-либо авторизацию, советовал не перегружать пользователя сложным вводом пароля, давать возможность отображать символы пароля, в общем, всячески балансировать между необходимостью и безопасностью, не отпугивая аудиторию излишней сложностью. Агитировал публику говорить “password sucks” и советовал всем OAuth, а регистрацию — “unless u really really need it”.
Это выступление еще раз напомнило мне о том, что пользователь больше похож на ленивого ленивца, которого не стоит лишний раз напрягать, а чтобы узнать как его зовут- лучше погадать на звездах.

Итого: мне кажется, было бы действительно круто давать пользователю возможность авторизоваться через соцсети (нам — больше информации, ему- меньше головной боли). И еще показывать символы пароля при авторизации в мобильном банке, ведь чаще всего пользователь авторизуется наедине с собой.

Презентация: www.slideshare.net/elegion/ss-40957408

2. Следующим спикером оказался Эш Фюрроу (Artsy), девелопер, написавший iOS-клиент для стартапа 500px. Такой жизнерадостный и веселый, жаловался на баги Xcode 6.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Он рассказывал не просто о разработке на Swift, а об использовании ReactiveCocoa на Swift. Вообще, идея использовать ReactiveCocoa не просто витала в воздухе на конференции, о ней говорил каждый спикер, мало-мальски имеющий отношение к разработке под iOS. У Эша были хорошие примеры, которые он собирал прямо на сцене, показывал куски кода, хорошо дополняющие его выступление.
В конце доклада прозвучал вопрос от ведущего конференции: «Эш, если бы тебя наняли для разработки проекта, какой язык ты бы стал использовать?”, Фюрроу ответил, что для коммерческого проекта однозначно- ObjC.

Итого: ReactiveCocoa на Swift — интересная тема, но пока не для продакшена. А вот ReactiveCocoa на ObjC надо будет обязательно попробовать. После грядущих релизов. Время Swift еще не наступило.

Презентация: www.slideshare.net/elegion/2-functional-programming-in-swift-ashfurrow

3. Затем на сцену вышел представитель ВКонтакте Андрей Новосельский с презентацией рекламного продвижения приложений на платформе VK.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Мне было не очень интересно его выступление. Я слушал внимательно, но сейчас не могу вспомнить чего-то выдающегося. Андрей рассказывал о конфликте с Apple, о грядущем релизе маркетинговой площадки и ее крутых фичах.
Запомнился вопрос из зала: «Почему вы не даете нам токен для бэка?». Тут я оживился. Но ответ разочаровал и меня, и автора вопроса: «У нас есть различные способы связи между серверами, давайте обсудим это после выступления». Из зала кто-то недовольно буркнул: «Игры в кулуарах».

Итого: узнал, что 60% пользователей VK пользуются сервисом через мобильные приложения.

Презентация: www.slideshare.net/elegion/mbltdev

4. Илья Славутин, представитель компании Intel, начал рассказывать об их новом мобильном кроссплатформенном фреймворке INDE. В самом начале выступления прозвучала фраза: «INDE без проблем интегрируется в наши любимые IDE: Android studio, Eclipse и Microsoft Visual Studio». Все. Выводы сделаны.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Примера (как заявлено в названии доклада) как такового не показал. Докладчик был больше похож на маркетолога, нежели на технического специалиста. Да, он рассказал о том, как устроен фреймворк, о С++ обвязке над нативными фреймворками каждой из мобильных платформ (iOS, Windows Phone, Android), даже поведал о некоторых возможностях (например, работа с видео, аппаратными датчиками и т.п.), но примеры кода для iOS были на ObjC.

Я написал твит:

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

На что получил ответ:

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Всё равно код получается разный. Использовать этот фреймворк пока бы не стал. В презентации не было рассказано о тех API, которых бы не было в нэйтиве iOS.

Итого: узнал о попытке Intel создать кроссплатформенный инструмент разработки на C++ для всех платформ. Но в примерах ObjC.

Презентация: www.slideshare.net/elegion/mbltdev-intel-inde

5. Следующим на сцене Digital October в костюме и лучах софитов появился наш Дмитрий Тарасов (Тинькофф Банк).

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Публика его встречала стоя, а вся женская аудитория посмотрела на нашего мобильного архитектора влюбленными глазами. Дима был молодцом. Уверен, энергичен, рассказал про опыт ТКС.

Итого: Всё гуд. Кстати, перед тем, как задать вопрос Дмитрию, товарищ из зала похвалил наш мобильный банк. Приятно. Переглянулись с менеджером и расплылись в улыбке.

Презентация: www.slideshare.net/elegion/mbltdev-40959775

6. Следом на сцену выбрался Юрий Буянов, разработчик «Одноклассников». Ведущий мероприятия не удержался и подколол героя: «Сейчас мы узнаем, как делается приложение, которым пользуются наши бабушки и дедушки».

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Я был приятно удивлен выступлением. Юра бодро и уверенно, с паузами, как надо, рассказывал не просто о том, что такое MVVM, но и указывал на ошибки, приводил примеры с кодом. Наглядно и понятно. Начал с напоминания о том, что такое стандартный MVC. Включил первый слайд, а там фотография белки. Юрий аргументировал белочку тем, что ему просто было лень делать для MVC слайд.
Затем он рассказал про MVVM, что ModelView не должен знать ничего о View, и рассказал, как этот завет обычно нарушается. Избежать этого можно при помощи паттерна «роутер». В объекте-роутер содержится вся информация о переходах между экранами, навигации.
Корректное поведение паттерна MVVM, по мнению Юрия, лучше всего достигается при помощи того самого ReactiveCocoa. То есть при использовании механизма сигналов (когда объекты подписываются на изменения свойств других объектов). Везде этот ReactiveCocoa…
В конце выступления ведущий прокомментировал: «Приятно знать, что и в «Одноклассниках» умеют программировать».

Итого: Юра поделился ошибками реализации MVVM, которые я наблюдаю в своих проектах. Появилось желание это исправить. Еще появилось желание попробовать RAC.

Презентация: www.slideshare.net/elegion/mbltdev-mvvm

7.На сцену вышел человек в костюме (уже второй за день). Он рассказывал о безопасности. Это был Андрей Беленко (viaForensics). Я тут же мысленно взял бумажку и начал составлять чек-лист по мере его выступления.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Андрей приводил примеры использования NSUserDefaults в качестве хранилища для паролей (так делает делает приложение «Парковки Москвы»). И поделился еще кучей прикольных ошибок. Например, хранение приватных данных в голой CoreData. Показывал, как просто достать данные пользователя в этом случае. У нас все по чек-листу хорошо. Приватные данные зашифрованы, не выдуманным нами алгоритмом (стандартным), ключ шифрования меняется динамически, пароли если и храним- то в кейчейне, а адреса серверов для тестирования в релизную сборку у нас не попадают- вырезаются на этапе компиляции.
Андрей предложил обфусцировать код, говоря о особенностях языка ObjC. Действительно, все селекторы видно. Но это опасно в кейсе, когда, подключившись с дебаггером к приложению, есть возможность вызвать метод, который вернет нам что-то секретное. В «Тинькофф Кошельке» я таких методов нет. (В примере был метод, возвращавший статический ключ шифрования БД).

Итого: у нас все хорошо. Рекомендация использовать по возможности TLS вместо SSL (сертификат у бэка).

Презентация: www.slideshare.net/elegion/7-mbltru

8. Об особенностях codesign рассказывал Руслан Гуменный (e-Legion).

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Топик показался актуальным для сложного CI, но для нас это, как мне показалось, не имеет особой важности. Руслан рассказывал о том, как подписывать код и проверять подпись вручную. Полезно было узнать, что есть плагин для QuickLook, выводящий информацию об ipa-шниках. Надо будет скачать.

Итого: нужно будет скачать удобный плагин, чтобы просматривать информацию о подписи ipa.

Презентация: www.slideshare.net/elegion/8-codesign-for-i-os-final

9. Затем вышел Алексей Коровянский (Mb-Lock) с докладом на тему автоматического тестирования для Android. Немного послушал доклад. В нем Алексей рассказывал об инструментах тестирования для Android.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Итого: тесты писать очень сложно, но можно и, наверно, нужно.

10. Вернулся я в аудиторию к началу речи Руслана Шевчука из Aviasales.ru. Руслан рассказывал о Core Data. О том, что это такое и как это использовать.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

В принципе, речь была похожа на русскую озвучку презентации WWDC. Интересна была часть про iCloud, о том, что Core Data позволяет неявно авторизовать пользователя ну и, собственно, хранить данные в облаке. Не уверен, что это подходит для наших проектов.

Итого: Руслан напомнил всем как использовать Core Data и упомянул, что еще эту data и в облаке хранить можно.

Презентация: www.slideshare.net/elegion/10-aviasales-final

11. Вдруг человек в домашних тапочках, который сидел на полу рядом со мной, встал и пошел на сцену. Это был Андрей Черный (Indie-разработчик).

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

А рассказывал он про трилатерацию при помощи iBeacon. Он демонстративно раскидал по залу 3 маячка и ходил, определял свое местоположение при помощи iOS-приложения. Разумеется, попутно перечисляя все характеристики устройств, трудности, детали расчетов. Его выступление было очень интересным благодаря его собственной харизме, и я дослушал до конца.

Итого: Андрей рассказал все об iBeacon, об использовании, с примерами, где может пригодиться.

Презентация: www.slideshare.net/elegion/mbltdev-ibeacon

12. После появилась пара представителей Google — Дмитрий Нефедкин и Наталья Ефимцева. Они рассказывали о своей платформе Google Cloud.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Например, рассказали, что серверы Google по всему миру напрямую соединены проводами, что заметно ускоряет обмен данными между серверами, а обслуживание серверов полностью незаметно, то есть нет простоя для пользователей. Создавая бэк для клиентов мобильных, можно нагенерировать классы, которые будут отвечать за коммуникацию с бэком. На вопрос, чем они лучше Asure, ответили что «Дьявол в деталях».

Итого: крутой сервис, но есть опасность сильно завязываться на платформу, с которой потом в случае чего сложно будет уйти.

Презентация: www.slideshare.net/elegion/mbltdev-backend-google-cloud-google

13. Следующим был Realm, о котором рассказывал Брайан Мюнхольм.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Как я понял, это кроссплатформенная Core Data, написаная на C++, работающая ну ооооочень быстро и имеющая очень простой API (похож на Core Data’вский, но со спрятанной внутри инициализацией стека).
Судя по бенчмаркам, там все очень круто. Надо попробовать.

Итого: надо пробовать и оценивать уже на практике. Презентация многообещающая.

Презентация: www.slideshare.net/elegion/mbltdev-41144735

14. О новом языке от JetBrains рассказывал Илья Рыженков.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Если вкратце, то JetBrains планируют выпустить новый язык — Kotlin. Выглядит он как и все «языки будущего». Очень похож на Scala и Swift. Теперь в Android studio можно кодить на Scala, что неплохо.
Илья также поведал о партнерских намерениях Google использовать этот язык. Так что, думаю, все получится у JetBrains, и через пару лет можно смело переходить на Kotlin.

Итого: Swift под Android. Та-дам.

Презентация: www.slideshare.net/elegion/mbltdev-40960224

15. В попытках побороть свое дикое желание пуститься в пляс, на сцену вышел Энди Карвел, представитель Soundcloud.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Он постоянно подергивался от переизбытка эмоций. Рассказывал о том, как Soundcloud переработали iOS-клиент и использовали для этого, опять же, ReactiveCocoa. При этом приложение страдало падениями. Но при помощи массива из множества Mac mini и кучи тестов за полгода свели количество крашей до 10 в неделю. Ну что ж, неплохой результат.

Итого: блин, ну точно надо ReactiveCocoa попробовать.

Презентация: www.slideshare.net/elegion/mbltdev-ios-soundcloud

Следующие два доклада я уже не стал слушать.

Вот доклады, которые я пропустил:

16. Разработка первоклассных SDK для Android. Тай Смит, Twitter.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Презентация: www.slideshare.net/elegion/mbltdev-sdk-android-twitter

17. Как не стать заложником одной платформы. Алексей Панфилов. Parallels.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Презентация: www.slideshare.net/elegion/mbltdev-parallels

Спасибо, что дочитали. Большая благодарность компании e-Legion за фотографии и ссылки на презентации, и за мероприятие, конечно.

#MBLTDev 2014 глазами простого iOS разработчика из Тинькофф Банка

Пока.

Автор: artyomkiss

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js