• Jetpack Compose: Navigation - Alex Zhukovich

    Online event

    This is the third in a series of events about Jetpack Compose! This time it's Alex Zhukovich, Senior Android Developer at Backbase, who will talk about complex navigation with Jetpack Compose.

    Livestream: https://youtu.be/dYTfYGwINlo

    ------------

    Schedule

    19:00 Introduction

    19:10 Talk

    19:50 Q&A

    ------------

    Navigation is an essential part of every Android application. We, as Android developers, have many available approaches for navigating between screens in apps.

    This talk will cover the following topics:
    - Android Navigation History
    - How different navigation approaches can be used together with Jetpack Compose
    - How to build complex navigation in an Android app that uses Jetpack Compose

    Alex Zhukovich has been developing Android since 2011. Currently, he is working for Backbase. He is a public speaker in Europe and software enthusiast with a passion for technologies, which share thoughts & experiences on the private technical blog (https://alexzh.com/).

  • Exploring Jetpack Compose Canvas with Julien Salvi

    Online event

    This is the second in a series of events about Jetpack Compose! This time it's Julien Salvi, Android GDE from Paris, who will talk about Canvas. How to draw shapes, bring them to life with animations and more!

    Livestream: https://youtu.be/HtaRmOjkk64

    ------------

    Schedule

    19:00 Introduction

    19:10 Talk

    19:50 Q&A

    ------------

    In this session, we are going to explore the Jetpack Compose Canvas and its capabilities. Let's see the different ways of drawing custom shapes with Jetpack Compose: exploring the Canvas Composable and its APIs, building custom Shape or overriding the canvas of any existing Composable. Then, we'll see how we can animate the shapes that we've drawn and how you can access the native Android canvas to bring your existing shapes to life with Jetpack Compose.

    ------------

    Julien Salvi - Senior Android Engineer at Aircall
    Is in the Android world for almost 10 years (scary Eclipse dark time!), I experienced California startup way of life before coming back to France. I am currently a Senior Android Engineer at Aircall where we are building the best phone system for modern businesses. Alongside Android, I have a great interest in backend development with Kotlin and AR/VR technology. In 2021, I became an Android GDE to continue my journey to always share and learn with the Android community.
    On my spare time, I am a world traveler and a beer lover always looking for the best IPAs!

  • Migrating Your Design System to Jetpack Compose with Adam Bennett

    Get ready for a deep dive into Jetpack Compose! Tonight we welcome GDE Adam Bennett, who will share his experience migrating Cuvva's Design System to Compose. Join us for an exciting evening full of themes, styles, colors, shapes, typography, and more!

    Livestream: https://youtu.be/QmgETvXSpi4

    ------------

    Schedule

    19:00 Introduction

    19:10 Talk

    19:50 Q&A

    ------------

    Jetpack Compose represents a paradigm shift in how Android developers approach building their UI, but how do you get started, and how do you transition a complex app - and your team - to this new model? In this talk, Adam discusses how Cuvva has approached this migration, the tools that are available, and offers practical advice on the steps to take in your team.

    ------------

    Adam Bennett (https://adambennett.dev) is a GDE for Android and the Lead Android Engineer at Cuvva, where he is working on creating a scalable architecture and culture as the team grows. A self taught developer of 6 years, he previously worked at Blockchain on their cryptocurrency wallet, and currently tries his best not to spend all of his money on rollerblades and mechanical keyboards.

  • Jetpack Compose #AndroidDevChallenge Week 2

    Online event

    Have you thought about writing your first Compose code, but didn't know where to start? Or did you like last week's coding jam? Join us tonight to build a Countdown Timer app! We'll meet in an online space, and can help each other out when we get stuck. Getting started was never this easy! Also joining the call to answer any questions is Jolanda Verhoef, Developer Advocate at Google, who has been working on Compose for a longer period.

    To prepare, please download the latest Android Studio Canary build: https://developer.android.com/studio/preview

    Read more about the #AndroidDevChallenge:
    https://developer.android.com/dev-challenge

  • Jetpack Compose #AndroidDevChallenge

    Online event

    As you might have noticed, Jetpack Compose beta has launched! Have you thought about writing your first Compose code, but didn't know where to start? Join us tonight to build a Puppy Adoption app! We'll meet in an online space, and can help each other out when we get stuck. Getting started was never this easy! Also joining the call is Jolanda Verhoef, Developer Advocate at Google, who has been working on Compose for a longer period.

    To prepare, please download the latest Android Studio Canary build: https://developer.android.com/studio/preview

    Read more about the #AndroidDevChallenge:
    https://developer.android.com/dev-challenge

    3
  • Virtual Get Together - Limited seats

    Needs a location

    After a short break and many events purely focused on talks we would like to try something different. It's time for a virtual Get Together!

    We asked you for some feedback and it was quite obvious that a lot of you miss the social part of our Meetups. While this is not possible due to current events we would like to try something new. Q42 opens borrel.app for us so that we can meet each other in a fun environment. Right now the seats to join a room in borrel.app are limited, if you're on the list, make sure that you're coming so that we can make as much use of the limited space as possible.

    How does it work?
    - If you're RSVP'd we'll send out an email right before the meeting with instructions where to join. So keep an eye on your mailbox that you registered on Meet-up with.
    - If you can't make it, please remove yourself from the list to give your spot to someone else

    Bear in mind that this is an experiment. We would love to enable more social events in the future. Let us know if you have any suggestions or reach out if you have any questions.

    You can also join our slack for announcements and questions: http://www.dutchaug.org/slack

    See you soon!

  • ☀️ Dutch Android Summer Season ☀️Modern Android Development & WorkManager

    Get ready for a summer full of Android! Enjoy talks by Googlers & Community experts about a variety of topics!

    We'll kick this third session off with Ben Weiss from Google, who will join us to talk about Modern Android Development. After Ben's talk it's time for Hugo to take the stage who will give us some insights into building the Corona Melder app, and brief us on issues with the WorkManager.

    ---------

    Schedule

    19:00 Welcome & Introduction

    19:10 Modern Android Development

    19:45 Small break

    20:00 Getting work done

    ---------

    Modern Android Development - Ben Weiss

    This presentation will give some historical context for where Android, and Android development practices, came from, and where it is at now, with an overview of the major tenets of Modern Android development in terms of language, tools, APIs, and distribution.

    Ben works on Android Developer Relations at Google. His focus is on making applications compatible for the new app model. Much of his time is spent navigating app modularization and dynamic features. Next to that he coordinates the Android GDE program.

    ---------

    Getting work done - Hugo Visser

    In this talk we’ll dive into the topic of scheduling background work. We’ll talk about the main ingredients: AlarmManager, JobScheduler and WorkManager, how battery optimisations are good for users but no fun for developers, and we’ll discuss what tools are available to debug and troubleshoot scheduled work.

    2
  • ☀️ Dutch Android Summer Season ☀️ Hilt & Accessibility

    Get ready for a summer full of Android! Enjoy talks by Googlers & Community experts about a variety of topics!

    In this second session we'll have Manuel Vivo from Google join us to talk about the new Hilt library. Then, once we know all about Hilt, it's time to make sure we treat all of our users right, and to do so Wiebe Elsinga will teach us how to make apps accessible for everyone!

    ---------

    Schedule

    19:00 Welcome & Introduction

    19:10 Hilt: Dependency Injection for the mere mortals

    20:00 Small break

    20:10 A11y support

    ---------

    Hilt: Dependency Injection for the mere mortals - Manuel Vivo

    Dependency injection (DI) is a technique widely used in programming and well suited to Android development, where dependencies are provided to a class instead of creating them itself. The new Hilt library defines a standard way to do DI in your application by providing containers for every Android class in your project and managing their lifecycles automatically for you. Join the talk to learn more about how to use Hilt in your Android apps!

    Manuel is an Android Developer Relations Engineer at Google. With previous experience at Capital One, he currently focuses on App Architecture, Kotlin & Coroutines, Dependency Injection and Jetpack Compose.

    ---------

    A11y support - Wiebe Elsinga

    When creating a great Android app did you make sure all of your users can use it? Wiebe Elsinga will show you how users of different accessibility services interact with your app, and how you can make your app a11y friendly.

    Besides being a GDE (Google Developer Expert) for Android and GDE Product Strategy, Wiebe Elsinga is a Lead Developer at Egeniq in The Netherlands. He has a passion for UX and design. He regularly speaks at Mobile Developer conferences, or is giving workshops.

    Agenda

    7:00 PM: Introduction

    Start of our second Android Summer Sessions virtual meetup!

    7:10 PM: Hilt: Dependency Injection for the mere mortals

    Dependency injection (DI) is a technique widely used in programming and well suited to Android development, where dependencies are provided to a class instead of creating them itself. The new Hilt library defines a standard way to do DI in your application by providing containers for every Android class in your project and managing their lifecycles automatically for you. Join the talk to learn more about how to use Hilt in your Android apps!

    8:00 PM: Break

    Short break

    8:10 PM: A11y support

    When creating a great Android app did you make sure all of your users can use it? Wiebe Elsinga will show you how users of different accessibility services interact with your app, and how you can make your app a11y friendly.

    ---

    Speakers

    Manuel Vivo - Google (Android Developer Relations Engineer)

    Wiebe Elsinga - Egeniq (Lead Developer)

  • ☀️ Dutch Android Summer Season ☀️ Paging 3 & Android KTX

    Get ready for a summer full of Android! Enjoy talks by Googlers & Community experts about a variety of topics!

    In this first virtual meetup we'll have Florina Muntenescu from Google join us to talk about the new Paging 3 library. Jeroen Mols will give us all the tips & tricks for getting the most out of Android KTX. Afterwards, you can ask them questions during an informal Q&A session.

    Agenda:
    19:00 Welcome & Introduction
    19:10 Getting on the same page with Paging 3 - Florina Muntenescu
    19:30 Small break
    19:40 Getting the most out of Android KTX
    20:15 Informal Q&A session

    ---------

    Getting on the same page with Paging 3 - Florina Muntenescu

    The Paging library enables you to load large sets of data gradually and gracefully, reducing network usage and system resources. You told us that the Paging 2.0 API was not enough - that you wanted easier error handling, more flexibility to implement list transformations like map or filter, and support for list separators, headers, and footers. So we launched Paging 3.0 (now in alpha), a complete rewrite of the library using Kotlin coroutines (but still supporting Java users) and offering the features you asked for.

    In this talk we'll go over the main Paging 3 components, see how they fit in an existing app architecture, how to implement them and integrate the most common data paging features.

    Florina is working as an Android Developer Advocate at Google, helping developers build beautiful, clean and testable apps. She has been working with Android for 8 years, previous work covering news at upday, payment solutions at payleven and navigation services at Garmin.

    ---------

    Getting the most out of Android KTX - Jeroen Mols

    Ever wish you could just use a lambda as an onClickListener? Or change the View visibility by modifying a simple "isVisible" boolean? Or how about using a doOnLayout{} method to run a block of code after view layout?

    These are just a few examples of how Android KTX extensions help solve common problems. They improve the existing Jetpack and Android platform APIs so you can consume them from Kotlin in a concise and idiomatic way.

    This talk will discuss what KTX extensions are and explore the most useful extensions that you can use in your daily workflow.

    Jeroen Mols is a Google Developer Expert (GDE) in Android, the former lead Android developer at Philips Hue and an internationally recognized speaker. With a passion for complex systems and highly technical apps, Jeroen has helped realize four connected products and over 15 Android applications.

    Experienced in leading large teams, he can step beyond his developer role and provide technical leadership to others. He continuously challenges the status quo and mentors people surrounding him to grow. Shipping apps to millions of users, Jeroen has a thorough understanding of both the Android framework and how maintainable software should be crafted.

  • [VIRTUAL] Mocking mocking libraries and writing stable UI tests

    This virtual meetup will be all about testing! lately there's been discussions around when and if you should use mocking libraries. Niek Haarman will dive into this topic with us, he will be looking at techniques and a particular architecture style that will ramp up your tests and allows you to get rid of your mocks forever. But that's not all! Alex Zhukovic will cover another interesting topic, how to write stable UI tests, share them between local and instrumentation tests and more.

    Youtube: https://www.youtube.com/watch?v=r-I23nmQMPk

    Agenda:
    18:30 Live stream starts
    19:00 Introduction talk by DutchAUG
    19:05 Alex Zhukovic: Integrating fast and stable automated tests into your project.
    19:45 Break
    19:50 Niek Haarman: Mocking mocking libraries

    After each talk there's room for Q&A

    Talk 1: Integrating fast and stable automated tests into your project

    Mobile apps are growing. They become more complex and require more testing. It means that it is time to integrate fast and stable automated tests to your project.
    In this talk Alex Zhukovic, will cover the following topics:
    - How to create fast and stable UI tests
    - How to avoid flaky tests
    - How to share UI tests between local and instrumentation tests
    - How DSL can speed up adding stable UI tests to the project

    Talk 2: Mocking mocking libraries

    Mocking libraries are super popular with developers. They're useful to define expectations, stub method calls, guarantee a particular order of returns, and probably a lot more.

    Unfortunately it turns out that tests written with such libraries are actually pretty hard to write, let alone maintain.

    In this talk Niek Haarman will be looking with us at techniques and a particular architecture style that will ramp up your tests and allows you to get rid of your mocks forever.