Тема нативних движків, що спрощують роботу з 3D графікою для Android, є головним болем багатьох розробників. У той час як для iOS існує SceneKit, розробники під Android були змушені або йти в крос-платформені рішення (Unity3d, LibGDX і т.п.) або використовувати самописні/опенсорсні рішення з обмеженим функціоналом. Поява Sceneform SDK вирішує не тільки цю проблему але й інкапсулює в собі роботу з ArCore SDK, відкриваючи для розробників можливість нативної реалізації AR рішень, не вдаючись до стороннього SDK.
В рамках доповіді будуть розглянуті практичні можливості та обмеження Sceneform SDK стосовно проектів з доповненою реальністю (AR). Так само будуть розглянуті такі теми як SLAM, ArCore SDK, розпізнавання та трекінг маркерів на основі зображень, Cloud Anchors та існуючі альтернативи на ринку.
Про спікера
CTO у ROAR Augmented Reality Platform, з 2009 року у мобільний розробці. Основні напрями роботи: розробка та менторство з розробки для Android, Augmented Reality, Computer Vision, Machine Learning, IoT.If you want to share the code between Android and iOS but you don't feel like doing C++/JNI, React Native, Flutter,
Про спікера
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.Хороший дизайнер на вагу золота. Він підготує екрани, визначиться з кольорами та шрифтами, пропрацює додаток так, щоб він відповідав усім вимогам цільової платформи. Але буває, що клієнтські правки в готовий дизайн (або навіть готовий додаток) створюють дивовижні можливості для вправ з рефакторінгу для розробників, наприклад:
Якщо вас дратують подібні ситуації, то швидше за все ваш інструмент недостатньо хороший. ;)
У цій доповіді ми візьмемо кілька екранів з Mobile UI Inspiration розсилок з найсміливішими дизайнерськими фантазіями і реалізуємо їх на Flutter. Обережно, буде багато коду!
Про спікера
Пишу код за гроші з 2006 року, в мобільній розробці з часів, коли ретина тільки з'явилася, андроїд змушував сумувати, а віндовсфон був класним, тобто вже 7 років. Працюю на позиції Head of Mobile Unit у Ciklum. У вільний час вчуся новому, а також вчу інших.В наш час мало просто писати код, його треба писати красиво і "правильно". Так як ці поняття вельми різняться від людини до людини, то в якийсь момент команди приходять до того, щоб формалізувати красивість і правильність. Деякі команди, втомившись лаятись в pull-request'ах через некрасиво оформлений код, йдуть далі та налаштовують автоматичні перевірки. Хтось навіть довіряє інстументам настільки, що дозволяє змінювати і виправляти код.
У цій доповіді я розповім про бібліотеки та інструменти, метою яких є робота з кодом. Розглянемо освновні відмінності бібліотек та області їх застосування. Після доповіді ви нарешті будете відрізняти SourceKit від SourceKitten, libSwiftSyntax від Swift Syntax.
Про спікера
Software Engineer в компанії MacPaw. Багаторічний досвід в iOS розробці, автор кількох дуже популярних у вузьких колах близько-iOSних проектів. Активно беру участь в ролі спікера на українських конференціях, де несу світло знань всім зацікавленим, ділячись частинками свого накопиченого досвіду. Люблю програмувати у вільний від програмування час. Інтереси: програмування, фантастика, quantum computing, візуалізація даних.Одвічний вибір: швидко, дешево або красиво. До недавнього часу при розробці мобільних додатків можна було отримати два з трьох. Найчастіше в жертву приносили UX/UI, причому ситуація була особливо плачевною в категорії додатків для бізнесу. Користувачам пропонували щось, що в кращому випадку не порушувало HIG платформи, а часто так взагалі було калькою web версії. Але ситуація змінюється з приходом Flutter!
У цій доповіді ми поговоримо про те, як писати надійні, красиві додатки, на ультра швидкості та без особливих витрат.
Про спікера
Пишу код за гроші з 2006 року, в мобільній розробці з часів, коли ретина тільки з'явилася, андроїд змушував сумувати, а віндовсфон був класним, тобто вже 7 років. Працюю на позиції Head of Mobile Unit у Ciklum. У вільний час вчуся новому, а також вчу інших.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.
Про спікера
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.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:
Про спікера
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.Optional є одним з фундаментальних типів у Swift. На жаль, незважаючи на його поширеність, чимало розробників не звертають уваги на можливості, приховані у цьому типі, або використовують його недоречно. Все це призводить до порушень основних принципів програмування, а також нехтує деякими потужними можливостями, доступними у Swift. Крім того, цей тип дозволяє розглянути важливі концепти, які зроблять рутинну роботу з Optional і схожими типами, ефективнішою та зручнішою.
Під час доповіді ми відповімо на питання чому та як слід оминати optional binding. Розглянемо приклад з код-рев'ю і зробимо рефакторинг у фунціональному стилі щоб побачити недоліки та переваги такого підходу у Swift. Це надасть нам змогу дослідити як Optional впливає на DI та обробку помилок і які є альтернативи до стандартних технік, доступних у Swift.
Про спікера
iOS-розробник у Ciklum Solutions Team. З 2012-го року не можу зрозуміти дивний підхід Apple до розробників та чому Xcode такий, як він є. Проте, це не заважає мені отримувати задоволення від роботи та заохочує до постійного навчання.Обрати архітектуру для розробки не просто. Серед безлічі можливих архітектурних рішень для Flutter у фаворити вибились BLoC і Redux. BLoC ― нове рішення від компанії Google, яке лише починає набувати популярності. Redux ― незмінний улюбленець ком'юніті. І, звісно, мій. Саме про нього і поговоримо.
Під час доповіді ми візьмемо готовий UI шар і реалізуємо всі необхідні Redux компоненти: Store, State і Reducer Actions. А також специфічні для Flutter елементи ― StoreProvider і StoreConnector.
Про спікера
Senior Android розробник у SteelKiwi Inc. У мобільний розробці з 2013 року. Після першого публічного релізу Flutter на Google I/O 2017 загорівся крос-платформною розробкою додатків з Flutter. Відтоді я ентузіаст цієї технології. Останніх півроку реалізовую цю технологію у проектах.Docker - популярне слово в світі backend-у, а чим він може стати в пригоді в Android розробці? Виявляється може. Коли проект тривалий і досить серйозний, то справа доходить до написання тестів на декількох рівнях(unit, integration, UI automation), а це в свою чергу вимагає налаштування pipeline-у на CI, який би правильно проганяв ці тести на кожен коміт. Наступні питання виникають: як зробити щоб різні види тестів ранились паралельно, як ранити паралельно на кількох девайсах, на кількох типах backend-у, і при цьому щоб одні тести не "заважали іншим". Тоді на допомогу і приходить Docker - пісочниця яка дозволяє ізолювати середовище і думати про масштабування. В багатьох випадках можуть допомогти devops піхотинці, але не завжди вони виділені на проект чи можуть зрозуміти що ви від них хочете.
В рамках доповіді буде коротко розглянуто основні ідеї такого потужного інструменту як Docker, його можливості, буде написано вживу невеликий instrumentation тест для демо-проекту, потім написано Dockerfile для проекту і скрипт, який розвертатиме контейнер і його можна буде виконувати на CI, наприклад Jenkins.
Про спікера
Senior Android developer у Star Engineering.Вже десять років ми активно працюємо над створенням мобільних додатків. Користувачі стають все більш вибагливими, темпи розробки зростають, і дизайн не стоїть на місці. Ми розкажемо, що насьогодні вважається якісним дизайном, які дизайн-практики використовуються для забезпечення якості дизайну, як передати наробки дизайнерів команді розробників. Окрім цього розкажемо, де шукати натхнення і заряджати ним колег.
В рамках доповіді ми розповімо про дизайн мислення, креативні воркшопи, юзабіліті тестування, дизайн-систему і базовану на ній SDK, як подружити дизайн та аджайл.
Про спікерів
Представляють дизайн-команду компанії Tonic Health, продуктом якої є додаток для збору даних пацієнтів на iPad. Команда практикує дизайн-мислення й створює продукт, якій готові порадити своїм користувачам навіть бабусі. Тетяна (Head of Design) має 15-річних досвід в дизайні, дизайн-менеджменті та впровадженні дизайн-процесів та є активним доповідачем на коференціях. Надія (Product Designer) суміщає дизайн, програмування та копірайтинг і активно впроваджує найсміливіші ідеї в життя.Всі сучасні популярні DI-фрейморки для Java використовують обробку анотацій під час компіляції та/або під час виконання програми. Вони однаково добре працюють і для Kotlin, але мають свої недоліки, бо генерують забагато коду та/або використовують рефлексію, що негативно позначається на часі компіляції додатку, його розмірі та швидкодії. Крім того, зазвичай їх конфігурація є нетривіальною для великого проекту. Kotlin пішов кращим шляхом...
В рамках доповіді буде продемонстровано як можна легко та ідіоматично організувати DI у своєму коді без допомоги сторонніх фреймворків. Натомість, в режимі програмування наживо ми разом створимо свій фреймворк без жодної анотації, де використаємо виключно стандартні можливості мови Kotlin.
Про спікера
Mobile Tech Lead у Lóhika. Більше восьми років робить світ трошечки кращим завдяки мобільним додаткам. Активно доповідає на конференціях та тематичних мітапах Android та Kotlin спільнот, займається менторством і контрибютить в Open Source.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.
Про спікера
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.У якийсь момент найпростішим способом залучити нових користувачів стає придбання конкурента.
Йтиметься про технічні челенджі, з якими ми зіткнулися при міграції кількох VPN-додатків від куплених компаній, у проект з єдиною інфраструктурою та різними користувальницькими інтерфейсами, використовуючи VIPER.
В рамках доповіді будуть розглянуті наступні питання:
Про спікера
Senior iOS Developer у Anchorfree Inc. У мобільній розробці з 2011 року. Працював як в продуктових, так і в аутсорсингових компаніях. Також був засновником стартапу Pixpie - сервісу зі стиснення зображень.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.
Про спікера
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).У середовищі розробників існує думка про те, що сучасні проекти, зокрема - Android проекти, - всього лише пазл з бібліотек та невеликої кількості бізнес-логіки. В рамках моєї презентації ми розглянемо кілька проектів, на прикладі яких я покажу деякі проблеми та приховану вартість використання деяких бібліотек, про яку мало хто замислюється.
В якості бонуса ми подивимося на деякі приклади очевидного (і не дуже) поганого коду та поганої архітектури.
Під час презентації ми розглядаємо як деякі відомі бібліотеки (RxAndroid, Dagger, Android Architecture Components) використовуються в занадто широкому сенсі або на занадто ранній стадії, і як це заважає проекту, викликаючи вельми неочевидні проблеми як для розробника, так і для кінцевого користувача.
Про спікера
У розробці 11 років, з них 10 років - переважно в мобільному її секторі. За цей час попрацював Java Enterprise розробником, пройшовся по всьому спектру розробки в екосистемі Apple, а з 2011 року почав розробляти і під Android. Останні 5 років працюю на відому в США медійну компанію Complex Networks на посаді Mobile Team Lead, поєднуючи цю посаду з R&D. Встиг попрацювати і з Kotlin, і з Kotlin / Native, і з Flutter, і з анонсованими рік тому Android Architecture Components (AndroidX).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:
Про спікера
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.Десятиліття тому Інтернет був зовсім не торт і мобільні пристрої не були вишенькою. Вразливості у доступі до персональних даних стирчали з таких місць, куди сьогодні може дістатись і дитина, та під час перегляду свинки Пеппи злити доступ до всіх ваших кредитних карт.
Прихід протоколу OAuth не зміг врятувати нас від ремейків Філіпа Кіркорова та клауд-репу, але спробував убезпечити доступ до наших даних. Але він не допоможе тобі, юзернейм, якщо ти не вмієш користуватися ним як слід.
Так що влаштовуйся покомфортніше на кухні мобільної авторизації, будемо готувати OAuth2 та OpenId.
Протягом цієї сесії я розповім:
Про спікера
Mobile Team Lead в компанії Lohika з 10+ мобільними проектами. Останні півроку гордо працюю над новою версією Okat AppAuth Sdk та AppAuth-android від OpenId Foundation. Люблю мобільну розробку та ... немобільну розробку.Протягом останніх двох років Room був переважним рішенням для роботи з SQLite в Android. Але нещодавно була випущена нова версія бібліотеки SQLDelight, яка підтримує kotlin multiplatform, має перероблений api, новий генерований Kotlin-код, розширення до RxJava2, підтримує Paging-бібліотеки та багато іншого. З його можливістю генерувати в live-режимі typesafe kotlin код з чистого SQL за допомогою плагіну Android Studio важко конкурувати. Чи все ще варто розглядати інші рішення, маючи такий потужний інструмент?!
На цій сесії ми розглянемо основні можливості SQLDelight та в live-режимі побачимо, як він працює. Розберемо типові випадки його використання та поміркуємо про можливості multiplatform використання SQLDelight у майбутньому.
Про спікера
Lead Android Engineer у Lalafo. Більше 6 років займаюся мобільною розробкою. Маю досвід скейлення Android-додатків від декілька тисяч до кількох мільйонів юзерів.Вибір та проектування архітектури мобільних додатків стає все більш і більш актуальною темою для розробників. MVI - підхід, який набирає популярність при проектуванні Android-додатків. На доповіді ми поговоримо про те, звідки прийшов такий шаблон, які були передумови для його виникнення та які основні принципи він проповідує. Обговоримо що таке state management, immutability та unidirectional data flow. Так само ми подивимося як змінювався підхід при адаптації його для мобільного розробки, чи спрощує він життя розробникам і чи відповідає на питання, які виникають при виборі архітектури.
На доповіді ми поговоримо про проблеми, які вирішує MVI-підхід, зрозуміємо, чи можливе його використання в "оригінальному" вигляді в мобільній розробці. Розглянемо та порівняємо популярні бібліотеки, що використовують цей підхід (Mosby, MVICore, Grox). Розповім, як ми переводили наш додаток на MVI, з якими проблемами зіткнулися. Будуть представлені приклади та демо-додаток для презентації, які допомагають оцінити плюси та мінуси такої архітектури у порівняти з іншими популярними підходами.
Про спікера
Mobile Team Lead у Ciklum. Co-organizer GDG Odessa. Speaker on Android and Kotlin meetups. У мобільній розробці з 2011 року.