//.agenda

  • 2 days of 100% Android talks on 4 tracks
  • 70+ speakers and 450+ attendees
  • Key topics include Android App architecture, AI and ML on mobile, multi-platform development, User Interfaces
  • An opening ceremony during the Singularity Festival on September the 23rd: special guests from the global .droidcon community and top-notch tech experts will share the opening stage!
  • Check all the speakers! Check the speakers out!

//.agenda

  • 2 days of 100% Android talks on 4 tracks
  • 70+ speakers and 450+ attendees
  • Key topics include Android App architecture, AI and ML on mobile, multi-platform development, User Interfaces
  • An opening ceremony during the Singularity Festival on September the 23rd: special guests from the global .droidcon community and top-notch tech experts will share the opening stage!
  • Check all the speakers! Check the speakers out!
.droidconGreece #1
2019-09-24
Ibis Hotel Asgardians
H2B Hub Eternals
.droidconGreece #2
2019-09-25
Ibis Hotel Avengers
Ibis Hotel Asgardians
Ibis Hotel Asgardians
H2B Hub Eternals
Ibis Hotel Avengers
Ibis Hotel Asgardians
Welcome remarks image
09:00 - 09:15
Welcome remarks

Welcome to this coming back here of .droidconGreece

Welcome remarks image
Panayotis Tzinis
Play Core library: Take control of Android App Bundles’ dynamic delivery image
09:30 - 10:30
Play Core library: Take control of Android App Bundles’ dynamic delivery

When you use Android App Bundles (AAB), you get an initial size saving through splitting your application by: screen density, language and ABI.
But that’s just the beginning!
With AAB as your distribution format, you can use the Play Core library to make your app smaller, on-demand and always up-to-date

In this talk you will learn about AAB, dynamic delivery and the features that the Play Core library enables in your applications. It will cover:
* Why and how to start using AAB and dynamic delivery
What is the Play Core library and how it interacts with dynamic delivery
* On-demand delivery of additional modules and language resources
* In app updates, covering blocking and non-blocking flows with some bonus UX considerations

We’ll finish by looking at how you can use the new Internal App Sharing to distribute your test builds.

Play Core library: Take control of Android App Bundles’ dynamic delivery image
Pietro Maggi
Android Developer Advocate
100% direct access to all Android APIs with NativeScript image
09:30 - 10:30
100% direct access to all Android APIs with NativeScript

Are you a web developer who always wanted to write an app for both iOS and Android, but want to write it only once? Do you want a true, performant, native app, but don’t want to learn yet another language, yet another framework and get used to yet another IDE? With NativeScript, this is easier than you might think! NativeScript is an open source framework that lets you build truly native apps from one code base using Angular, Vue.js, TypeScript or JavaScript. You will get 100% access to all native APIs directly from your JavaScript or TypeScript code. In the workshop we will build a robust Video On Demand (VOD) app and a Music Streaming App with NativeScript and Android. And Peter Eijgermans show you NativeScript’s strongest capabilities to access Android APIs inside JavaScript/TypeScript.

100% direct access to all Android APIs with NativeScript image
Peter Eijgermans
CodeSmith and Google Developer
Screenshot Testing for Android image
10:30 - 11:00
Screenshot Testing for Android

Screenshot Testing is a fast, simple, and fun way to develop UI while keeping your sanity and avoid visual regression bugs. In this talk Nikos and Christoforos will explain what is Screenshot Testing and how it protects and speeds up UI development. They’ll point out some common gotchas while paving the road to the “perfect pull-request”.

Screenshot Testing for Android image
Nikos Linakis
Android Developer
Screenshot Testing for Android image
Christoforos Filippou
Android Developer
The Hitchhikers Guide Through Kotlin Multiplatform image
10:30 - 11:30
The Hitchhikers Guide Through Kotlin Multiplatform

Since the early days of mobile that we keep seeing new frameworks being designed to overcome one of the biggest challenges:
* How can I develop for both Android and iOS?

Although it’s initial promises, when we talk about performance, maintainability or even customization we keep discarding these solutions and we always choose native.

Fast forward to the present, and now we have two new languages: Android is Kotlin first and iOS, Swift. And if you put them side by side you can see a lot of similarities between both what will ease switching between one to the other if you have to develop for both platforms.

But what I told that you could just develop in Kotlin and run it seamlessly on all devices?

Here comes Kotlin Multiplatform!

The Hitchhikers Guide Through Kotlin Multiplatform image
Carlos Mota
Lead Software Engineer
Working With Dagger and Kotlin image
11:00 - 11:30
Working With Dagger and Kotlin

Dagger has become one of the most widely used libraries in Android development, and is often one of the first to be thought of when bootstrapping a new project, but there are still many nuances and caveats that often get overlooked!

Many questions arose after the adoption of Kotlin, on how to continue following best practices from Java, so whether you’re using dagger-android or vanilla Dagger, I’ll go through some tips and tricks to make sure you’re using Dagger to it’s best capacity.

Working With Dagger and Kotlin image
Ash Davies
Senior Android Engineer
11:30 - 12:15
Break @Ibis Hotel
11:30 - 12:15
Break @Ibis Hotel
Zero knowledge proof image
12:15 - 13:15
Zero knowledge proof

Are you willing to share your biometric identification with someone else? Thanks to Zero Knowledge Proof(ZKP) you don’t have to. With ZKP you can convince about your identity without sharing it.

Zero knowledge proof image
Bakhtar Sobat
Chapter Lead Android Dev
Interacting with the Blockchain via Android image
12:15 - 13:15
Interacting with the Blockchain via Android

Blockchain is disrupting software industry. The term itself has become a popular topic. Everyone is talking about blockchain and its usages in decentralized applications. How can we be part of it? In this talk, i am going to explain to you roughly about dApps, Blockchains, and how can we interact our Mobile Android App with the Ethereum Network.

Interacting with the Blockchain via Android image
Cristian Serje
Team Lead Native Apps
Building asynchronous mechanisms in Android applications, using Kotlin Coroutines image
13:15 - 14:15
Building asynchronous mechanisms in Android applications, using Kotlin Coroutines

In this talk we’ll see how, using a large deal of the Kotlin Coroutines API, we can build asynchronous mechanisms in Android applications, which are testable, scalable and clean.

We’ll touch upon the topic of dispatching, thread switching and synchronization mechanisms, building operators using coroutines, and creating our own API which abstracts away the threading, contexts and dispatching logic of coroutines.

Building asynchronous mechanisms in Android applications, using Kotlin Coroutines image
Filip Babić
Google Developer Expert
Let me write your networking code image
13:15 - 14:15
Let me write your networking code

When writing networking code, you want to make sure the code between the client and server implementation is consistent. After spending hours defining the APIs with your backend engineers, you’ll probably need to spend even more time implementing those details over to your code (and guess what… your backend engineers will be doing the same!). This process is boring, time consuming, and prone to errors.

Wouldn’t it be cool if this process were automated? If you could have classes and interfaces that mirror your API definition? And if they were automatically tested and ready to use out of the box?

It can be done! At Yelp, we define our APIs using Swagger Specs and we successfully automated the generation of our networking code for both servers and clients (iOS & Android). On Android, we generate Kotlin Data Classes and Retrofit APIs that mirror our spec files and are ready to use for all engineers. In this talk, we will explore how we set up our code generation pipeline and how you can start doing it, too.

Let me write your networking code image
Nicola Corti
Android Engineer
14:15 - 15:15
Lunch @Ibis Hotel

Let’s recharge!

14:15 - 15:15
Lunch @Ibis Hotel

Let’s recharge!

Using Navigation component in a large multi-module app image
15:15 - 16:15
Using Navigation component in a large multi-module app

Jetpack’s Navigation component solves many long-running pains of every Android developer. We were early adopters of it at Air Bank Germany. Our large codebase is packed with the current best practices including multiple modules. Come to learn more about our architecture with focus on navigation. Dark corners, hidden gotchas and practical examples incoming.

Using Navigation component in a large multi-module app image
David Vávra
Google Developer Expert
Creating Custom models with AutoML and MLKit image
15:15 - 16:15
Creating Custom models with AutoML and MLKit

AutoML has been is product that has been helping many people create custom machine learning models without having any code experience. However it was always hard to use these models in mobile apps. At Google I/O 19 the firebase team announced support for AutoML in firebase, making it easier for mobile developers to access these custom models in their apps. This talk will cover what AutoML is and how we can use these custom machine learning model in our android app through firebase.

Creating Custom models with AutoML and MLKit image
Peter John Welcome
Mobile Engineering Lead
Game Development with Unity from an Android Point of View image
16:15 - 17:15
Game Development with Unity from an Android Point of View

Developing mobile games with Unity has become more and more popular these years, and Unity developers often need to tackle OS specific challenges.

Through this talk you will discover how to work with Unity as an Android Developer. You will see how to build Unity plugins using the JNI and Java/Kotlin, which is the most efficient way to link Unity with the Android framework.

Every Unity project can be exported as an Android Studio project with a Gradle support. You’ll also see how you can integrate Unity inside a native Android Java/Kotlin application, or how to get a full control of the build process so you can benefit from the best of both worlds.

Game Development with Unity from an Android Point of View image
Julien Salvi
Senior Android Engineer
Flutter or React Native, a cross-platform dilemma image
16:15 - 17:15
Flutter or React Native, a cross-platform dilemma

Nowadays the hype around Flutter is raising a lot. But what about the “(not so) old-fashioned” React Native?
In this talk, we will see the basics and the differences between the two frameworks. In particular, we will understand how to build User Interfaces and how the internals of the two framework works. Finally, we will try to understand when and why to choose a cross-platform framework and which of the two.
All this journey is based on the true story of an Android Developer that he wanted to explore the cross-platform jungle both for work and fun reasons.

Flutter or React Native, a cross-platform dilemma image
Marco Gomiero
Mobile & Data Engineer
Transforming a Java Desktop Application to Kotlin Multiplatform image
17:15 - 18:15
Transforming a Java Desktop Application to Kotlin Multiplatform

Kotlin Multiplatform is a language feature that allows compiling Kotlin code for Java, JavaScript, iOS, and even Native targets. While there are plenty of resources on how to use this feature, this session takes a look at converting a real-world Java Swing Application to Kotlin Multiplatform and when it actually makes sense to use it.

Starting from with the basics of Kotlin Multiplatform, you will get to see its
beauty and simplicity. After that, you will learn about gotchas, caveats and
lessons learnt from converting and refactoring a Java Desktop Application to Kotlin and running it on multiple target platforms. In this talk, we will take a look at running our refactored code in the browser.

You’ll leave this talk with a solid grasp of what’s possible with Kotlin
Multiplatform, where it makes sense to use it and where it maybe doesn’t.

Transforming a Java Desktop Application to Kotlin Multiplatform image
Jossi Wolf
Android Developer
Good rules for Bad apps image
17:15 - 18:15
Good rules for Bad apps

Building a decent app is easy this day, there are plenty of tutorials, videos and blog post about it. In this session, I’ll try to go over some of the top mistakes that every one of us is doing while building his app. This will cover all the aspects of building a bad app- technical, UI & UX, and product. So each one of you will be able to adapt his favorite bad pattern and ruin his app.

Good rules for Bad apps image
Shem Magnezi
Staff engineer
18:15 - 19:00
Break or let’s get Speechless 🙂 @Ibis Hotel

You can either have a break or join us in an impromptu Speechless session

Break or let’s get Speechless :) @Ibis Hotel image
Nicola Corti
Android Engineer
Break or let’s get Speechless :) @Ibis Hotel image
Carlo Lucera
HatDroid developer
18:15 - 19:00
Break or let’s get Speechless 🙂 @Ibis Hotel

You can either have a break or join us in an impromptu Speechless session

Break or let’s get Speechless :) @Ibis Hotel image
Nicola Corti
Android Engineer
Break or let’s get Speechless :) @Ibis Hotel image
Carlo Lucera
HatDroid developer
Bye bye RxJava: Building flexible SDKs with Kotlin and Coroutines image
19:00 - 20:00
Bye bye RxJava: Building flexible SDKs with Kotlin and Coroutines

We’ve made some mistakes building our client-facing SDKs over the last two years at Babylon Health.

RxJava has been around in Android development for years, and we’ve learned a great deal about it. It’s a powerful tool, but with great power comes great responsibility. And really – you should always use the right tool for the job, not the most “powerful” one. Now we have a new tool in our toolbox – Coroutines – and they seem better suited to a typical Android business layer. It doesn’t mean RxJava should be entirely out of the window, as for us it’s still quite useful on the UI layer.

We’re here to share why and how we went from a heavily RxJava based SDK architecture to a more client and developer-friendly approach replacing most of our code with Kotlin & Coroutines and compare both solutions.

We will admit to mistakes, share the principles that guided us in our planning for fixing them and show you how we came up with a plan and executed it.

Bye bye RxJava: Building flexible SDKs with Kotlin and Coroutines image
Mikołaj Leszczyński
Android Software Architect
Structured unit testing with Spek image
19:00 - 20:00
Structured unit testing with Spek

Are you tired of decrypting the JUnit test that you wrote a few weeks back?
Do you want to write nice, readable & structured tests that are actually fun to write and joy to read?

If you have answered yes to at least one of the questions above, I have a solution for you. Join this talk and fall again in love with unit testing.

We will cover:
– Describe how Spek works
– Comparison with JUnit
– Sample tests for a project following a clean architecture pattern (data, domain & view layer)

Structured unit testing with Spek image
Martin Petrulak
Freelance Android Developer
Cut your APK size with features on demand image
20:00 - 21:00
Cut your APK size with features on demand

Do APK or app size matters?
Does a user think about the APK size before downloading it?
Does a user think about space, an app occupying on the phone?
Is your App size is more than just a few MBs?

What if we provide very basic functionality and let the user decide whether he wants the advanced or additional functionality or not?

Yes, The user thinks about the app size before downloading or updating an app which has a size larger than a few MBs. The user thinks about the data also over which he will be downloading or updating that app. He or she even think about how much space will it take on his or her device. In this fight of space in the device and size of the app, the apps having a smaller size and frequent utility wins the battle.

What if we provide very basic functionality and let the user decide whether he wants the advanced or additional functionality or not. What if he or she can download only the features he needs on demand and keep the app compact.

Google new feature of dynamic delivery enables us to deliver the features on demand. This helps us to reduce the size of APK and even enables the user to choose what features he needs. From a developers perspective, this is very easy to implement and maintain.

Even we (Sharechat) were also at the same state where the size of APK was an issue with the new set of features we were trying to implement. Google Dynamic delivery came to the rescue.

What is actually a dynamic delivery?
How can we reduce the APK size with it?
How it can help a user?
How to implement it in Android?
How difficult is it to implement in the existing code base?
How will it look to the user in the app?

Well, let’s get all these questions answered in the talk along with our experiences and challenges we faced.

Cut your APK size with features on demand image
Suneet Agrawal
Mobile dev
Why React Native Teams Need Android Developers image
20:00 - 21:00
Why React Native Teams Need Android Developers

React Native is an awesome cross-platform solution with which you can just write once (in Javascript) and run anywhere, or… is it?

In this talk, I’m gonna show you some real-life examples of why React Native projects still need from Android experts if they want to create really amazing apps and I’ll share with you some of the things I’ve learnt working as an Android developer in the React Native infrastructure team at Skyscanner.

Why React Native Teams Need Android Developers image
Leandro Mazzuquini
Android Dev 🤖🤓
Libraries for K/N citizens image
09:30 - 10:30
Libraries for K/N citizens

The success of any technology is depending on its ecosystem. We want to see meaningful APIs and effective SDKs, but we also rely on the community ecosystem and its support.

Whereas K/N is relying on Kotlin as a language, K/N will need the support of libraries that provide with extra functionality. JetBrains is doing a great job in this direction, but this needs to rely as well on the community.

Learn on this talk what are the current State of the Art libraries for K/N, how to get started with them and apply them in your projects. We will showcase libraries from some of the main actors in the K/N realm (JetBrains, Touchlab), as well as some of the independent agents arising.

Libraries for K/N citizens image
Enrique Lopez Mañas
Google Developer Expert
Nitrogen in your (test) pyramid. image
10:30 - 11:30
Nitrogen in your (test) pyramid.

Unit, integration, UI tests are part of the famous test pyramid, different tools were used in order to full fill it, but still today there are lot of issues about how to execute it in a proper manner and how to sync all environments (local, ci, etc) in order to satisfy all the testing criteria, and having a good reports.

From IO 2018 with the announcement of project Nitrogen, Google’d like to “nitrogenize” our tests creating a single entry point and solve all issues
we had in the past. With October release of Robolectric 4.0 and androidx.test 1.0.0, both testing environments are converging on a set of common test APIs. Robolectric now supports the AndroidJUnit4 test runner, ActivityTestRule, and Espresso for interacting with UI components.

Let’s see togheter how to organise different levels of our ‘test pyramid’, with a focus to the last news/releases in order ot be ready for the Nitrogen release.

Nitrogen in your (test) pyramid. image
Enrico Bruno Del Zotto
Senior Android Developer
Building Voice-First Android Apps image
10:30 - 11:30
Building Voice-First Android Apps

Thanks to the latest advancements in Machine Learning, we’re now capable of interacting with machines through natural language. The age of voice assistants is here with Alexa, the Google Assistant and others. But, as an Android developer, what can I do on my existing app in relation to conversational features?

When we think about developing features that are voice-forward, we think about existing voice assistants such as Alexa and the Google Assistant. What about the fully-capable computers that we have with us all the time, our smartphones? Some moments on our day to day lives are very well suited for voice interactions: while in a car or cooking for example. Let’s not forget that voice interactions are extremely accessible, not only in a physical way (for people with dexterity or motion impediments) but also in a cognitive way (I think we all have a loved one in our lives that really struggles with technology, and people from some emerging countries have very limited access to computers and are not at ease with technology).

In this talk, I’ll explain what integrations can be done on Android:
– 1st-party solutions such as the SpeechRecognizer and TextToSpeech APIs
– Other Google solutions such as ML Kit, TensorFlow and Dialogflow
– 3rd-party solutions such as Porcupine, Snips, Amazon Lex, Snowboy and PocketSphinx
– Integration with the Google Assistant via App Actions

Building Voice-First Android Apps image
Elaine Dias Batista
Google Developer Expert
11:30 - 12:15
Break @Ibis Hotel
11:30 - 12:15
Break @Ibis Hotel
Sign here, please! image
12:15 - 13:15
Sign here, please!

An application ID might define your app among all others, but its signature is what proves and confirms its identity and integrity. From working in distributed teams to fending off fraudulent clones of your application, you eventually come to understand the importance of signatures.

In this talk we’ll take a deep dive into the Android keystore system, certificates and  signatures, and go over key points necessary for any application’s long and productive life. Also, we will cover some security tips and tricks that will help ensure your app is safe to use, even if the users are faced with its evil twin.

At the end you should walk away with a deeper insight into everyday mechanisms that are often taken for granted, and the impact that they have on your users’ security.

Sign here, please! image
Ana Baotić
Asseco SEE, PM
Dependency Injection with Koin image
12:15 - 13:15
Dependency Injection with Koin

While Dagger has been the go to library for DI in Android, in this talk we explore Koin (which recently hit 2.0) and see whether it can be a viable alternative for you and how it compares with Dagger.

Dependency Injection with Koin image
Shashank Mishra
Android Engineer
SELECT * FROM SqlDelight JOIN Multiplatform image
13:15 - 14:15
SELECT * FROM SqlDelight JOIN Multiplatform

For the last couple of years, Room was the preferable solution for work with SQLite. But recently was released a new version of SQLDelight with kotlin multiplatform support, overhauled API and full generated kotlin code, RxJava2 extensions, paging library support and many more. With its feature of live typesafe code generation from SQL queries with the help of Android Studio plugin is hard to compete. So is it still worth considering other solutions?

In this session, we will go through the core features of SQLDelight and in the live demo, we will see how SQLDelight works. We will go through the main use cases and will think about future possible use cases of multiplatform application of SQLDelight. You’ll leave this talk with a solid understanding of how SQLDelight works and the confidence to get started.

SELECT * FROM SqlDelight JOIN Multiplatform image
Andrii Rakhimov
Lead Android Engineer
Make Your App Smarter image
13:15 - 14:15
Make Your App Smarter

–Bring your laptop–

Today, most artificial intelligence services have to send your data to the Cloud in order to perform the analysis. With specific chipset capabilities, calculations can be done directly on the phone and this guarantees the privacy protection that a lot of different use cases need.
In this session, I will show you how to use HiAI: a mobile computing platforms that make the developers able to run artificial intelligence algorithms on device.
This is a live session where you will be able to try all the development tools needed to unleash all the capabilities of a Neural Processing Unit

Key takeaways:
– Understanding the advantages of using on-device AI
– Having an overview of our platform for on-device AI
– Realize a full Android app that integrates computer vision capabilities

Make Your App Smarter image
Francesco Romano
Developer Advocate
14:15 - 15:15
Lunch @Ibis Hotel

Let’s recharge!

14:15 - 15:15
Lunch @Ibis Hotel

Let’s recharge!

Improve user engagement with Google Play Store delivery image
15:15 - 16:15
Improve user engagement with Google Play Store delivery

Google introduced the Google Play Instant feature few years ago and more recently a new way to package an application with dynamic delivery capabilities. The user can now access instantly to a native application through a simple link without installation and then download only the main features at the installation-time (to delay the download of certain optional features).
During the presentation I will introduce this new package format, its benefits, and show you how to use it to deliver your application on the Play Store (even an existing app).
You will learn how to architecture your application to take advantage of this new bundle format and benefit from dynamic delivery. Finally I will provide additional development guidelines to enable Instant Application without cost.
At the end of the presentation, you will be able to transform an existing application to an optimized native app.

Improve user engagement with Google Play Store delivery image
Donovan Fournier
Android Lead Developer
Coroutines vs. ReactiveX: Handling errors image
15:15 - 16:15
Coroutines vs. ReactiveX: Handling errors

Whether you’re coming from the Android world or not, you’ve probably heard about Kotlin (the programming language) and its asynchronous programming concept called Coroutines. It’s a neat concept that helps you create execution blocks similar to light-weight threads, while at the same time allowing you to write your asynchronous code in a synchronous fashion.

On the other hand, many of us got really (really) used to Reactive Extensions in many languages, and we prefer to go down this road. With ReactiveX, you can chain your asynchronous blocks in future-like structures, and easily control threading around them.

Well, you know how it usually goes – you read about something (aha! what is this coroutines thing)… maybe you see a couple of talks on the topic, maybe you get interested. After you try it out and decide to use it in a real project, you start typing your code… and boom! Your program crashes. You then go to StackOverflow to check for answers to your problem, and surprise: you’re not handling errors properly. You copy-paste the solution without any edits or tests and you’re ready for release.

Hopefully this is not you. You want to check everything before using a new language or library, you want to fully understand the consequences of switching over to a different solution from the one you currently have. There are some quirks in every approach, sure, but do you know all of the corner cases?

That’s why we need to have this talk. Let’s go together through the most interesting examples of how we can get (and handle) errors with ReactiveX and Coroutines.

Coroutines vs. ReactiveX: Handling errors image
Milos Marinkovic
Software Product Developer
Personalize for each user and device image
16:15 - 17:15
Personalize for each user and device

What sets apart a good action is personalizing the experience for each user, adapting to their needs and offer the best experience for whichever device the user is currently using. Customizing the responses, storing information and manipulating the medium of the displayed response, can all be achieved by learning how to leverage the AoG SDK. Together we will learn the differences between the DialogFlow SDK and the AoG SDK, how to perform all the above and some best practices that will help you build your action faster and better.

Personalize for each user and device image
Eliza Camber
Android developer @Pixplicity
Understanding MLKit offerings in Android & IOS image
16:15 - 17:15
Understanding MLKit offerings in Android & IOS

ML Kit is the SDK that makes machine learning features more straightforward for the mobile developers to incorporate in their apps. Since ML Kit has been made a core ingredient of Firebase ,its robust ML APIs can be implemented seamlessly in both android & IOS apps like it’s any other feature such as analytics, crashlytics etc.

The flexibility provided by ML Kit for mobile developers to use On-device or On-Cloud ML Apis as per the use case is quite significant . In this session we will take deep dive in the different ready to use APIs of ML Kit encapsulating the features of Mobile Vision, Google Cloud Vision API, TensorFlow Lite and Neural Network API and also will discuss how custom models can be hosted seamlessly.We will understand new features such as Language Identification & Smart Reply using NLP . Additionally , we will look into the applications of recently announced Object Detection and Tracking APIs along with sneak peek into AutoML Vision Edge using which custom image classification models can be created as per our requirements .

Understanding MLKit offerings in Android & IOS image
Gaurav Bhatnagar
Lead Android Dev/Enthusiast
17:15 - 18:00
Break @Ibis Hotel
17:15 - 18:00
Break @Ibis Hotel
Using Dagger in a Clean Architecture project image
18:00 - 19:00
Using Dagger in a Clean Architecture project

Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough?
In this talk we’ll see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.

Using Dagger in a Clean Architecture project image
Fabio Collini
Android Engineer
My love-hate relationship with Android Studio image
18:00 - 19:00
My love-hate relationship with Android Studio

Android Studio is the tool of the trade hands down. When it comes to Android (app/library/IOT) development, the first thing that comes to mind is to install Android Studio and get going from there. However, it has not been a smooth road as expected for me. In my own experience, I talk about my love-hate relationship with Android Studio. I try to cover what Android Studio gets right and what it doesn’t. The talk focuses on how to be embrace performance when Android Studio is the bottleneck in the workflow (slow build times and reduced productivity), how switching to a terminal and various tools that exist in the ecosystem can give Android developers the much-needed speed boost and in-depth view in their development workflow. By the end of this talk, you would have embraces a workflow that allows for increased productivity and faster development.

My love-hate relationship with Android Studio image
Nishant Srivastava
Sr. Android Engineer
Closing Keynote image
19:00 - 20:00
Closing Keynote

Android then and now

Closing Keynote image
Chet Haase
Android Chief Advocate
Closing Keynote image
Romain Guy
Android Toolkit team lead at Google
Select date to see events.
Menu