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

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

Поиск по тегам:
Показать все доклады

Introductory

Изучим, как можно упростить процесс написания кода за счет генерации однотипных и повторяющихся классов. Рассмотрим основной фреймворк — KotlinPoet, который будет нам с этим помогать. Разберемся, как работает Annotation Processing и как написать свой процессор для обработки аннотации, а также в чем разница между apt и kapt, и как кодогенерация может повлиять на нашу жизнь.

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

General

- Как защитить свой Pet-project в процессе создания?
- Что делать, если вы получили претензию или иск от работодателя с требованием передать все материалы по Pet-project?
- Как доказать, что Pet-project был создан в отрыве от основной работы и принадлежит вам?

В докладе ответим на данные вопросы и обсудим современный подход по защите Pet-project, рассмотрим практику и рекомендации по защите своего творения!

Все желающие могут заранее направить на почту vadim@kiryukhin.com вопросы, которые мы постараемся обсудить на встрече!

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

1. Знакомство с Китаем: как иностранные приложения чувствуют себя на китайском рынке.
2. Перспективы развития приложений на рынке страны, полезные секреты-плюшки для разработчиков.
3. Что придется преодолеть для покорения рынка Поднебесной.
4. Методология вывода мобильного приложения в КНР, как все сделать без ошибок.

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

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

- Нужны ли вообще code review? Как работать без них.
- Автоматизация в code review — пусть всё делают роботы!
- Слишком долгий code review, как быть?
- Code review в опенсорс-проектах.
- Алгоритм просмотра pull request — как найти максимум проблем.
- Как обучать людей с помощью код-ревью?
- KPI по режектам, комментам, апрувам.

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

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

- Где лучше работать и развиваться?
- Work Life Balance.
- Особенности коммуникации.
- Где выше зарплаты.

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

Постоянно спорите, а не пора ли попробовать кросс-платформу в своей команде, но не знаете как? Боитесь, что после ее внедрения вы огребете больше проблем, чем ускорите разработку? Зоопарк кросс-платформы на рынке, но не знаете, какую технологию использовать в вашем случае? Представители разных кросс-платформенных технологий в ходе дискуссии за круглым столом ответят на эти и другие вопросы, а также поделятся опытом использования flutter, react native, kotlin mpp в проде.

- Почему kotlin mpp, а не С++?
- Могут ли swift-разработчики полноценно поддерживать кросс-платформенный kotlin-код или это только фантазии?
- Сколько времени уходит у разработчиков на освоение нового языка для кросс-платформы (Dart/Kotlin)?
- Зачем котлин, если есть flutter? Сколько времени занимает разработка ui на обеих платформах?

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

Технологии iOS

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

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

В 2020 году на сессии WWDC Apple представила доработанную версию своего фреймворка SwiftUI, предлагающего новый подход к реализации UI без InterfaceBuilder и AutoLayout. Однако, несмотря на свою заявленную готовность к использованию в бою, работа с данной технологией требует знания ряда нюансов и узких мест, решение которых может оказаться не простым и не быстрым. Одним из таких важных моментов является реализация полноценной навигации в приложении SwiftUI.

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

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

Все чаще разработчики интегрируют в свои приложения подписочную модель монетизации, а API In-App Purchases все так же оставляет желать лучшего, даже спустя годы. И если с локальной верификацией чеков и подписок все более-менее известно, минное поле пройдено, фреймворки написаны, то о взаимодействии между клиентом и сервером информации пока маловато.

Какие баги есть на стороне Apple? Как обойти те или иные ошибки? С какими корнер-кейсами можно столкнуться при проектировании системы? На эти вопросы мы постараемся ответить в своем докладе, осветив вопрос со стороны iOS и бэкенда. Мы расскажем о том, как работать с чеками на стороне бэкенда, что может пойти не так и какие "сюрпризы" может преподнести Apple. А на стороне клиента расскажем, какие существуют корнер-кейсы, что делать если Apple и бэкенд "не договорились" и предоставить пользователю максимально качественный UX.

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

В этом докладе мы хотим рассказать о нашем опыте перехода в offline first с использованием Core Data и UIManagedDocument. Мы затронем такие темы, как архитектура, процесс проектирования и масштабирование, а также о том, как мы осуществляли работы в живом проекте.

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

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

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

На простом примере интерфейса выбора даты я покажу всё удобство и красоту нового декларативного фреймворка построения пользовательских интерфейсов от Apple.

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

Поговорим про 3 основные составляющие Apple Watch: Complications, Notifications и Apps, как сделать их на SwiftUI и чем отличается SwiftUI 2.0 на watchOS от iOS. А также посмотрим, как сделать приложение на архитектуре Flux, используя Combine.

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

Кросс-платформенная разработка

- Что такое Kotlin Multiplatform Mobile?
- Актуальная ситуация по разобранным в прошлом году проблемам технологии, что из проблем уже было решено, появились ли новые и чем порадовал Kotlin 1.4.
- Обзор текущего состояния экосистемы Kotlin Multiplatform Mobile — где и какая есть документация, гайды, какие примеры доступны, под какие задачи уже есть готовые библиотеки и как их искать, какие компании используют KMM и что об этом говорят.
- Разбор нашего open source-набора библиотек MOKO (https://moko.icerock.dev/) — в эти библиотеки вложен наш двухлетний опыт разработки мобильных приложений с использованием Kotlin Multiplatform. Можно будет узнать, какие библиотеки и инструменты какие задачи решают, как их использовать и какие выводы мы сделали за год работы в open source.
- Текущее состояние нашей библиотеки для реализации UI из общего кода — MOKO Widgets. Что позволяет делать данная библиотека, какие задачи решаются просто, какие сложно, какие концепции заложены в основе библиотеки и наши выводы по итогу использования библиотеки в двух продакшн-проектах.

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

Наверное, все уже слышали о новейших фреймворках Apple SwiftUI и Combine. В своём докладе я подробно расскажу об их плюсах и минусах, а также сравню старый и новый подход. Не погружаясь глубоко в детали реализации, я поделюсь частичкой опыта, накопленного более чем за год ежедневной работы над двумя боевыми SwiftUI-проектами. За это время мне удалось попробовать разные подходы и собрать огромное количество шишек, но самое главное – сформировать полноценное мнение о возможностях и перспективах этих прекрасных фреймворков. Если вы сомневаетесь, стоит ли сейчас погружаться в чудесный мир декларативного UI и реактивщины – этот доклад точно поможет вам определиться.

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

Итак, вы решили внедрить Kotlin Multiplatform в свой проект, чтобы переиспользовать логику на iOS и Android. Рано или поздно вы захотите сделать Большую Фичу™, которая будет включать в себя и сложную многопоточную логику, и походы в сеть, и кэширование. Каждый из этих этапов вы привыкли делать на своей платформе (ведь делали это тысячу раз). Но в мультиплатформе нет привычных библиотек и подходов, зато есть абсолютно новый стек и тысяча новых способов элегантно выстрелить себе в ногу. Мы в Картах прошли через тернистый путь реализации фичи в мультиплатформе и спешим поделиться с вами.

В докладе рассмотрим:
- какие есть подходы/библиотеки для написания многопоточной логики в Kotlin Mutliplatform Mobile;
- как быть с реактивщиной в KMM?
- чего стоит избегать при написании common-кода;
- networking и кэширование.

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

Архитектура

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

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

Технологии Android

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

На текущий момент у нас в репозитории Badoo и Bumble Android-приложений более 1 миллиона строк Java- и Kotlin-кода, более 350 Gradle-модулей, и на таком масштабе неизбежно появляются проблемы с производительностью инструментов разработки.

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

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

В докладе будут рассмотрены ограничения, которые могут нам помешать выполнить какую-либо задачу в фоне, а также инструменты, которые помогают эти ограничения обходить. Мы рассмотрим, как эти инструменты эволюционировали, какие ограничения появлялись в разных версиях Android и как их можно обойти на текущий момент. Познакомимся с новыми ограничениями, которые были введены в последних версиях Android и узнаем, как они могут повлиять на работу приложения. В частности будут рассмотрены: Doze Mode, App Standby Mode, Service launch from background, Activity launch from background, App Buckets, Services, JobScheduler, AlarmManager, WorkManager, Location.

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

В продукте, над которым я работал, была поставлена задача реализовать темную тему. Изначально план был максимально прост: дизайнеры делают тёмную тему, а разработчики добавляют файл value-night/color.xml — это если в двух словах. Мы оценили его в 2 спринта. Но в процессе её проектирования мы поняли, что наш дизайн и наши iOS- и Android-приложения не готовы к темной теме и нам пришлось переделывать почти всё приложение.

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

После доклада вы будете знать:
1) Как сделать удобный UI Kit для дизайнеров и разработчиков (Android и iOS). Как организовать палитру цветов, шрифтов, иконок и компонентов.
2) Как правильно реализовать этот UI KIT с использованием материальных компонентов в Android-приложении.
3) Как поддержать новый подход к edge-to-edge.
4) Как реализовать темную тему.

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

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

В 2017 году мы в Eatigo решили создать новое приложение, используя недавно вышедшие Android Architecture Components, Kotlin и Coroutines.

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

- Как мы использовали Coroutines для работы в фоне.
- Какие проблемы при работе с LiveData мы встретили.
- Эволюция нашей архитектуры и тех. стека. Как мы пробовали CoroutinesLiveData и LiveData Builders.
- Как мы переходим к использованию Flow вместо LiveData.

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

Jetpack Compose захватил мир UI в Андроиде уже до выхода бета-версии. Уже сейчас, многие используют его для создания сложных визуальных элементов, тратя гораздо меньше усилий, чем при работе с "классической" системой View. Но история этого фреймворка не заканчивается на красивых интерфейсах: Google заложили в его основу гораздо больше возможностей для построения древообразных структур.

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

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

Часто мы хотим что-то изменить в gradle-файлах: например, добавить новое поле в BuildConfig. Но уже после нескольких итераций gradle-файлы тяжело читать или модифицировать. В докладе мы рассмотрим, как создать свой gradle-плагин, что позволит сделать код немного чище в gradle-файлах и исходниках.

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

Последние полгода я работал на проекте с использованием Badoo RIBs и MVICore вместо привычных MVP и (Semi) Clean Architecture. Набил шишки, порадовался удачным моментам. И вот наступило время ретроспективы.

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

Вы всё ещё работаете на MVP и MVVM и вам интересно узнать, как оно бывает по-другому? Приходите и получите обзор альтернатив. В основном — вариации MVI (Model View Intent). Ведь там, где нас нет, трава всегда зеленее? :)

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