Конференция завершена. Ждем вас на AppsConf в следующий раз!

Заявки на доклады

Поиск по тегам:

Архитектура

Как правильно готовить concurrency на корутинах

Иван Федяй

Я расскажу:
- Какой дизайн-паттерн продвигают разработчики корутин
- Как его натянуть на мобильную разработку
- Профиты от его использования, а также дам несколько советов

Асинхронное программирование, реактивное программирование
,
Технологии и языки для Android: Java, Kotlin
Доклад принят в программу конференции

Технологии Android

Знакомство с Android Automotive

Владислав Кузнецов

Развитие мобильных технологий кардинальным образом повлияло на пользовательский опыт внутри автомобиля. Отсутствие привычного способа взаимодействия воспринимается как что-то странное и ожидания пользователей формируют запрос на современные автомобильные системы, такие как Android Auto. Несмотря на популярность решения, у него есть ряд недостатков, которые привели Google к созданию полноценной встраиваемой системы - Android Automotive.

В рамках доклада мы познакомимся с архитектурой Android Automotive. Поговорим о преимуществах и заглянем в Hardware Abstraction Layer, для того чтобы узнать, как происходит интеграция с системами автомобиля. Я расскажу о том, какие возможности на данный момент предоставляет платформа разработчикам, и почему нам стоит обратить свое внимание на рынок Connected Cars.

Архитектура платформы Google Android
Доклад принят в программу конференции

Деливерим фичи быстрее. Опыт Badoo

Анатолий Варивончик

Этим докладом я хочу помочь другим разработчикам научиться творчески подходить к реализации фич и деливерить их на порядок быстрее.

Доклад состоит из набора практических советов, как сократить время разработки фичи, творчески обрабатывая edge cases. Обсудим, как можно упростить требования, чтобы пользователь практически не почувствовал изменений, а разработчику стало сильно проще писать код.

Этот подход, скорее всего, не подойдёт аутсорс-командам, так как нужна постоянная связь с продакт-менеджерами и возможность влиять на требования к разработке продукта.

Доклад принят в программу конференции

Вся правда о темной теме ВК

Арсений Васильев

Пользователи ВК на Android очень ждут темную тему. Чтобы их порадовать, нам нужно перекрасить более 300 экранов, пробраться через legacy в верстке и динамически поменять стили без перезагрузки Activity.

Технологии и языки для Android: Java, Kotlin
Доклад принят в программу конференции

UX как область ответственности разработчика

Алексей Быков

Мы часто говорим об удобстве разработки для программиста: “Архитектура, Многомодульность, чистый код…”.
Несмотря на это, не так много приложений могут похвастаться действительно хорошо реализованным UX’ом в проекте.
Поговорим о том, как мы можем менять в лучшую сторону UX приложения с минимальными затратами, и почему это не только задача дизайнера.

Доклад принят в программу конференции

Как работать с Bluetooth и ничего не сломать

Даниил Гончаров

1. Что такое Bluetooth low energy. BLE4 и BLE5 - что нового.
2. Архитектура Bluetooth на платформе Android.
3. Как работать с 4 Bluetooth-устройствами и получить минимальную задержку.
4. Как избежать частых ошибок, используя BLE на Android.
5. Известные и неизвестные баги Bluetooth Android, с которыми боремся четвертый год.

Архитектура платформы Google Android
,
Особенности процессов разработки и тестирования мобильного ПО
,
Нестандартные устройства и периферия
,
Аппаратные и программными возможности мобильного устройства
Доклад принят в программу конференции

Retry-диалог в одну строку или реактивная обработка ошибок своими руками

Константин Цховребов

Я расскажу, как начал решать типичную задачу с реализацией Retry-диалога для пользователя, когда в фоне приложения "что-то пошло не так", а закончил тем, что получил простое, но гибкое решение, которое подойдет для обработки ошибок, встраивающееся в приложение, добавлением очень небольшого количества кода, но позволит пользователю повторять любой фоновый процесс без потери контекста и результата параллельных задач, логировать ошибки, показывать любого вида нотификации и расширять под любые нужды.

Доклад принят в программу конференции

Как перестать бояться и начать писать UI-тесты вместе с Kakao

Konstantin Aksenov

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

В данном докладе будет рассказано, как и зачем писать UI-тесты, как сэкономить время и переиспользовать код, и раскрыта практика, как научить QA писать тесты.

Тестирование мобильного ПО
,
QA / другое
,
Особенности процессов разработки и тестирования мобильного ПО
,
Мобильные приложения / другое
Доклад принят в программу конференции

Dynamic proxy и runtime-кодогенерация на Android

Даниил Попов

- Структурный шаблон проектирования прокси;
- Какими способами можно его реализовать на Android, их плюсы и минусы;
- Подробный разбор Dynamic Proxy: как использовать, а главное для чего;
- Разбор внутреннего устройства Dynamic Proxy на Android;
- Обсуждение производительности Dynamic Proxy;
- Пишем свой механизм Dynamic Proxy, путем генерации байткода в runtime
- Составление DEX-файлов голыми руками;
- Динамическая загрузка DEX-файлов во время исполнения, работа с DexClassLoader.

Архитектура платформы Google Android
Доклад принят в программу конференции

Google Play Instant - рефакторинг длиною в жизнь

Евгений Сатуров

Весной 2017 года в рамках Early Access Program мы ввязались в разработку приложения с мгновенным запуском и за 3 месяца из скудной документации и сырого SDK собрали продукт, готовый к релизу в Play Store. С тех пор прошло два года, технология по-прежнему существует, радикально за это время изменившись. Снизился порог вхождения, а интеграция Instant Apps упростилась до установки одного флага в манифесте.

В процессе доклада мы разберёмся, откуда есть пошли Android App Bundles, причём тут вообще Dynamic Delivery, познакомимся с новыми Gradle-плагинами, попробуем забыть старые, а также попробуем найти все сюрпризы, которые приготовили для нас разработчики SDK.

Особенности процессов разработки и тестирования мобильного ПО
,
Аппаратные и программными возможности мобильного устройства
,
Мобильные приложения / другое
Доклад принят в программу конференции

О дивный новый дата-байндинг

Михаил Горюнов

(Нет, это не тот датабайндинг, который работает через раз и предлагает смешивать XML-вёрстку с Java-выражениями.)

Типичное приложение: парсим из JSON в структуру/DTO, складываем в префы или SQLite, выводим на экран.
По событиям пользовательского ввода отправляем обратно в БД или на сервер.
Это настолько рутинно, что может и должно быть автоматизировано.

Предлагаю единый интерфейс для записи и чтения данных в/из памяти, массива байт, префов, БД (последнее в разработке); подписки на изменения. Готовые методы для привязки свойств вьюшек к этим обзёрвабельным значениям. (Android и JavaFX)

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

В перспективе: потенциал для использования на сервер-сайде, простая реализация метода PATCH, пригодная для кэширования и распределёнки семантика.

Доклад принят в программу конференции

Масштабируемый UI. Внедряем, тестируем, ускоряем разработку

Артем Рудой

Мы разрабатываем несколько приложений для миллионов пользователей по всему миру, и многие фичи запускаются под А/B-тестами. В силу специфики сочетание скорости и качества разработки для нас критично. Однако при такой большой кодовой базе, множестве А/B-тестов и наличии нескольких поколений “легаси” общих UI-компонентов, держать ритм становилось все сложнее.

Решением стала разработка единой дизайн-системы Cosmos, которая упростила общение дизайнеров и разработчиков и значительно ускорила и упростила процесс разработки. Я расскажу, как мы масштабировали этот подход, как глобально рефакторили приложение, и как нам в этом помогли наши in-house-решения по тестированию. Как параметризуем UI-компоненты синхронно на всех платформах при помощи дизайн-токенов и как это упрощает структуру UI-модулей в масштабе нескольких приложений. Поделюсь, какие трудности были в процессе масштабирования UI, и как этот подход значительно улучшил качество разработки.

Архитектура мобильного приложения
,
Дизайн мобильный приложений
Доклад принят в программу конференции

Многоразовые компоненты Android-приложений Badoo. От копипасты к модулям

Андрей Шиков

У Badoo и других приложений компании есть долгая история использования одной и той же базовой платформы. Эксперименты с поддержкой различных приложений с разным набором плюшек начались достаточно давно: пробовали использовать одну кодбазу с разным набором условий или просто копипастить. В конечном итоге все это выливалось в трудности с поддержкой и внедрением новых фич.

И вот на горизонте появился запуск нового продукта, кардинально отличающегося от текущих, но в то же время сильно похожего.

В этом докладе я расскажу, как мы старались избежать проблем прошлого и подготовиться к будущему не только с точки зрения девелопера, но и процесса в целом.

Технологии и языки для Android: Java, Kotlin
,
Особенности процессов разработки и тестирования мобильного ПО
,
Архитектура мобильного приложения
Доклад принят в программу конференции

Android binary XML: deep dive

Александр Ефременков

В прикладной Android-разработке мы часто сталкиваемся с тем, что нам надо писать код, который мы все так любим: XML-код.

После компиляции приложения мы получаем на выходе те же .xml-файлы внутри apk, но их уже просто так нельзя открыть в тестовом редакторе, потому что оно бинарное и зовётся это чудо Android XML.

В этом докладе мы подумаем, зачем надо было изобретать свой формат, какие варианты реализации (sic!) XML лежат внутри APK/AAR/AAB, а также рассмотрим инструменты, которые можно использовать, чтобы пенетрировать эти форматы всяким образом.

Архитектура платформы Google Android
Доклад принят в программу конференции

Ускорение сборки многомодульного Android-приложения

Евгений Кривобоков

Доклад для всех, кто устал от медленной сборки Android-приложения и тормозящей IDE.

Расскажу, как мы прокачали сборку в монорепозитории с несколькими приложениями. Будет в основном про gradle, оптимизации, метрики и про наши грабли.

Доклад принят в программу конференции

Процессы разработки

Как разработчику мобильных приложений снизить риски и масштабировать бизнес? Юридические вопросы

Владислав Симон
Дмитрий Самигуллин

1. Оформление IT-бизнеса: Россия VS зарубежные юрисдикции. Плюсы и минусы.
2. Налоговые и корпоративные аспекты при выборе юрисдикции.
3. Оформление отношений между фаундером и инвестором. Корпоративный договор. Соглашение об опционе. Конвертируемый заем.
4. Правовая охрана объектов интеллектуальной собственности. Что нужно и не нужно патентовать?
5. Международная регистрация товарного знака и регистрация в России.
6. Регистрация ПО в России и в зарубежных странах. Депонирование, промышленный образец, Роспатент, Библиотека Конгресса США.
7. Охрана ПО в качестве изобретения: патентование в России и за рубежом. Система PCT.
8. Правильные правоотношения с работниками и подрядчиками. Оформление необходимых договоров и иных документов с целью предотвращения краж интеллектуальной собственности.
9. Установление ноу-хау (секрет производства) на предприятии. Коммерческая тайна.
10. Ответы на вопросы.

Доклад принят в программу конференции

Интерфейс, доступный для всех. Зачем и как?

Валерия Курмак

* Пользуются ли вашим продуктом клиенты с особенными потребностями?
* В чем потребности таких пользователей?
* Что зависит от дизайнера, разработчика, менеджера?
* Какие есть инструменты?
* Как легко встроить доступность в процесс разработки продукта?

Доступность (Accessibility - a11y)
Доклад принят в программу конференции

Из "лида" в разработчики

Сергей Боиштян

Мы соберемся составом из нескольких "лидов", которые вернулись в разработку, и нескольких действующих лидов. Своим обсуждением попытаемся ответить на вопросы, которые помогут, определиться вам с тем, в какую "ветку" развиваться или определить шаги, которые помогут определиться в будущем.

Секция будет в стиле BOF.

Доклад принят в программу конференции

Переезд: подготовка, выбор, освоение территории

Денис Неклюдов

Переезд в другой город, страну, континент, планету не так уж прост. Разберем по шагам, как сделать это с максимальной выгодой и получить удовольствие вместо нервного тика.

Мы с вами узнаем рынки труда, подготовимся к интервью, выберем максимально привлекательный оффер и отправимся к новым приключениям. Но чтобы не было неприятных неожиданностей, я поделюсь своим опытом переездов (Москва, Пхукет, Сингапур и Сан-Франциско) и опытом множества других экспатов, посмотревших на мир отличными от взгляда туриста глазами.

Доклад основан исключительно на опыте обычных разработчиков и не имеет налета роскошной жизни крипто-миллионеров, как и тяжелых судеб мигрантов без профессии.

Доклад принят в программу конференции

debugger; для разработчиков

Денис Мишунов

Что общего у Мерил Стрип, Генри Форда и Альберта Эйнштейна? Все они, несмотря на свои успехи в профессиональной жизни, страдали от различных проблем. Этот доклад не о разработке, а о разработчиках.

Вместо кода этот вдохновляющий доклад заставит вас запустить дебаггер на нас самих, чтобы проанализировать ошибки, с которыми мы сталкиваемся в нашей повседневной жизни как разработчики. Среди прочего, будут рассмотрены проблемы:
* Перфекционизм.
* Синдром самозванца.
* Переработка.

Этот доклад не ограничивается разработчиками и может быть применен к гораздо более широкому кругу специалистов. Тут будут психология и неврология, качество жизни, работы и их баланс. Но самое главное, доклад будет про всех нас.

Фронтенд / другое
,
Бэкенд / другое
,
Архитектуры / другое
,
Devops / другое
,
Управление / другое
,
Аналитика / другое
,
QA / другое
,
Мобильные приложения / другое
,
Другое
,
Митапы / другое
,
Профессиональное развитие инженера
Доклад принят в программу конференции

Five Trends We Are Afraid Of

Yegor Bugayenko

Programming languages, frameworks, paradigms, deployment models, hardware and software configurations change very often and fast. However, there are a few other things that also change, and which scare us. First, it’s the inevitable trend of working out of office and even out of company, in distributed temporary projects – most of us are not ready for that and don’t know how to do it. Second, the attention to the quality of code we were paying ten years ago is not what the future demands from us – programmers become a very expensive component of any project and they must think about the maintainability mess they used to leave behind. Third, the world of open source grows quickly and staying out of it is not an option anymore, however many of us don’t know how to deal with it. Fourth, we are getting closer to customers and this is what many of us are not ready for, since we used to work from behind an army of product owners, project managers, and customer relationship managers – this will be changed in the future and we must be ready. Fifth, the quickly growing arsenal of cloud services makes it very important for programmers to understand DevOps and know how to use not only frameworks and libraries, but also hosted services. These five trends are important to consider and get ourselves ready for them.

Автоматизация разработки и тестирования
Доклад принят в программу конференции

Как pet-проекты поднимают уровень и доход мобильного разработчика

Вячеслав Слуцкер

Мобильная разработка притягивает людей с абсолютно разным образованием и опытом, здесь заманчивы и высокий уровень зарплат и возможность работать удаленно или же вообще уехать работать в другую страну.
В рамках доклада я хочу поделиться подтвержденными практикой гипотезами о том, как pet-проекты поднимают уровень и доход мобильного разработчика, позволяют стать особенным в глазах работодателей.
Помимо этого я расскажу, как довести проект до готового продукта.

Методы и техника разработки ПО
,
Методологии и процессы разработки ПО; Сроки и приоритеты
,
Прототипирование
,
Мобильные приложения / другое
Доклад принят в программу конференции

Из middle в senior. Как перестать бояться и начать влиять на продукт

Анна Вошкарина

Design / Test / Repeat.

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

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

Большие проекты/команды
,
Корпоративная культура и мотивация
,
Продуктовая разработка
,
Вечеринки, развлечение
Доклад принят в программу конференции

Gamedev state of mind

Андрей Володин

В iOS-разработку я пришел, разрабатывая один самых популярных игровых движков - cocos2d. Это очень сильно отпечаталось на моем восприятии software engineering’a и подходу к разработке.

В докладе я бы хотел поделиться своими особенностями понимания внутренностей мобильных SDK, приемами в дизайне систем, анализу производительности и оптимизациях. Классическая разработка гораздо ближе к геймдеву, чем вы думаете!

Доклад принят в программу конференции

Эмпатия в IT: как рационально использовать свою человеческую природу

Андрей Бреслав

Я расскажу о том, как важны эмоции. Не абстрактно важны, а для дела — на работе в IT. Эмпатия — это наше восприятие эмоций, своих и чужих. Я буду рассматривать ее как рабочий инструмент.

Почему бывает, что взрослые люди с техническим образованием не могут договориться, обсуждая технические вопросы? Как так бывает, что работа, которая приносит чистую радость и интерес, ведет к выгоранию?

Мы поговорим о том, как учитывать свои и чужие эмоции, чтобы получать то, что мы хотим легче и быстрее. Упомянем концепцию Non-violent communication Маршала Розенберга, основные принципы когнитивно-поведенческой терапии (CBT) и даже "эмоциональный интеллект".

Модели руководства
,
Корпоративная культура и мотивация
,
Поиск и развитие команды
,
Управление / другое
Доклад принят в программу конференции

Автотесты в Авито. Зачем они, как помогают, сколько стоят

Алексей Шпирко

Расскажу, как мы строили автотестирование в Авито. Что получилось хорошо, а что хотелось бы исправить. С чем непременно придется столкнуться тем, кто начнет этим заниматься "с нуля", и с чем столкнулись мы, когда казалось, что все успешно сделано.

Доклад принят в программу конференции

Не морочьте мне голову со своим функциональным программированием

Виталий Брагилевский

Адепты функционального программирования очень любят завлекать неопытных программистов обещаниями идеальной выразительности кода, его стопроцентной корректности, лёгкости поддержки и простоты рефакторинга. Иные даже пророчат высочайшую производительность и попадание после смерти напрямую в райские кущи. Опытные разработчики знают, что ничего такого не бывает, программирование — это тяжёлый труд, а серебряные пули, может, и помогают от вампиров, но никак не в процессе разработки ПО. С другой стороны, если что-то может хоть как-то облегчить труд программиста, то почему бы не попробовать этим чем-то воспользоваться?

В своём докладе я расскажу о тех элементах функционального стиля программирования, которые уже проникли в промышленные языки программирования, такие как Swift и Kotlin, а также о том, что пока туда не попало (но может когда-нибудь попасть!). Разработчики этих языков прекрасно знакомы с функциональным программированием, поэтому они смогли сделать удобным его применение «в малом», предусмотрев многие, хотя и не все необходимые компоненты. Впрочем, чем дальше, тем качественнее и полнее соответствующая поддержка реализуется.

Уметь программировать в функциональном стиле полезно не для того, чтобы казаться умнее (я хаскелист и знаю, о чём говорю!), а для того чтобы упрощать себе работу. Посмотрим, как этим можно воспользоваться!

Доклад принят в программу конференции

Технологии iOS

URLProtocol: как превратить в URL всё что угодно

Алексей Цветков-Омеличев

В приложении нам часто приходится выполнять запросы для получения данных из сети. Но зачастую этим и ограничивается использование инструментов URL Loading System.

В докладе я расскажу про то, как с помощью URLProtocol можно взглянуть на решения популярных проблем под новым углом. Я поделюсь историей того, с чего всё началось, и как мы в ВКонтакте пришли к использованию URL-протоколов. Мы создадим собственный URL-протокол, разберёмся в процессе кэширования ответов на запросы через URLCache, а также рассмотрим варианты использования URLProtocol на примере приложения ВКонтакте и изучим преимущества и недостатки использования такого подхода.

Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура платформы iOS
Доклад принят в программу конференции

Мифы iOS-разработки

Александр Сычев

175 лет назад написана первая компьютерная программа. С тех пор мир разработки развивался молниеносными темпами, решая все более сложные и порождая новые задачи. Уследить за постоянно меняющимися рабочими практиками и правилами одному человеку невозможно. Пробелы в знаниях в практической области порождают домыслы, некоторые из них закрепляются в индустрии как верный ответ на конкретный вопрос.

В докладе я расскажу о тех мифах iOS-разработки, с которыми сталкиваюсь при проведении собеседований, при общении на конференциях или с коллегами. Слушатели узнают о распространенных заблуждениях в паттернах проектирования, использовании стандартных SDK, скорости разработки. В конце разберем, зачем над приложением "Сбербанк Онлайн" работает больше 100 программистов, хотя "его можно переписать за пару недель". 

Архитектурные паттерны
,
Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура платформы iOS
,
Архитектура мобильного приложения
Доклад принят в программу конференции

Готовим in-app-покупки вместе

Макс Никулин

- Для начала рассмотрим, что из себя представляют, как устроены in-app-покупки, и как с ними работать на базовом уровне;
- затем теоретически расскажу о максимально "правильном" способе обработки покупок, с валидацией чеков и максимальной защищенностью;
- как устроены автопродляемые подписки, в чем их особенности, как работает триальный период, подводные камни;
- как жить без сервера и почему это путь в никуда, если вы анализируете прибыль подписок по различным рекламным компаниям;
- серверные уведомления об изменении в подписках и как с ними работать;
- отличия между iOS- и Android-платформами.

Распространение приложений, магазины приложений
,
Бэкенд мобильных приложений
,
Архитектура мобильного приложения
,
Безопасность в мобильных приложениях
Доклад принят в программу конференции

За пределами канонических способов ускорения запуска приложения

Тимур Юсипов

Любой мобильный разработчик скажет вам, что сократить время запуска приложения можно с помощью отложенного выполнения задач, разгрузки главного потока, сокращения конкуренции потоков за ресурсы, статической линковки зависимостей и так далее.

Что, если после выполнения этих советов время запуска все еще не впечатляет? В каком же направлении можно было бы двинуться дальше?

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

Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура платформы iOS
,
Архитектура мобильного приложения
,
Мобильные приложения / другое
Доклад принят в программу конференции

RunLoop на главном потоке

Антон Сергеев

Для платформ Apple плавность интерфейса - это не опция. UIKit и AppKit не являются потокобезопасными и все операции с интерфейсом могут выполняться только на главном потоке. Таких операций приходится делать крайне много. Учитывая это, возникает потребность планировать задачи главного потока таким образом, чтобы пользователь воспринимал интерфейс отзывчивым.

В докладе мы рассмотрим механизмы, заложенные в RunLoop, позволяющие решать поставленную задачу. Разберемся каким образом устроена работа UIScrollView с RunLoop, которая позволила сделать скролл плавным. Научимся добиваться схожего поведения в своих компонентах. Рассмотрим другие примеры использования RunLoop стандартными компонентами системы.

Доклад принят в программу конференции

Баги при работе с системной клавиатурой

Константин Мордань

Если в вашем приложении есть элементы, которые зависят от состояния клавиатуры, то вам достаточно подписаться и начать обрабатывать UIKeyboard-уведомления. Это звучит просто и работает, но к сожалению не всегда.

Можно допустить ошибку в расчетах, забыть учесть режим Slide Over на iPad, а может отказаться так, что система отдаст Вам какие-то невалидные координаты клавиатуры, и они будут за пределами экрана устройства, или вообще окажется, что система создала второе клавиатурное окно.

В своем докладе я расскажу про эти и другие проблемные места, которые могут возникнуть при работе с клавиатурой, а также поделюсь опытом обнаружения вышеперечисленных проблем – сбор логов, отправка статистики и вывод графиков на dashboard, реализация watchdog’а.

Особенности процессов разработки и тестирования мобильного ПО
Доклад принят в программу конференции

Реактивные координаторы

Антон Назаров

Доклад поднимет широкоизвестный паттерн "Координатор" на реактивный уровень.

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

Мобильные приложения / другое
Доклад принят в программу конференции

Protocol Oriented Programming: почему, зачем и что дальше?

Андрей Мишанин

- Исторический контекст, который привёл к появлению Protocol-Oriented Programming (POP);
- суть POP и основные характерные черты, которые отсутствуют в других парадигмах;
- практические примеры использования POP;
- набор материалов для дальнейшего погружения в тему.

Методы и техника разработки ПО
,
Технологии и языки для iOS: ObjectiveC, Swift
Доклад принят в программу конференции

Когда почта доставляет: боремся с потерями push-уведомлений в iOS

Ася Свириденко

Мы привыкли считать процесс доставки push-уведомлений чем-то неподвластным разработке. Мы добавляем пуши в наши приложения, настраиваем, обвешиваем метриками, но на вопросы, почему пользователи видят лишь часть информации, разводим руками. Apple чётко указывает наше место: ”the delivery of remote notifications is not guaranteed”.

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

Я расскажу:
* какие жизненные трудности заставили нас встать на эту скользкую дорожку;
* как организован процесс перезапроса пушей;
* про возможности и ограничения push extension'а;
* и неизменно - какие грабли мы собрали в ходе работы.

Как только APNs-сервис перестанет выкидывать наши пуши и увеличит их доставляемость, всё, о чём я собираюсь вам рассказать, станет бесполезным, но AppsConf Moscow 2019 однозначно наступит раньше. Так что заходите узнать, как вы сами можете повлиять на этот процесс.

Архитектура платформы iOS
,
Особенности процессов разработки и тестирования мобильного ПО
,
Бэкенд мобильных приложений
Доклад принят в программу конференции

Как сделать E2E UI-тесты iOS-приложения зелёными, много и на PR

Артём Разинов

Расскажу, как начать писать функциональные UI-тесты, сократить регрессионное тестирование огромного приложения до нескольких часов и закончить со стабильным и зеленым на 95% тест-суитом, с запуском тестов на каждый pull request, расскажу, как можно достичь "сотни" в плане зелёности UI-тестов.

Конкретные техники, приемы и наши находки в Авито, которые универсальны и помогут каждому. Доклад будет посвящен iOS, тем не менее, некоторые наши практики могут перенять также команды Android и Web.

Разработка библиотек, включая open source библиотеки
,
Автоматизация тестирования
,
Тестирование мобильного ПО
,
Приёмочные и функциональные тесты
,
Технологии и языки для iOS: ObjectiveC, Swift
,
Особенности процессов разработки и тестирования мобильного ПО
Доклад принят в программу конференции

Backend Driven UI: строим интерфейс из компонентов

Вячеслав Советкин

Практически любой экран можно представить как набор компонентов. А что, если построить систему, в которой работа над фичей сводится к созданию компонента и написанию логики для него?

Обсудим, как и зачем мы построили такую систему, что из этого поняли и что собираемся делать с этим дальше.

Доклад принят в программу конференции

Как мы запустили 2ГИС под CarPlay и до сих пор расхлебываем

Иван Шевелев

Когда на WWDC 2018 анонсировали возможность создания навигационных приложений под Apple CarPlay, мы решили засунуть наш навигатор пользователям в автомобили. Однако, уже начиная с Keynote, Apple начала вставлять нам палки в колеса.

Я расскажу, как начать разработку под CarPlay, с чем придется столкнуться и какие костыли придется навертеть из-за багов в CarPlay.framework. Поговорим о документации, инструментах разработки и семпл-приложении с WWDC.

Технологии и языки для iOS: ObjectiveC, Swift
Доклад принят в программу конференции