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

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

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

Flutter, a designer and a developer walk into a project

Adrian Catalan

Two longtime friends with complimentary skills meet a new mobile SDK for building high-performance apps from a single codebase, what could go wrong? Flutter is quite powerful but with great power comes great responsibility. Using widgets, building a meaningful UI in a new way, finding that library we need and getting used to a different architectural approach are some of the many challenges we face as developers and designers when going into the cross-platform world. In this talk we'll review some of this advantages of using Flutter, how to tackle common challenges when adopting it and how can it spark a better collaboration between designers and developers, including roles & responsibilities.

Мобильные приложения / другое
Программный комитет ещё не принял решения по этому докладу

Home of the future

Alicia V Carr

Home automation is “The Internet of Things”. With Amazon Echo, Google Home, Apple SmartHome and others these products will change the way we see AI and home automation. Think of how we can change the way these IoT can be change to suit our needs. What if all the devices in your life could connect to the Internet? Not just computers and smartphones, but everything: clocks, speakers, lights, doors, door bells, cameras, windows, window blinds, hot water heaters, appliances, cooking utensils, you name it. And what if those devices could all communicate, send you information, and take your commands? It's not science fiction; it's the Internet of Things (IoT), and it's a key component of home automation and smart homes.

Internet of Things
Программный комитет ещё не принял решения по этому докладу

Архитектура

Learn to Err

Jorge D. Ortiz-Fuentes

It would be great if we could always keep our users in the happy path. But the best apps are those that deal properly with any unexpected situations. In this talk I will dive deep into the details of error handling.
I will try to answer to the following questions that you may have asked yourself while developing your apps:
- When should I use errors (versus other options like a simple optional)?
- How do I implement errors to get the most out of them?
- What should I take into account in an advanced architecture regarding error handling? When and how do I do error translation?
- What is the proper implementation if I want to go functional? How to avoid partial functions?

Архитектуры / другое
Программный комитет ещё не принял решения по этому докладу

Разработка приложения на основе ReactiveFeedback, или Архитектура для тех, кому VIPER наскучил

Илья Пучка

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

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

Асинхронное программирование, реактивное программирование
,
Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура мобильного приложения
Программный комитет ещё не принял решения по этому докладу

Амбер: реактивная iOS-архитектура для быстрой и прозрачной разработки на основе Flux и Redux

Никита Архипов

– Обзор архитектур Redux, Flux, Elm;
– идея архитектуры Amber;
– компоненты Amber;
– плюсы и минусы;
– наш сервис для генерации модулей;
– фишки из реальных проектов.

Архитектурные паттерны
,
Разделение представления и бизнес-логики, шаблонизация
,
Архитектуры / другое
,
Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура платформы iOS
,
Архитектура мобильного приложения
Программный комитет ещё не принял решения по этому докладу

Технологии Android

Фантастические плагины и где они обитают

Павел Стрельченко

Каждый разработчик сталкивается с желанием автоматизировать часть своей работы. Но далеко не каждый пишет для этого собственный плагин для Android Studio или Intellij IDEA, потому что думает, что это сложно.

В докладе я докажу, что разработать плагин - подъёмная задача для любого разработчика.

Расскажу, как в HH.ru сделали плагин для создания feature-модулей: почему решили написать именно плагин и почему не подошли существующие решения генерации кода; с какими проблемами сталкивались и как их решали; раскрою несколько секретов плагиностроения: что такое PSI, как создавать собственные wizard-диалоги и как использовать встроенный DI; а также покажу исходники и расскажу, что в них поменять для решения ваших задач.

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


Программный комитет ещё не принял решения по этому докладу

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

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

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

Программный комитет ещё не принял решения по этому докладу

Оптимизация работы RecyclerView

Кирилл Розов

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

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

Мобильные приложения / другое
Программный комитет ещё не принял решения по этому докладу

Generating Code With KotlinPoet

Egor Andreevici

Are you generating Kotlin code? Then KotlinPoet is what you need! KotlinPoet is a library developed at Square, that provides easy to use APIs to help you generate .kt files. In this session we’ll talk about:

* Getting started with KotlinPoet
* API overview: Specs, TypeNames, and how to navigate through them
* Using KotlinPoet’s format modifiers
* KotlinPoet in the context of annotation processing: a complete example
* and more

Технологии и языки для Android: Java, Kotlin
Программный комитет ещё не принял решения по этому докладу

Android binary XML: deep dive

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

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

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

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

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

Adventures with Things

Rahul Ravikumar

This talk introduces the wonderful world of hardware to Software Engineers. Building software for embedded devices is different. This talk will help you understand how to use your skills and tools, and build great Things.

Мобильные приложения / другое
Программный комитет ещё не принял решения по этому докладу

Coroutining Android Apps

Кирилл Розов

Kotlin - это язык, изменивший мой опыт разработки под Android в положительную сторону. Корутины смогли вывести вау-эффект еще на уровень выше.

Доклад будет рассказывать о применении корутинов в Android-проектах, что стоит делать и что не стоит.

Технологии и языки для Android: Java, Kotlin
Программный комитет ещё не принял решения по этому докладу

Настоящая runtime-кодогенерация на Android

Даниил Попов

- Что такое dynamic proxy: зачем нужны, как их применять на практике и какие они имеют недостатки;
- создание собственного аналога java.lang.reflect.Proxy без рефлексии, но с использованием настоящей runtime-кодогенерации;
- обзор механизма кодогенерации в runtime и почему в Android с этим есть сложности;
- устройство DEX-файла: из каких секций состоит, какие данные содержит;
- правила и ограничения, валидация содержимого DEX-файлов;
- составление DEX-файлов голыми руками;
- динамическая загрузка DEX-файлов во время исполнения, работа с DexClassLoader.

Архитектура платформы Google Android
Программный комитет ещё не принял решения по этому докладу

Анимация в современной Android-разработке

Артем Шевченко

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

Хочу, чтобы мой доклад стал шпаргалкой-путеводителем для Android-разработчиков в мире анимации.

Программный комитет ещё не принял решения по этому докладу

Notions about Motions

Maurice Gavin

Have ever opened your designer’s mockup only to throw your hands up in despair?

You might have seen animations in your favourite app and wondered how many hours that took. Now, thanks to the introduction of MotionLayout earlier this year, delighting our users with elegant and meaningful motion has never been easier.

Come along to this session and you’ll learn how you can use ConstraintLayout 2.0 and MotionLayout to build complex UI interactions with ease.

Программный комитет ещё не принял решения по этому докладу

Things I wish I knew when I started building Android Libraries - Vol 2

Nishant Srivastava

Building an Android library in the current times is way different than what it used to be earlier. Things have changed considerably and keeping up to date with them is a now a necessity than just some acquirable knowledge.

This session in a second part to the last year’s talk at Droidcon Berlin 2017 which was Vol 1. In this session, you will dive deeper into best practices and ways of architecting android libraries. You will get to learn about the common pitfalls and how to overcome them by using the right approach such as leveraging architecture components and making your android libraries lifecycle aware.

Архитектуры / другое
Программный комитет ещё не принял решения по этому докладу

VectorDrawable: за гранями растра

Кирилл Розов

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

Мобильные приложения / другое
Программный комитет ещё не принял решения по этому докладу

Делаем приложения безопаснее

Ольга Шкряба

Цель: сделать приложение безопаснее, добавив небольшие строки кода.

Основные темы:
1. Стратегия запутывания
2. Предотвращение захвата экрана приложения
3. Скриншоты, снэпшоты
4. Работа с Hook
5. Запрет отладки
6. Проверка портов
7. TracerPid
8. Защита подписи приложения
9. NDK как инструмент не только повышения производительности, но и улучшения безопасности
10. Proxy и VPN
(все вышеперечисленное - Android)
11... Часть про iOS (менее масштабная)
12. Человеческий фактор

Программный комитет ещё не принял решения по этому докладу

Tools for Protecting Your Users’ Data

Maurice Gavin

2018 was the year your average user started to care about data protection. The media had no shortage of content with new stories about election tampering, GDRP, and data breaches breaking every few weeks. Attacks on our apps will continue to become more frequent and sophisticated; in this session we will present the tools you need to counter them.

This talk will focus on security features available from Google Play Services and Google's SafetyNet APIs. We will see how they allow developers to verify the trustworthiness of the devices their apps run on, as well as examples of how to implement them to improve your app’s security.

Программный комитет ещё не принял решения по этому докладу

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

Зачем разработчику быть немного продактом

Никита Майданов

В этом докладе я расскажу, что такое Т-shaping, чем он отличается от I-shaping. Потом мы посмотрим, в каких смежных областях знаний может развиваться разработчик, и остановимся на продукт-менеджменте.

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

Программный комитет ещё не принял решения по этому докладу

Using your superpowers for good to change the world!

Alicia V Carr

A 16 year old inspired me to learn to code. This lit the fuse that would take me on an amazing journey through challenges and victories while creating an app to help victims escape domestic violence and abuse. This is the story of how someone with no coding experience got their app approved for the app store. There were challenges along the way which were far outweighed by the success, impact and achievements. Since its release the social impact of the application has been incredible. Then a global technology giant came knocking, which brought a new life of excitement as well as being completely overwhelming. This story serves as an example of why women should be recognised as an equal and important part of the tech community.

Управление / другое
Программный комитет ещё не принял решения по этому докладу

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

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

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

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

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

Программный комитет ещё не принял решения по этому докладу

Git Better!

Egor Andreevici

Git doesn’t need no introduction: everybody knows it, everybody loves it! But how much of Git do you actually use? How many of Git superpowers are you yet to unlock?

The discussion will include:
* Git internals: how Git stores your code and what makes branching so fast
* Rebase or merge: that is the question!
* Rebasing 101: rewriting history, and when it's fine to force push
* Git bisect: hire binary search to find your bugs
* and more

This session will help you discover new Git features and techniques and take your Git-fu to the next level!

Непрерывное развертывание и деплой
,
Непрерывная интеграция
Программный комитет ещё не принял решения по этому докладу

Как вырастить (в себе) лида

Евгений Козочкин

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

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

Программный комитет ещё не принял решения по этому докладу

Когда троллинг – не смешно.

Анастасия Калашникова

Троллинг – часть культуры общения в IT. А хорошая шутка поднимает настроение и настраивает на бодрый лад. Так принято считать, то так ли это?
В своем выступлении я хочу рассказать о том, что за троллингом бывает так, что скрывается травля. Рассказать, чем это опасно для конкретного человека и для коллектива. Опишу, как понять, что в коллективе есть травля.
И расскажу, как троллингу подвергаются женщины в ИТ.
А так же мы поговорим, почему не стоить троллить менеджеров и как другими словами рассказать о том, что есть недовольство.

Доклад будет важен для развития культуры общения среди разработчиков.

Программный комитет ещё не принял решения по этому докладу

Резюме-центрированная парадигма при подборе программистов

Даниил Пилипенко

* Как плохой разработчик понижает общую производительность.
* Из 20 человек, называющих себя программистами, только один действительно им является.
* Как отличить профессионального разработчика от любителя: критерии по С. Макконнеллу, Дж. Спольски, Р. Мартину.
* Компоненты профессионализма: как оценить.
* Опасные (неэффективные) способы подбора: резюме-центрированная парадигма.
* Практические советы по повышению точности подбора программистов.

Поиск и развитие команды
Программный комитет ещё не принял решения по этому докладу

Этапы эволюции обратной связи в команде разработки

Александр Черный

Вам наверняка попадались сведения об устройстве Performance Review в больших командах: Badoo, Avito, Яндекс. Эти достойные практики не всегда хорошо ложатся на команды меньшего размера. Вы как руководитель пришли к решению, что какая-то оценка сотрудников нужна, но какая именно — неясно. Вы ограничены в ресурсах: нет возможности сидеть над сведением данных, нет возможности привлечь проектного менеджера или HR'а, нет возможности остановить текущую работу.

В рамках доклада попробуем ответить на следующие вопросы:
* в чем отличие Performance Review, Feedback и One-to-One;
* зачем давать обратную связь сотрудникам;
* как обойтись малыми силами.

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

Если вы не teamlead, берите инициативу в свои руки. Доклад поможет вам сформировать критерии для проверки себя.

Программный комитет ещё не принял решения по этому докладу

Технологии iOS

Работать с сетью эффективно

Евгений Ртищев

Наверное, более 80% всех приложений работают по сети. SDK от Apple предоставляют нам ряд фреймворков, позволяющих решать любые сетевые задачи, вот только часто мы не разобрались до конца и начинаем с ходу писать свой велосипед.

В докладе хочется затронуть простые задачи, которые вставали перед каждым, и показать, вероятно, самые простые способы их решить, а именно:
1. Кэширование запросов, а также изображений (как именно работает кэш, как должен быть настроен ваш сервер и др.).
2. Ошибки сетевого стека (какие бывают и что означают на самом деле).
3. Как рекомендует обработать 401 ошибку Apple и какие плюсы от этого будут?
4. Логирование сетевых запросов (сторонние тулзы).
5. Определение доступности сетевого интерфейса (что это на самом деле означает, и как правильно использовать SCNReachability).

Программный комитет ещё не принял решения по этому докладу

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

Макс Никулин

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

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

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

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

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

Архитектурные паттерны
,
Технологии и языки для iOS: ObjectiveC, Swift
,
Архитектура платформы iOS
,
Архитектура мобильного приложения
Программный комитет ещё не принял решения по этому докладу

Swift для машинного обучения 3.0

Георгий Емельянов

Swift появился в 2014 году как новый язык программирования для разработки ПО для устройств Apple. В 2015 году его начали использовать для разработки backend’ов. И вот, в 2018 году до него добрались специалисты по машинному обучению из Google.

В своём докладе я расскажу, почему пора перестать смеяться при упоминании в одном предложении и машинного обучения и Swift’а. Что делает Swift пригодным для машинного обучения, и почему в будущем он сможет конкурировать с Python в этой области.

Мы разберём core-механизмы, позволяющие быстро и просто строить модели машинного обучения на Swift’е.
Построим простенькую нейронную сеть. И в конце зададимся вопросом: «Что делать, если надоело красить кнопки и спорить о необходимости декларативных таблиц, а хочется больше rocket science?”.

Технологии и языки для iOS: ObjectiveC, Swift
,
Machine Learning
Программный комитет ещё не принял решения по этому докладу

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

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

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

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

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

iOS UI-тесты в Babylon

Илья Пучка

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

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

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

По мотивам VK Mobile Challenge: создаём собственную новостную ленту

Евгений

В декабре 2018 я стал одним из призёров конкурса VK Mobile Challenge. Это был настоящий челлендж – с большим и интересным заданием, очень ограниченным временем, сильными соперниками. Целью конкурса была разработка новостной ленты, а одним из главных критериев победы были плавность скролла даже на самых слабых устройствах.

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

Итого:
- создаём бесконечный скролл (performance и стратегии построения);
- добавляем pull-to-refresh (UIRefreshControl и его недостатки);
- прикручиваем подгрузку историю и делаем переход бесшовным;
- организуем кэш изображений на основе NSURLSession;
- советы для желающих побеждать в хакатонах и челленджах.

Программный комитет ещё не принял решения по этому докладу

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

Иван Шевелев

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

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

Технологии и языки для iOS: ObjectiveC, Swift
Программный комитет ещё не принял решения по этому докладу

Просто о функциональном программировании

Евгений Елчев

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

В своем докладе я простыми словами расскажу, что такое ФП. Опишу основные элементы (чистые функции, замыкания, ФВП, функторы, монады, кадрирование, паттерн матчинг) ФП. Покажу некоторые примеры на языке swift. Поделюсь итогами, как эти знания изменили мой код, и какую выгоду я получил.

Программный комитет ещё не принял решения по этому докладу

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

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

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

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

Мобильные приложения / другое
Программный комитет ещё не принял решения по этому докладу

The challenges in building a social app using objective c/swift

Alicia V Carr

Anyone can create and change the way things are by using tech to solve a problem in the community. How I, as a woman seeing my female family members and friends being abused, decided to do something about it. That is why I created a social app - PEVO - that can change the world. This talk is about how I came to building PEVO doing the research reaching out to victims to help me understand how to help them in building an app that can save lives.

Технологии и языки для iOS: ObjectiveC, Swift
Программный комитет ещё не принял решения по этому докладу