{"talk-tbd":{"title":"TBD","description_html":"TBD","speakers_keys":[],"language":"EN"},"talk-functional-approach":{"title":"Functional approach to Android architecture using Kotlin","description_html":"Modern languages with functional colors are mainstream lately. Kotlin is arising as one of the most powerful ones, and developers around the world are using it for personal and professional projects.\n\nIt's time for Android devs to look forward and benefit from this fact, and start designing more advanced architectures based on the features provided by the language.\n\nOn this talk, I will showcase a Kotlin approach (plus a sample project) to learn how to move all our side effects in the edges of our system, and implement a functional oriented architecture for our Android apps based on purity. Testing will also take part on the talk.\n\nI will also showcase a functional programing lib we are working on in the spanish community, called kategory: https://github.com/kategory/kategory\n\nIf you feel OOP is just not enough and want to make a huge step forward, come to this talk. You will not regret!","audience_level":"Advanced","language":"EN","speakers_keys":["speaker-jorge-castillo"]},"talk-how-to-combine-swift":{"title":"How to combine Swift/Kotlin with C/C++","description_html":"The appearance of Swift and Kotlin is a great change in mobile world. There is a number of advantages to using them. Still, one thing didn’t change: as embedded programmers, in order to provide better performance, reduce battery utilisation, etc. we sometimes need to operate on lower level.\nDuring the speech, I will provide you with ready-to-use tools that will let you utilise a huge codebase of C and C++ in your project and discuss differences between them.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-michal-kowalczyk"]},"talk-devops-in-mobile":{"title":"DevOps in mobile?","description_html":"Developing an app being a consumer product means working under constant pressure to frequently release features that bring value to customers. Several-months-long development with no release to production happens very seldom in the aforementioned context. How to cope with a need for speed of releasing an app eg. once a week? If you look at what happens in a ‘backend world’, DevOps is the new hype giving a promise to deliver value in a stable way very often. However, DevOps is very often associated mistakenly only with Continuous Integration and Continuous Delivery. I will be talking about increasing overall flow of value to customers, shortening feedback loops from customers and building an organization which is optimized for speed and stability. Moreover, what practices considered with DevOps in a ‘backend world’ are valid in a 'mobile world'? On the other hand, what practices need to be re-thought taking into account the mobile context? I will not be able to answer all the questions as I don’t know all the answers. However, the answers I have are based on what Facebook, Netflix, Etsy and - where applicable - Seqr do, don’t do or were doing wrong. The goal of my talk is to help people to understand DevOps comprehensively and how it fits into mobile context. I will refer to certain technologies as examples but will not discuss them in detail.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-tomasz-pajak"]},"talk-att-video-opt":{"title":"Optimizing Android App performance with AT&T Video Optimizer","description_html":"App performance matters. To achieve greatness we need to track and measure what we can't see with naked eye. I my talk, I'll introduce you to AT&T performance optimizer. Are you sure your Android app will pass strict security and performance tests?","audience_level":"Intermediate","speakers_keys":["speaker-bartosz-kraszewski"],"language":"EN"},"talk-tensorflow":{"title":"Tensorflow for Mobile Developers","description_html":"There is a lot of Hype with ML and AI lately, and TensorFlow is the framework of choice from Google. But as a Mobile Developer you might have asked yourself, how can I benefit from it? In this talk, you will learn your first steps into the fascinating ML world for mobile","speakers_keys":["speaker-enrique-lopez-manas"],"language":"EN","audience_level":"Intermediate"},"talk-cebulowe-testy":{"title":"Ogres and tests are like onions","description_html":"If you are curious how we test iOS mobile applications in Allegro, this lecture is for you. We think of app testing right after opening Xcode, creating user interface and writing final implementation. On different development stages, we test different subjects with different tools. Feel invited to learn our story about subsequent layers of testing, starting from unit, through snapshot and functional testing. True story based on developer’s and tester’s experience.","audience_level":"Intermediate","speakers_keys":["speaker-aleksander-grzyb","speaker-ewa-ludwiczak"],"language":"EN","photo_url":"/images/speakers/aleksander-ewa.jpg"},"talk-making-scriptable-iOS-apps":{"title":"Making Scriptable iOS Apps","description_html":"I will discuss how we can provide a Javascript interface to an app's core functionailty, and how this can help during development time, as well as providing advanced users with increased powers.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-daniel-tull"]},"talk-kodein":{"title":"The Kodein KOtlin DEpendency INjection library","description_html":"Kodein is a library that allows for ideomatic & semantic dependency injection in Kotlin. In this talk, I will first present Kodein, its goals and achievements. I will then propose a live coding showing how to use Kodein in an Android application.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-salomon-brys"]},"talk-database-handling-with-room":{"title":"Database handling with Room","description_html":"Room is the new library from Google to speed up the database work and remove a lot of boilerplate. We will see and introduction to this library and how to structure your application to get the most of it.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-sergi-martinez"]},"talk-breaking-bug":{"title":"Breaking Bug","description_html":"Breaking Bug is a post-mortem about how we handled in Chicisimo a bug which went largely undetected and of unknown scale. \n\nWe will explain how it did affect us, and which techniques and tools did we use to:\n\n1. Investigate what was going on.\n2. Properly diagnose and narrow it to the affected part in the app.\n3. Analyze its impact and affected people.\n4. Finally isolate it and fix it.\n\nIn the end we will give some conclusions about how was the real cost of fixing it, and in which ways the process gave us insight and helped us to understand and improve our quality processes.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-saul-diaz"]},"talk-zero-to-hero-in-ui-testing":{"title":"Zero to hero in UI testing","description_html":"(or how to build a scalable testing suite). In this talk we'll discuss the problems around UI testing - why is it hard to write such tests, how to get started, how to make them part of your CI system. We'll present a recipe for building a scalable framework that makes writing UI tests a pleasure. Most of the common \"gotcha-s\" will be solved along the way, as well as giving a few best practices. Once the foundations are laid out, a whole new set of scaling problems arises, so we'll talk about possible solutions for them. \n\nWhether you still don't have any UI tests in your project, or you already have a good suite built, this talk will give you some useful tips & ideas.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-veselin-iliev"]},"talk-introduction-to-react-native":{"title":"Introduction to React Native","description_html":"React Native has been a hot topic for some time now. Many people claim that it is revolution in mobile development, others treat it as another multi platform solution which will never replace the \"real\" native development. So... What is it then? In this talk I'll share my experience as iOS developer who got into React Native development and has many different feeling regarding the topic.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-eliasz-sawicki"]},"talk-android-architecture-components-considered-harmful":{"title":"Android Architecture Components Considered Harmful","description_html":"Applications architecture is a broad and important topic in software development, which has been neglected by official guidelines for Android for a very long time. In spite of that, the interest in architecture among the members of Android community has been growing steadily over the years.\n\nOfficial guidelines and tools slowly caught up with the community interests, which culminated in a recent announcement of a set of libraries called Android Architecture Components by Google developers.\n\nWhile the motivation behind Android Architecture Components is clear, the relation between these libraries and application architecture is not so evident. Furthermore, the way these components address the issues that Android developers experienced over the years hides a new set of potential issues and gotchas under the hood.\n\nIn this session we will attempt to understand what software architecture is and what it isn't, and discuss several potential pitfalls associated with Android Architecture Components.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-vasiliy-zukanov"]},"talk-mvc":{"title":"MVC vs MVP vs MVVM vs MVI","description_html":"Choose between this pattern is constant subject for discussions and fights. In the same time anyone perceives them differently. Is there any way out of this ideological problems? Let's talk about MVC, MVP and MVVM pragmatically. Let's answer \"Why?\" and \"What are the consequences?\". ","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-marcin-moskala"]},"talk-dont-fear-sql":{"title":"Don’t fear SQL: A better way to store and handle data with SQLBrite && SQLDelight","description_html":"For many people, SQL can be intimidating when writing mobile apps. To avoid its complexity, various libraries started to implement techniques such as Object-Relational Mapping. They ease basic operations on complex objects, but come with a set of downsides such as decreased performance and the learning curve of a new library.\n\nSquare’s libraries SQLBrite and SQLDelight improve data manipulation by embracing all the powerful capabilities of SQLite while removing common frictions like runtime crashes, boilerplate code, and type-unsafe APIs.\n\nIn this talk I’ll present the reactive mindset behind SQLBrite and the code-generation capabilities of SQLDelight. When combined, these two libraries will help you architect and code safer and faster with queries autocompletion, code reuse, and much more.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-leandro-favarin"]},"talk-kotlin-tools":{"title":"kotlin.tools() of the trade","description_html":"Kotlin is fairly known in the Android community nowadays, and it's really easy to make the switch from Java. Getting the most out of it though it's the difficult part. In this talk we will explore together the most amazing features it has to offer, from the simplest extension functions to the functional style tricks, the coroutines and a bunch of yet-to-discover amazing things!","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-lorenzo-quiroli"]},"talk-using-android-things":{"title":"Using Android Things to detect & exterminate Reptilians","description_html":"Whether you believe it or not, the Reptilians are everywhere, and we have never been ready to face them so far.\nWe WERE NOT ready... But this will finally change, now that Android Things has been released. Trust me, they didn't want to see that happen.\n\nTogether, we will discover Android Things and see how we can create a moving machine capable of detecting Reptilians (with touch/skin temperature sensors, and machine learning), but also capable of exterminating them (btw, I would appreciate if the staff could lend me a flame-thrower, it would make a great demo).\n\nHow? Using a Raspberry Pi, an Arduino, and discovering+using some specific Android Things APIs, such as gpio, pwm, i2c, spi, uart, allowing us to interact with physical components.\n\nCome see the power of Android Things.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-gautier-mechling"]},"talk-building-ci-pipeline":{"title":"Building CI pipeline based on TeamCity & Docker in Android Team","description_html":"Nowadays, there are a lot of hosted CI solutions that offer quick integration with our repositories and need just few clicks to finish initial setup. Other services, coming with enhanced functionality, but requiring a server to maintain are often not given a try. First problems occur when we start coping with long compilation time and limited resources, especially during instrumented tests running on the Android Emulator. Here TeamCity comes with a rescue. With simplified setup (using Docker) and few tricks, reducing time for possible management, we do not need to hire a DevOps engineer.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-pawel-gajda"]},"talk-augmented-reality":{"title":"Augmented Reality in the iOS World. What's in there for us?","description_html":"The Goal of this session is to underline the importance of the AR related topics and to provide some introduction into the iOS AR world - from the developer's perspective. Nowadays, Augmented Reality seems to grow way beyond the BIG BUZZWORD and it's going to upscale a few more times during the upcoming years. TONS of opportunities seem to be waiting for a sign to appear suddenly on the horizon. And as \"Opportunity dances with those already on the dance floor\", the session intends to cover how to jump start into the AR on the iOS platform. Partly, but NOT ONLY, with the use of the goodies provided by Apple.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-kamil-czopek"]},"talk-make-your-app-instant":{"title":"Make your app instant","description_html":"Instant Apps is a bridge between seamless web experience not requiring installation and truly native user experience with material design and navigation. It absorbs the benefits of both worlds. \n\nAs Google's early access partner, Jet.com got access to Instant Apps API and tools in their early experimental stage. I was leading Instant Apps project for the last 8 months at Jet.com and would love to share the experience. Building Instant Apps required a lot of work on the architecture side, modularization and reducing the app size. \n\nIn my talk I will touch the following points:\n- Instant Apps types\n- Architecture changes\n- Size and feature constraints\n- Pain points and lessons learned\n- Ways to slim down the app and bring it down to 4 MB\n- Benefits","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-yuliya-kaleda"]},"talk-android-things-101":{"title":"Android Things 101","description_html":"In this talk Raul will explain the basic concepts of Android Things (Android for IoT), explain how to setup the development environment for it and show how easy is to work with the different peripherals. For this, he'll use the most popular Dev Kit for Android Things: A Raspberry Pi with a Rainbow HAT (which has lots of sensors, input and output devices).","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-raul-portales"]},"talk-bluetooth-low-energy":{"title":"Bluetooth Low Energy on Android: Top Tips for the Tricky Bits","description_html":"Now that 90% of Android consumer devices and 100% of Android Things devices run software that supports Bluetooth Low Energy (BLE), it’s the perfect time for Android developers to dive into the Internet of Things and start building companion apps or custom smart devices. Unfortunately, Android’s Bluetooth stack has a well-deserved reputation for being difficult to work with. Join me for a journey through battle-tested strategies and code that will provide you with a roadmap for navigating the nasty parts. No prior experience with BLE is required; a gentle introduction is included.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-stuart-kent"]},"talk-lets-framework":{"title":"Let's framework everything!","description_html":"With tvOS introduced almost two years ago, we now have four platforms that can run your app. Of course, each requires tailored UI approach, but tests and deployment for each platform should be quite straightforward. Let’s talk about building a framework, writing tests for it and onwards preparation to use for all Apple devices.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-kuba-mazur"]},"talk-advanced-retrofit":{"title":"Advanced Retrofit","description_html":"Retrofit library makes developers life easier. It serves for something very important these times - to connect to the Internet and get data from it. Everything in Retrofit is simplified to the required minimum of code to be written. In this talk there will be described advanced concepts, along with a little introduction to the library.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-maciej-puchalski"]},"talk-optimizing-android-apps":{"title":"Optimizing Android apps for desktop experience","description_html":"The mobile devices of the latest generation are now capable of powering the desktop user experience. Get your Android apps ready for the big screen. Learn what it takes to optimize your apps for enhanced interactions, desktop mode capabilities, and an overall amplified in-app experience. Stay for the quiz and for a Samsung DeX station giveaway at the end of the session!","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-aleksei-kliuev","speaker-victor-okunev"],"photo_url":"/images/speakers/aleksei_victor.jpg"},"talk-realm-database":{"title":"Realm database in real life","description_html":"I'd like to present my actual case where I used Realm platform, both frontend (iOS) and backend (AWS cloud). ","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-marcin-zbijowski"]},"talk-unmaintainable-code":{"title":"Unmaintainable code - iOS developer perspective","description_html":"Is code duplication the root of all evil? Should I always write a generic code? How to make others life harder? \n\nA subjective journey through common iOS anti-patterns, not so best practices and code smells from the perspective of an experienced Software Engineer.\nBased on +10 years of commercial experienced, thousands of code reviews, made with a dose of pragmatism.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-tomasz-gebarowski"]},"talk-lenses-and-prisms":{"title":"Lenses and Prisms in Swift","description_html":"The concept of functional Lens has become pretty popular in functional programming circles, and there are already good contributions for applying lenses to other, traditionally imperative/OO contexts. I’d like to offer a more in depth view on why lenses can be useful in Swift, and also talk about an associated concept called Prism. Let’s consider some practical problems and confront an idiomatic/imperative approach to the one based on lenses and prisms.","audience_level":"Advanced","language":"EN","speakers_keys":["speaker-elviro-rocca"]},"talk-offline-first":{"title":"Offline-first","description_html":"The best applications function equally well with and without network access. Offline functionality goes beyond a simple cache or database, and it is not a binary choice. Offline first encompasses project requirements, user interface design, security and code architecture. In this talk we'll review the challenges and ways to build applications that take offline as a first class requirement.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-miguel-quinones"]},"talk-rxswift-deep-cuts":{"title":"RxSwift: Deep Cuts","description_html":"In the last few years reactive programming ideas have taken the iOS community by storm. Now that the dust has settled, we're more and more often coming across the most confusing, obscure and unreadable code we've possibly ever seen. The libraries like RxSwift bring the great power, but how to bear the burden of the great responsibility? I'll try to answer this question in my talk, drawing on experience of everyday use of RxSwift in a non-trivial app. Deep diving into implementation details and overview of battle-tested patterns will guide us along the way.","audience_level":"Advanced","language":"EN","speakers_keys":["speaker-krzysztof-siejkowski"]},"talk-building-ios-apps":{"title":"Building iOS Apps at Scale","description_html":"Working with a large code base in a large distributed team involves a lot of challenges. You need to deal with complex workflows, slow build times, communications across different timezones, etc.\n\nIn this talk, Yusei will share how development teams can tackle these issues and speed up daily development. This talk will also cover the following topics:\n\n- Workflow automation with Fastlane\n- Code review with Danger and SwiftLint\n- Collecting and visualizing code metrics with InfluxDB and Grafana\n- Build time reduction\n- Code modularization","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-yusei-nishiyama"]},"talk-awesome-native-apps":{"title":"Awesome native apps with NativeScript and Angular!","description_html":"Developing native iOS (and Android apps) can be very time consuming and expensive.\n\nWhat if you could build native apps with one code base and web techniques? Well, you can with NativeScript!\n\nIn this introduction, I’ll explain what NativeScript is and how it compares to other platforms. And in a live demo, I will show you how easy it is to get started and to make use of native capabilities.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-rowdy-rabouw"]},"talk-i-didnt-know-the-browser":{"title":"I didn’t know the browser could do that!","description_html":"The times when a browser simply had to parse and show some markup are long gone. These days they are full of interesting api’s exposing various information and behaviour to web developers. This talk will walk you through a few of these api’s (speech, speech recognition, battery, location, ...), some of which you might know, some maybe not. I will show a quick example of what some of these api’s can do, and how to use them.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-sam-bellen"]},"talk-speech-analysis-techniques":{"title":"Speech Analysis techniques","description_html":"The evolution of user interfaces in mobile apps continues with the most natural way of expressing the user’s wishes - their voice. Understanding what the users say is not an easy task. In this talk, we will see several speech analysis techniques used to help us in this challenging task, from Apple's brand new Core ML and SiriKit, to Google's api.ai, along with some well known Natural Language Processing algorithms like the TF-IDF.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-martin-mitrevski"]},"talk-predict-impending":{"title":"Predict impending doom with IoT and ReactNative","description_html":"In short few slides i'll show you how to program an ESP32 microcontroller using JavaScript, create air quality sensor, and how to communicate with it using Bluetooth LE and ReactNative application.","audience_level":"Beginner","language":"EN","speakers_keys":["speaker-gabor-wnuk"]},"talk-dont-loose-your-users":{"title":"Don't loose your users because of endless quality issues","description_html":"Getting someone to download your app is hard enough. Don't scare them away with constant crashes, bad behaviors and errors which make your app unusable.\nDuring my presentation, I'll go over techniques, habits and tools to keep your iOS app in tip top shape.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-olivier-destrebecq"]},"talk-graphql-vs-rest":{"title":"GraphQL vs REST","description_html":"Introduction to GraphQL as the innovational way of thinking about data.\nBroad GraphQL vs REST comparison led by real life examples of working with each of the two concepts.\nBased on my article shared by GraphQL's Twitter","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-adam-zaczek"]},"talk-database-driven-ui":{"title":"Database driven UI with MVVM & Realm","description_html":"In this talk I'll show how to simplify your app's architecture by letting the database drive the UI. We'll explore powerful features of Realm such as change notifications and automatic updates to ensure we never have to manually update the UI again.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-nikola-irinchev"]},"talk-machine-learning":{"title":"Machine learning for a healthy society","description_html":"Addiction to drugs and alcohol destroys lives, families, and communities. This talk explores how we are structuring content generated through a mobile-first social network and applying machine learning techniques to predict relapse to substance abuse based on natural language processing. We will explore our methods, findings, and toolset for providing clinical relevance of self-administered therapies.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-zachary-markin"]},"talk-hello-world":{"title":"Hello world!","description_html":"This is couple of words about Mobilization. For community by community.","audience_level":"Beginner","language":"EN","speakers_keys":[]},"talk-finally":{"title":"Finally meeting","description_html":"Time to give thanks to all the sponsors and the organizer's team.","audience_level":"Advanced","language":"EN","speakers_keys":[]},"talk-drink-espresso":{"title":"Drink Espresso during Android Testing","description_html":"Mobile apps are growing. They become more complex and require more testing. It means that it is time to integrate automating tests to your project. In this talk we will discuss shortly testing of Android project in general and User Interface testing with Espresso framework in detail.","audience_level":"Intermediate","language":"EN","speakers_keys":["speaker-aliaksandr-zhukovich"]}}