Illya Rodin

Sceneform SDK in practice

The theme of native engines simplifying the work with 3D graphics for Android is the headache of many developers. While there is SceneKit for iOS, Android developers were forced to either refer to cross-platform solutions (Unity3d, LibGDX, etc.) or use own/open source solutions with limited functionality. The appearance of Sceneform SDK solves not only this problem but also encapsulates the work with ArCore SDK, allowing developers to natively implement AR solutions without using the third-party SDK.

The report will consider the practicability and limitations of Sceneform SDK in regard to augmented reality (AR) projects. Such themes as SLAM, ArCore SDK, recognition and tracking of image-based markers, Cloud Anchors and alternatives existing on the market will also be considered.

About speaker

CTO in ROAR Augmented Reality Platform, since 2009 in mobile development. Main work lines: development and mentoring on development for Android, Augmented Reality, Computer Vision, Machine Learning, IoT.
Oleksandr Yefremov
Mobile Architect at ProsiebenSat1, Germany

Multiplatform shared codebase with Kotlin/Native

If you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter, you must try Kotlin/Native! In this presentation we will see how Kotlin/Native is different and in some aspects superior, and how easy it becomes to develop, debug and maintain a common codebase with JetBrains tools and without sacrificing runtime performance.

About speaker

Oleksandr is a Mobile Architect at ProsiebenSat1, the largest media company in the German-speaking area. He is doing mobile development since 2010 and is currently actively exploring multiplatform solutions like React Native (UAMobile 2017 - Building framework with shared code on Android and iOS using React Native), Kotlin/Native, bridging JavaScript with Native in search for an effective way of sharing business logic.
Olexandr Leuschenko
Head of Mobile Unit at Ciklum, Ukraine

Flutter: No more boring apps!

Eternal choice: quick, cheap or beautiful. Until recently, it was possible to get two of three, while developing mobile apps. Most often UX/UI was sacrificed, and the situation was especially bad in the category of business apps. The users were offered something that at best did not break HIG platform, and often it was totally a tracing of web versions. But with Flutter the situation changes!

In this report we will talk about how to write reliable, beautiful apps, at ultra-speed and at no cost.

About speaker

I've been writing the code for a price since 2006, in mobile development since Retina has just appeared, android has made us sad, and Windows Phone was cool, that is already 7 years. I hold the position of Head of Mobile Unit at Ciklum. In my spare time I learn something new and also teach others.
Pavlo Taykalo
Software Engineer at MacPaw, Ukraine

Libraries and Tools on guard of code

Now, it is not enough just to write the code, it should be written beautifully and "correctly". Since these concepts differ greatly from person to person, at some point the teams come to formalization of beauty and correctness. Some teams, being tired of swearing in the pull requests by reason of the bad code, go further and set up the automatic checks. Someone even trusts the tools so much that allow them to modify and correct the code.

In this report, I'll talk about libraries and tools aiming at work with the code. Let's consider the main distinctions between libraries and field of their use. After the report, you will finally distinguish SourceKit from SourceKitten, libSwiftSyntax from Swift Syntax.

About speaker

Software Engineer at MacPaw. Many years' experience of iOS development, author of several close-iOS projects that are very popular in narrow circles. I actively participate in Ukrainian conferences as speaker, where I carry the light of knowledge to all those interested, sharing the pieces of my gathered experience. I like to program in time free from programming. Interests: programming, science fiction, quantum computing, data visualization.
Olexandr Leuschenko
Head of Mobile Unit at Ciklum, Ukraine

Overcoming the gap between designers and developers

A good designer is extremely valuable. He will prepare screens, decide on colour and fonts, and work at the application so that it meets all the requirements of the target platform. But it happens that client's corrections to the finished design (or even a ready-made application) create for developers the amazing opportunities for refactoring exercises, for example:

  • change the font in the app to my favourite
  • Is it possible to show the list as a grid?
  • I want AppBar to scroll along with content.
  • this image should fly beyond the screen, changing the colour, rotating around its axis and slowly dissolving "in the fog".
  • etc.

If you are annoyed by similar situations, then most likely your tool is not good enough. ;)

In this report, we will take several screens from the Mobile UI Inspiration mailing with the most gorgeous design fantasies and implement them on Flutter. Be careful, there will be a lot of code!

About speaker

I've been writing the code for a price since 2006, in mobile development since Retina has just appeared, android has made us sad, and Windows Phone was cool, that is already 7 years. I hold the position of Head of Mobile Unit at Ciklum. In my spare time, I learn something new and also teach others.
Maksym Ukhanov
Senior Mobile Engineer at Intelity, Ukraine

Designing iOS+Android project without using multiplatform frameworks

Using React Native, Flutter, Hybrid Web, Unity, Kotlin Multiplatform could be an interesting strategy, but what if we want to stay within traditional native development on both platforms?

A syntax of Swift and Kotlin looks pretty similar, especially if you are cooking it with RX. So, what if we will implement a new feature on one platform and then, kinda, copy-paste the code to another one, with minimum modification? How good it will work for us? How should we deal with platform-specific features? Will this strategy make a project too complex?

This speech will show the way, how to design your project in order to minimize the headache of implementing the same feature for both mobile platforms. Also, we will talk about gains and losses during implementation on a real project with this design idea.

About speaker

Senior Mobile Engineer at Intelity. Max has been working in mobile development for more than 6 years and specializes in multimedia-based projects. He had a chance to work on a few complex projects, video SDK, and a mobile game framework. All of it was designed to be working on iOS/Android/WinPhone. He has been established a course of Mobile development at Faculty of Informatics and Computer Science, Igor Sikorsky KPI. As a hobby, with a help of IoT devices, Max is growing the tiniest tomatoes in the world on his balcony.
Mateusz Herych
Android Tech Lead at IG, Google Developer Expert, Poland

Story of one project - how to turn 8-years old monolith into a modern codebase

My team's main focus in the recent past was rebuilding our company's main Android product - the trading app.

Our app was nearly 500k lines of code worth, written by dozens of devs in a timespan of 8 years, almost fully in Java. This obviously affected our velocity and caused us to deliver slower than we could potentially do.

During my talk, I'd like to go through the challenges we've faced and architecture decisions we have made to end up having a much healthier codebase.

Come to my talk to learn how we:

  • Split our project into decoupled feature modules and multiple app-agnostic SDKs.
  • Made sure the new release of the app wasn't a shocker to our clients - a complete redesign of the app in one drop wasn't an option.
  • Managed to rebuild tons of features in a short timeframe by focusing on things that mattered the most and taking smart shortcuts.

About speaker

I'm working as an Android Technical Team Lead at in IG in Krakow, where he lives. Member of the Google Developer Expert program on Android, also co-organizes GDG Krakow's community meetups. An avid fan of railway transportation and football, father of twins.
Anatoly Tukhtarov
iOS Developer at Ciklum, Ukraine

Optional. Tips and Tricks

Optional is a fundamental type in Swift. While it’s almost everywhere, most developers don’t use it to the full extent or even use it in a wrong way. Such misconceptions lead to code duplication, amiss implementation of design patterns and neglect cool features available in Swift. There's a couple of crucial ideas behind this type that can make your daily Optional routine efficient and safer.

During the talk, we'll discuss how to and why we should avoid optional binding. By refactoring samples from code reviews, we'll learn what's great about functional programming in Swift. We'll also see how Optional affects DI and error handling and what can we do with it.

About speaker

iOS Developer at Ciklum Solutions Team. I've been struggling with Xcode and Apple's attitude to developers since 2012. But still, I enjoy the process, try to learn something new and like to share knowledge with others.
Максим Єрмаков
Senior Android розробник у SteelKiwi Inc, Україна

Building your Flutter apps using Redux

Обрати архітектуру для розробки не просто. Серед безлічі можливих архітектурних рішень для Flutter у фаворити вибились BLoC і Redux. BLoC ― нове рішення від компанії Google, яке лише починає набувати популярності. Redux ― незмінний улюбленець ком'юніті. І, звісно, мій. Саме про нього і поговоримо.

Під час доповіді ми візьмемо готовий UI шар і реалізуємо всі необхідні Redux компоненти: Store, State і Reducer Actions. А також специфічні для Flutter елементи ― StoreProvider і StoreConnector.

About speaker

Senior Android розробник у SteelKiwi Inc. У мобільний розробці з 2013 року. Після першого публічного релізу Flutter на Google I/O 2017 загорівся крос-платформною розробкою додатків з Flutter. Відтоді я ентузіаст цієї технології. Останніх півроку реалізовую цю технологію у проектах.
Володимир Братащук
Senior Android developer у Star Engineering, Україна

До чого прикладати Docker в Android?

Docker - популярне слово в світі backend-у, а чим він може стати в пригоді в Android розробці? Виявляється може. Коли проект тривалий і досить серйозний, то справа доходить до написання тестів на декількох рівнях(unit, integration, UI automation), а це в свою чергу вимагає налаштування pipeline-у на CI, який би правильно проганяв ці тести на кожен коміт. Наступні питання виникають: як зробити щоб різні види тестів ранились паралельно, як ранити паралельно на кількох девайсах, на кількох типах backend-у, і при цьому щоб одні тести не "заважали іншим". Тоді на допомогу і приходить Docker - пісочниця яка дозволяє ізолювати середовище і думати про масштабування. В багатьох випадках можуть допомогти devops піхотинці, але не завжди вони виділені на проект чи можуть зрозуміти що ви від них хочете. 

В рамках доповіді буде коротко розглянуто основні ідеї такого потужного інструменту як Docker, його можливості, буде написано вживу невеликий instrumentation тест для демо-проекту, потім написано Dockerfile для проекту і скрипт, який розвертатиме контейнер і його можна буде виконувати на CI, наприклад Jenkins.

About speaker

Senior Android developer у Star Engineering.
Тетяна Зав’ялова
Дизайн-команда у Tonic Health, Україна
Надія Абросімова
Product Designer у Tonic Health

Актуальні практики дизайну мобільних додатків

Вже десять років ми активно працюємо над створенням мобільних додатків. Користувачі стають все більш вибагливими, темпи розробки зростають, і дизайн не стоїть на місці. Ми розкажемо, що насьогодні вважається якісним дизайном, які дизайн-практики використовуються для забезпечення якості дизайну, як передати наробки дизайнерів команді розробників. Окрім цього розкажемо, де шукати натхнення і заряджати ним колег.

В рамках доповіді ми розповімо про дизайн мислення, креативні воркшопи, юзабіліті тестування, дизайн-систему і базовану на ній SDK, як подружити дизайн та аджайл.

About speakers

Представляють дизайн-команду компанії Tonic Health, продуктом якої є додаток для збору даних пацієнтів на iPad. Команда практикує дизайн-мислення й створює продукт, якій готові порадити своїм користувачам навіть бабусі. Тетяна (Head of Design) має 15-річних досвід в дизайні, дизайн-менеджменті та впровадженні дизайн-процесів та є активним доповідачем на коференціях. Надія (Product Designer) суміщає дизайн, програмування та копірайтинг і активно впроваджує найсміливіші ідеї в життя.
Дмитро Зайцев
Mobile Tech Lead у Lóhika, Україна

Ідіоматична ін'єкція залежностей на Kotlin без фреймворків

Всі сучасні популярні DI-фрейморки для Java використовують обробку анотацій під час компіляції та/або під час виконання програми. Вони однаково добре працюють і для Kotlin, але мають свої недоліки, бо генерують забагато коду та/або використовують рефлексію, що негативно позначається на часі компіляції додатку, його розмірі та швидкодії. Крім того, зазвичай їх конфігурація є нетривіальною для великого проекту. Kotlin пішов кращим шляхом...

В рамках доповіді буде продемонстровано як можна легко та ідіоматично організувати DI у своєму коді без допомоги сторонніх фреймворків. Натомість, в режимі програмування наживо ми разом створимо свій фреймворк без жодної анотації, де використаємо виключно стандартні можливості мови Kotlin.

About speaker

Mobile Tech Lead у Lóhika. Більше восьми років робить світ трошечки кращим завдяки мобільним додаткам. Активно доповідає на конференціях та тематичних мітапах Android та Kotlin спільнот, займається менторством і контрибютить в Open Source.
Sergey Shulga
iOS engineer at Babylon Health, United Kingdom

Managing State in Reactive applications

Reactive programming becoming very popular these days and many people already adopted or started to adopt it in their projects. This is indeed a great tool but in the wrong hands, it quickly can get out of hands. Polluting the codebase with spaghettis of reactive operators where it can be hard to reason about and debug.

In this talk, I will share our experience with reactive programming at Babylon Health. And show our approach on how we manage the state in our ViewModels in a unidirectional way.

About speaker

Sergey is an iOS engineer at Babylon Health. He has been building iOS apps for the past 6 years. Is a big fan of reactive programming and open source. He is a contributor to such libraries like RxSwift, RxDataSources, ReactiveFeedback, and Bento.
Дмитро Осіпа
Senior iOS Developer у Anchorfree Inc, Україна

Побудова архітектури додатку для 650 мільйонів користувачів

У якийсь момент найпростішим способом залучити нових користувачів стає придбання конкурента.

Йтиметься про технічні челенджі, з якими ми зіткнулися при міграції кількох VPN-додатків від куплених компаній, у проект з єдиною інфраструктурою та різними користувальницькими інтерфейсами, використовуючи VIPER.

В рамках доповіді будуть розглянуті наступні питання:

  • стандартизація архітектури для всіх проектів;
  • переваги та недоліки моно-репозиторіїв та наш підхід до міграції мобільних додатків від сторонніх компаній на наші рейки.


About speaker

Senior iOS Developer у Anchorfree Inc. У мобільній розробці з 2011 року. Працював як в продуктових, так і в аутсорсингових компаніях. Також був засновником стартапу Pixpie - сервісу зі стиснення зображень.
Andriy Matkivskiy
Senior Mobile Engineer at Valtech, Україна

Working effectively with ViewModels and TDD

The introduction of Android Architecture Components made a lot of things easier for Android developers. Despite this, the documentation is still not complete and confusing. Here and their developers arise questions like: “How should I handle communication between ViewModels?”, “How to send one time events properly?”, “How to fill pleasure from Android development again?”.  I will cover these topics and guide you through this dark forest and show that the light of TDD.

In this talk, I will cover the most popular pitfalls when using ViewModels and show how one can easily follow the TDD approach while implementing MVVM on Android.

About speaker

Senior Mobile Engineer in Valtech. I’ve been developing Android apps for 7 years and I still remember the times when using AsyncTasks was the recommended way. I am a perfectionist (what causes pain when dealing with legacy codebase) and a big fan of functional programming (at least the good part of it).
В'ячеслав Романюк
Mobile Team Lead у Complex Networks, Україна

Історія декількох проектів та що в них пішло не так

У середовищі розробників існує думка про те, що сучасні проекти, зокрема - Android проекти, - всього лише пазл з бібліотек та невеликої кількості бізнес-логіки. В рамках моєї презентації ми розглянемо кілька проектів, на прикладі яких я покажу деякі проблеми та приховану вартість використання деяких бібліотек, про яку мало хто замислюється.

В якості бонуса ми подивимося на деякі приклади очевидного (і не дуже) поганого коду та поганої архітектури.

Під час презентації ми розглядаємо як деякі відомі бібліотеки (RxAndroid, Dagger, Android Architecture Components) використовуються в занадто широкому сенсі або на занадто ранній стадії, і як це заважає проекту, викликаючи вельми неочевидні проблеми як для розробника, так і для кінцевого користувача.

About speaker

У розробці 11 років, з них 10 років - переважно в мобільному її секторі. За цей час попрацював Java Enterprise розробником, пройшовся по всьому спектру розробки в екосистемі Apple, а з 2011 року почав розробляти і під Android. Останні 5 років працюю на відому в США медійну компанію Complex Networks на посаді Mobile Team Lead, поєднуючи цю посаду з R&D. Встиг попрацювати і з Kotlin, і з Kotlin / Native, і з Flutter, і з анонсованими рік тому Android Architecture Components (AndroidX).
Oleksandr Stepanov
Technical & Delivery Lead at AKQA, Ukraine

Google Wear OS watch faces and applications development

Google Wear OS, formerly Android Wear, is the platform for wearable devices, watches primarily. In this talk, I would like to present what kind of applications may be developed for this platform, how it differs from regular Android development, what are the limitations, pitfalls and caveats.

In the deck I plan to cover the next topics:

  • Kinds of applications available
  • API available on the watch itself
  • API for communication with a connected phone
  • Watch face development specifics

About speaker

I'm working as a Technical & Delivery Lead in AKQA digital agency on the Tag Heuer Connected project for last 18th months. Leading the team of mobile (Android, iOS) developers and backend (Java). Has been working with iOS platform from 2008, and with Android during the last two years. I'm a big fan of Swift and Kotlin programming languages. Believe in Kotlin-Native framework for mobile cross-platform.
Сергій Мокієнко
Mobile Team Lead у Lóhika, Україна

OpenId and OAuth2: Rear, Medium, Well Done

Десятиліття тому Інтернет був зовсім не торт і мобільні пристрої не були вишенькою. Вразливості у доступі до персональних даних стирчали з таких місць, куди сьогодні може дістатись і дитина, та під час перегляду свинки Пеппи злити доступ до всіх ваших кредитних карт. 

Прихід протоколу OAuth не зміг врятувати нас від ремейків Філіпа Кіркорова та клауд-репу, але спробував убезпечити доступ до наших даних. Але він не допоможе тобі, юзернейм, якщо ти не вмієш користуватися ним як слід.

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

Протягом цієї сесії я розповім:

  • Що таке SAML (та про ледачі банки)
  • Чим авторизація відрізняється від аутентифікації
  • Що таке OAuth та OpenID та навіщо вони потрібні
  • Які є OpenID SDK та чи варто їх використовувати?


About speaker

Mobile Team Lead в компанії Lohika з 10+ мобільними проектами. Останні півроку гордо працюю над новою версією Okat AppAuth Sdk та AppAuth-android від OpenId Foundation. Люблю мобільну розробку та ... немобільну розробку.
Андрій Рахімов
Lead Android Engineer у Lalafo, Україна

Leave your Room behind

Протягом останніх двох років Room був переважним рішенням для роботи з SQLite в Android. Але нещодавно була випущена нова версія бібліотеки SQLDelight, яка підтримує kotlin multiplatform, має перероблений api, новий генерований Kotlin-код, розширення до RxJava2, підтримує Paging-бібліотеки та багато іншого. З його можливістю генерувати в live-режимі typesafe kotlin код з чистого SQL за допомогою плагіну Android Studio важко конкурувати. Чи все ще варто розглядати інші рішення, маючи такий потужний інструмент?!

На цій сесії ми розглянемо основні можливості SQLDelight та в live-режимі побачимо, як він працює. Розберемо типові випадки його використання та поміркуємо про можливості multiplatform використання SQLDelight у майбутньому.

About speaker

Lead Android Engineer у Lalafo. Більше 6 років займаюся мобільною розробкою. Маю досвід скейлення Android-додатків від декілька тисяч до кількох мільйонів юзерів.
Євген Дудник
Mobile Team Lead у Ciklum, Україна

MVI. Основні принципи та особливості в мобільній імплементації

Вибір та проектування архітектури мобільних додатків стає все більш і більш актуальною темою для розробників. MVI - підхід, який набирає популярність при проектуванні Android-додатків. На доповіді ми поговоримо про те, звідки прийшов такий шаблон, які були передумови для його виникнення та які основні принципи він проповідує. Обговоримо що таке state management, immutability та unidirectional data flow. Так само ми подивимося як змінювався підхід при адаптації його для мобільного розробки, чи спрощує він життя розробникам і чи відповідає на питання, які виникають при виборі архітектури.

На доповіді ми поговоримо про проблеми, які вирішує MVI-підхід, зрозуміємо, чи можливе його використання в "оригінальному" вигляді в мобільній розробці. Розглянемо та порівняємо популярні бібліотеки, що використовують цей підхід (Mosby, MVICore, Grox). Розповім, як ми переводили наш додаток на MVI, з якими проблемами зіткнулися. Будуть представлені приклади та демо-додаток для презентації, які допомагають оцінити плюси та мінуси такої архітектури у порівняти з іншими популярними підходами.

About speaker

Mobile Team Lead у Ciklum. Co-organizer GDG Odessa. Speaker on Android and Kotlin meetups. У мобільній розробці з 2011 року.
© 2020, Copyright Technologies & Services, LLC