droidcon NYC 2019

Paths

droidcon NYC 2019

Author: droidcon NYC

Droidcon New York is where the industry's leading Android experts converge to support the Android platform and create a strong network for developers and companies.

What You Will Learn

  • Android
  • Kotlin
  • Flutter
  • Koin
  • Jetpack
  • MotionLayout

Pre-requisites

None.

Beginner

These talks are beginner-friendly.

droidcon NYC '19: Building Apps Using Kotlin Native

by droidcon NYC

Sep 17, 2019 / 52m

52m

Start Course
Description

In this session, Jeremy Rempel provides a pragmatic introduction to building iOS and Android apps utilizing Kotlin Native and related technologies.

Table of contents
  1. Building Apps Using Kotlin Native

droidcon NYC '19: Setting Up a Bug Bounty Program for Your App

by droidcon NYC

Sep 17, 2019 / 46m

46m

Start Course
Description

In this presentation, Sebastian Porst gives an overview of how to plan and execute on a bug bounty program for your Android app. The information in this talk is based on Sebastian's work on Google Play’s Security Rewards Program, a collaboration with HackerOne, in which they reward security researchers for security vulnerabilities found in top applications on Google Play.

Table of contents
  1. Setting Up a Bug Bounty Program for Your App

droidcon NYC '19: Inhibiting the Imposter

by droidcon NYC

Sep 17, 2019 / 27m

27m

Start Course
Description

Have you ever had an experience where a small voice in your head prevented you from acting on an idea, stopped you from sharing your knowledge or trying something new, or maybe even made you feel like your achievements were nothing special? That voice is more common than you think! In this talk, Ana Baotić outlines the basic steps that will help you materialize, deconstruct, and take control of that voice, helping you distinguish the useful bits of information that can help you grow from the overwhelming debris and clutter. You will learn how to notice the early signs of its onset and manage the situation to your benefit. Finally, you will learn to use simple tools that will help you recognize and acknowledge your achievements and help yourself and others fight the invisible menace.

Table of contents
  1. Inhibiting the Imposter

droidcon NYC '19: Why Does Google Think My App Is Harmful?

by droidcon NYC

Sep 19, 2019 / 26m

26m

Start Course
Description

In this talk, Alec Guertin covers how Google defines harmful behavior in Android applications and how developers can avoid common pitfalls that result in their apps being flagged as mobile unwanted software (MUwS) or potentially harmful apps (PHAs) by Google Play Protect.

Table of contents
  1. Why Does Google Think My App Is Harmful?

droidcon NYC '19: git rm -r --cached .idea?

by droidcon NYC

Sep 17, 2019 / 14m

14m

Start Course
Description

What is the .idea directory? Why do the files in there keep changing? How can you stop them from appearing in every git commit? Many developers add the whole .idea directory to their .gitignore and forget about it. but this hidden directory has lots of potential to keep your team working efficiently and consistently. In this talk, Harry Grillo looks at some of the information stored here, how you can take control of your project’s standards and settings, and how you can use them to keep your team on the same page.

Table of contents
  1. git rm -r --cached .idea?

droidcon NYC '19: Productivity Hacks for Busy Engineers

by droidcon NYC

Sep 17, 2019 / 21m

21m

Start Course
Description

In this interactive session, Chuck Greb discusses productivity tips and tricks.

Table of contents
  1. Productivity Hacks for Busy Engineers

droidcon NYC '19: A Brief History of Real Time Audio (Or Wasn't That API Deprecated?)

by droidcon NYC

Sep 19, 2019 / 17m

17m

Start Course
Description

Real Time Audio has been the desire of those building games or audio tools with mixed success throughout the history of Android. In this talk, Morrison Chang will cover the ups, downs, and various API changes for those interested in high performance audio. Morrison starts with JetPlayer, progresses through assistive projects, like Oboe, to the newest stuff in Android Q.

Table of contents
  1. A Brief History of Real Time Audio (Or Wasn't That API Deprecated?)

droidcon NYC '19: Easy Android Accessibility

by droidcon NYC

Sep 17, 2019 / 39m

39m

Start Course
Description

Thinking about accessibility early typically leads to a better experience. In this session, you'll learn how users of different accessibility services interact with your app, and find out about common accessibility issues and their solutions. Lyla Fujiwara and Shailen Tuli will explore how to test for accessibility, how to use Accessibility Scanner to identify common accessibility issues (and learn how to solve those issues), and how to integrate the Accessibility Test Framework into your Espresso and Robolectric tests.

Table of contents
  1. Easy Android Accessibility

droidcon NYC '19: Securely Take Payments in a React Native App

by droidcon NYC

Sep 17, 2019 / 29m

29m

Start Course
Description

In this session, Richard Moot analyzes an Order Ahead application built using React Native and the Square In-App Payments SDK. The app uses Square APIs to pull in catalog items, display them in the app, and the In-App Payments SDK to securely capture card details. You will also learn when to consider using a third-party payment provider over in-app billing.

Table of contents
  1. Securely Take Payments in a React Native App

droidcon NYC '19: Accessibility on Android: Some Assembly Required

by droidcon NYC

Sep 19, 2019 / 28m

28m

Start Course
Description

In this talk, Khevna Khona discusses building inclusive and progressive application with Android's accessibility features.

Table of contents
  1. Accessibility on Android: Some Assembly Required

droidcon NYC '19: Getting Big Payouts with Koin

by droidcon NYC

Sep 19, 2019 / 35m

35m

Start Course
Description

Due to its clean design, Koin is quickly gaining popularity as a service locator framework. Highlights include its excellent documentation, accessible API, and the pure Kotlin source code. In this talk, Rick Busarow describes basic usage like factories, singles, and modules, discusses scoping and lazy-loading modules, and looks at its integration with Android screens and ViewModels. You'll learn how to use Koin to quickly and easily generate mocked dependencies for clean and hermetic tests.

Table of contents
  1. Getting Big Payouts with Koin

droidcon NYC '19: Calm is Key: A Guide to a Happier, More Productive Workplace

by droidcon NYC

Sep 19, 2019 / 40m

40m

Start Course
Description

In this session, Dan Kim talks about a variety of ways you can encourage greater calm at work. How do you maintain focus and prevent interruptions? What are some strategies to manage your time and responsibilities? What can you do both at work and home to keep you mentally sharp? How do you maintain real balance and boundaries between work and home? By the end of the talk, you'll have some new ideas and inspiration to work toward a calmer, more productive work environment for you and your team.

Table of contents
  1. Calm is Key: A Guide to a Happier, More Productive Workplace

droidcon NYC '19: Good APIs Don't Need a Tutorial

by droidcon NYC

Sep 19, 2019 / 42m

42m

Start Course
Description

Working in an enormous codebase is hard. You're new and you don't know where to start. There are a ton of tools available to you and you don't know which to pick. In this talk, Alec Strong draws corollaries between API design and video game design.

Table of contents
  1. Good APIs Don't Need a Tutorial

droidcon NYC '19: Building a Security Assurance Program

by droidcon NYC

Sep 17, 2019 / 38m

38m

Start Course
Description

In this session, Christopher Cole teaches you how to get started on building a security assurance program.

Table of contents
  1. Building a Security Assurance Program

droidcon NYC '19: A Talk About Talking: Making a Memorable Presentation

by droidcon NYC

Sep 20, 2019 / 30m

30m

Start Course
Description

What makes a presentation memorable, engaging, and entertaining? What separates great presenters from average ones? There are a number of potholes that presenters will hit on their journey before it has even started. This is true of veteran presenters and beginners alike. In this talk, Stacy Devino shares her experience to help others become better presenters and speakers in everyday life.

Table of contents
  1. A Talk About Talking: Making a Memorable Presentation

droidcon NYC '19: Implementing the Paging Library

by droidcon NYC

Sep 19, 2019 / 36m

36m

Start Course
Description

The Android Paging Library makes it easy to integrate complex paging behaviour, gradually loading small chunks of data at a time to help reduce usage of network bandwidth and system resources. The library allows you to implement this behaviour using compositional components in a decoupled architecture making your code more reliable, scalable, and testable. Furthermore, you’ll be able to use familiar components such as LiveData or RxJava to interface with your existing architecture. In this talk, you will learn how to integrate the PagedList component into your architecture, how to implement a DataSource to load snapshots when necessary, how to use BoundaryCallback to signal the end of available data, and how to integrate LiveData or RxJava to fit your project.

Table of contents
  1. Implementing the Paging Library

droidcon NYC '19: Flutter at Scale

by droidcon NYC

Sep 19, 2019 / 37m

37m

Start Course
Description

Flutter has been out of beta for less than a year. It is an amazing framework UI that allows you to run your code pretty much anywhere. Is it ready to be adopted at scale? The BMW team faced that question, and the answer was yes. In this talk, Jorge Coca shows you the team's process to make Flutter their preferred tool for developing applications and how they enabled multiple teams around the world to deliver incredible experiences fast and safely.

Table of contents
  1. Flutter at Scale

droidcon NYC '19: Where the Heck Am I? Understanding Location in Your Application

by droidcon NYC

Sep 19, 2019 / 37m

37m

Start Course
Description

Using GPS to find out exactly where you are is one of the more awesome powers of mobile devices. It also poses some of the toughest challenges to developers, who must prevent excessive battery drain and deal with insufficient accuracy. In this talk. Richard Süselbeck helps you face such challenges by answering questions like: How does GPS even work? Where did my battery go? Why does my phone think I'm in the middle of a lake? If you've ever wanted to understand how satellite navigation actually works, this is the talk for you.

Table of contents
  1. Where the Heck Am I? Understanding Location in Your Application

droidcon NYC '19: Getting to Know CameraX

by droidcon NYC

Sep 20, 2019 / 29m

29m

Start Course
Description

Developing camera-based applications on Android is often frustrating due to the fragmentation of Android devices supported around the world. To combat that, Meghan Mehta and Oscar Wahltinez introduce CameraX, which solves common issues like flash not firing, crashing on front/back camera switch, and more. Meghan and Oscar will also discuss the ongoing development of the CameraX API, its capabilities, app architecture, and they will conduct a demo of the API in action.

Table of contents
  1. Getting to Know CameraX

droidcon NYC '19: Effective Multiplatform Architecture

by droidcon NYC

Sep 19, 2019 / 32m

32m

Start Course
Description

Building multiplatform apps requires thinking about architecture a little differently than their single platform counterparts. Individually, each platform has their own norms and customs, but they aren't alway a good fit to be shared with others. Often, they have coupled relationships with the platforms for which they were designed that don't play nicely with others. Over the past several months, Ryan Harter has been migrating the Chicago Roboto app from a Kotlin first Android app to a multiplatform app, and he has learned a lot about things that work well for one platform but not the other, and how to make those feel a bit more native. You'll learn about where to start the multiplatform conversion, adapting native libraries, communicating between shared Kotlin code and native platforms, and designing systems that non-Kotlin developers can get behind.

Table of contents
  1. Effective Multiplatform Architecture

droidcon NYC '19: Lessons Learned From Using Kotlin Multiplatform Internally

by droidcon NYC

Sep 19, 2019 / 35m

35m

Start Course
Description

In this session, JB Lorenzo presents learnings, patterns, and considerations from his experience with Kotlin Multiplatform, starting with data models and the fetching data.

Table of contents
  1. Lessons Learned From Using Kotlin Multiplatform Internally

droidcon NYC '19: CameraX Workshop

by droidcon NYC

Sep 20, 2019 / 1h 21m

1h 21m

Start Course
Description

In this workshop, Caren Chang uses the new Jetpack support library CameraX to build a camera app from scratch. The camera app will have basic functionalities such as displaying the camera preview, taking pictures, and analyzing the image frame stream from the camera.

Table of contents
  1. CameraX Workshop

droidcon NYC '19: Working Across Platforms

by droidcon NYC

Sep 19, 2019 / 39m

39m

Start Course
Description

In this talk, Christina Lee analyzes the most common code sharing tools, focusing on the areas they excel in and the places they fall short. The purpose of this session is to give learners the knowledge they need to decide whether a cross platform solution is right for them.

Table of contents
  1. Working Across Platforms

droidcon NYC '19: Make Better Decisions: Experiment

by droidcon NYC

Sep 19, 2019 / 20m

20m

Start Course
Description

If you’re making user-visible changes in your app, this talk is for you! Experimentation, or A/B testing, can give you the data you need to make better decisions for your app’s future. In this lightning talk, Kate Kelly will introduce you to the what, why, and how of experimentation, focusing on app-specific implementation details and statistical gotchas.

Table of contents
  1. Make Better Decisions: Experiment

droidcon NYC '19: Tall Legacy App with 10 Pumps Kotlin

by droidcon NYC

Sep 19, 2019 / 16m

16m

Start Course
Description

In this talk, Nicole Borrelli looks at the best practices for writing Kotlin code that work seamlessly from Java. After the talk, you'll feel confident writing Kotlin code anywhere, knowing it will feel just as natural using that code with the Java programming language.

Table of contents
  1. Tall Legacy App with 10 Pumps Kotlin

droidcon NYC '19: Prioritizing Platform Development

by droidcon NYC

Sep 19, 2019 / 20m

20m

Start Course
Description

The New York Times (NYT) built a team that focuses on developer effectiveness and foundational support for their mobile teams with the mission of making NYT the best place to build apps. Why should you invest in a platform team? What kind of work should a platform team prioritize? In this talk, Alex Brashear answers these questions while exploring lessons learned and challenges overcome when building a platform app development team.

Table of contents
  1. Prioritizing Platform Development

droidcon NYC '19: How to Do Great Work

by droidcon NYC

Sep 19, 2019 / 17m

17m

Start Course
Description

When John Li moved cross-country to join Wayfair as the Android Tech Lead of the Design Services team, he found himself halfway between the responsibilities of a manager and an Android developer with a new product to understand and a small team of junior developers to mentor. In this talk, John Li shares the soft skills and programming patterns that he considers both important and rewarding. These are the same skills and patterns that drive the Design Services team at Wayfair.

Table of contents
  1. How to Do Great Work

droidcon NYC '19: Modularizing Your Android UI with Style Guide-driven Development

by droidcon NYC

Sep 20, 2019 / 24m

24m

Start Course
Description

Until now, style guide-driven development (SGDD) has only been discussed in the scope of web development. In this session, Rea Bhasin explains what SGDD is, how it can benefit your engineering and design teams, and how GrubHub uses it to simplify native mobile development and modularize apps.

Table of contents
  1. Modularizing Your Android UI with Style Guide-driven Development

droidcon NYC '19: Android & Assistant: A Match Made in Heaven

by droidcon NYC

Sep 19, 2019 / 27m

27m

Start Course
Description

In this talk, Eliza Camber explores the brand new app actions and slices for Google Assistant, how you can make your own action, and some app architecture basics.

Table of contents
  1. Android & Assistant: A Match Made in Heaven

droidcon NYC '19: Shielding Your Android App from Attackers

by droidcon NYC

Sep 20, 2019 / 33m

33m

Start Course
Description

Android apps run in an untrusted environment and are, therefore, susceptible to reverse engineering, probing, and tampering. These attacks can result in your intellectual property being stolen or in compromised versions of your app being distributed, compromising user data and causing reputational damage. In this talk, Peter Tefft examines ways in which an attacker might approach your application and countermeasures that you can take to make their job much more difficult. In particular, Peter will discuss renaming elements of your code, employing control flow obfuscation, using string encryption in order to make your code more difficult for an attacker to navigate, and using checks to verify the safety of the environment in which your app is running and how to react accordingly if it is running in an unsafe environment.

Table of contents
  1. Shielding Your Android App from Attackers

droidcon NYC '19: //TODO: Write a Better Comment

by droidcon NYC

Sep 19, 2019 / 24m

24m

Start Course
Description

Comments have the potential to make or break a codebase. Helpful comments can save you from a lot of reading and debugging. Poor comments can send you on wild goose chases toward something that turns out to be a different problem after all. In this talk, Adam McNeilly will teach you how to differentiate between unhelpful and helpful comments. Adam will also discuss when you can remove a comment entirely and when you can optimize the helpfulness of the ones you keep. By the end, you'll have an understanding of how code and comments coexist, and how to leverage comments for long term benefits in your projects.

Table of contents
  1. //TODO: Write a Better Comment

droidcon NYC '19: Jetpacks for You and I

by droidcon NYC

Sep 20, 2019 / 36m

36m

Start Course
Description

In 2017, Google introduced Jetpack, a collection of Android components that makes it easier for you to develop great apps, follow best practices, and avoid performing complex tasks or writing boilerplate code. There are over 30 different components in the collection and getting started can be daunting. In this talk, Marcos Placona will look at what you need to get started with Jetpack components that offer backward compatibility and are updated more frequently than the Android platform.

Table of contents
  1. Jetpacks for You and I

droidcon NYC '19: Keeping Your Pixels Perfect

by droidcon NYC

Sep 20, 2019 / 29m

29m

Start Course
Description

Unit tests allow you to refactor your code with confidence and, if architected correctly, run blazingly fast! But how do you ensure that your UI looks as expected? Espresso tests are hard to set up, prone to flakiness, and require APKs, emulators, dexing, and ADB. Snapshot tests get you closer, but they also rely on instrumentation tests. In this session, John Rodriguez discusses how they are improving the UI testing loop on Cash App.

Table of contents
  1. Keeping Your Pixels Perfect

Intermediate

Are you already familiar with a tool or technology in the Android realm? These droidcon sessions will add to your foundation and understanding.

droidcon NYC '19: Keynote: Being more than an Android Developer

by droidcon NYC

Sep 17, 2019 / 26m

26m

Start Course
Description

Changes in the Android world happen rapidly. There isn't one right way to do something, documentation doesn’t always keep up, and sometimes you may feel that you can't keep up. So, how do you, as a developer, keep up with an ever-changing field, make sure your workplace and community catch up, make sure you are using the right tools to make beautiful apps a reality, and work with people from design, product and/or marketing who may not have worked on the Android ecosystem before? In this session, Yash Prabhu talks about how you can be an Android developer who brings teams and communities together.

Table of contents
  1. Keynote: Being more than an Android Developer

droidcon NYC '19: Performance in a Kotlin World

by droidcon NYC

Sep 17, 2019 / 34m

34m

Start Course
Description

Users expect apps to be snappy, responsive, and jank-free. Developers want to use new language features and libraries. How do you make sure these new features deliver the performance users expect? In this talk, Sean McQuillan and Daniel Galpin will teach you how to make your app shine with practical performance patterns. After this session, you'll know how to use Android Studio profilers and the new Jetpack Benchmarking library to find jank, fix it, and prevent it from coming back.

Table of contents
  1. Performance in a Kotlin World

droidcon NYC '19: Invading the Home Screen

by droidcon NYC

Sep 20, 2019 / 33m

33m

Start Course
Description

Join Matteo Bonifazi for a deep dive on how to differentiate the home screen in order to increase user engagement, decrease the chance that an app will be uninstalled, and increase the likelihood of it being used.

Table of contents
  1. Invading the Home Screen

droidcon NYC '19: Data Encryption on Android

by droidcon NYC

Sep 17, 2019 / 22m

22m

Start Course
Description

In this talk, Jon Markoff describes strategies for data encryption on Android and dives into the Jetpack Security library. You'll learn how to properly leverage the AndroidKeyStore and encrypt data properly.

Table of contents
  1. Data Encryption on Android

droidcon NYC '19: Android Jetpack Hearts Kotlin: On the Road to More Wholesome APIs

by droidcon NYC

Sep 20, 2019 / 37m

37m

Start Course
Description

Two years ago, Android announced first-class support for the Kotlin programming language. Both the language and the platform evolved a lot during this time with more focus from the engineering teams at Google on helping developers use the full power of Kotlin. There has been tremendous adoption of the language among top Android app developers. Going forward, Android will become Kotlin-first. In this talk, Wojtek Kaliciński discusses the current state of Kotlin on Android and gives you a small glimpse into the future of modern app development with Android Jetpack.

Table of contents
  1. Android Jetpack Hearts Kotlin: On the Road to More Wholesome APIs

droidcon NYC '19: Moving to MotionLayout

by droidcon NYC

Sep 20, 2019 / 43m

43m

Start Course
Description

MotionLayout is the latest in the new layout paradigms introduced by ConstraintLayout, providing declarative animations and seekable transitions. Many of the existing techniques and components for animation and transition that developers currently use in Android can be accomplished more cleanly and easily in MotionLayout. In this session, Huyen Tue Dao presents familiar examples of UI motion in Android applications and demonstrates how you can achieve the same UI in MotionLayout.

Table of contents
  1. Moving to MotionLayout

droidcon NYC '19: Adapting Your Apps for Android Privacy Requirements

by droidcon NYC

Sep 17, 2019 / 29m

29m

Start Course
Description

To improve user privacy, Android Q adds additional privacy features. In this talk, Nicole Borrelli will cover recommended best practices for permissions, device identifiers, app launching, notifications, and foreground services.

Table of contents
  1. Adapting Your Apps for Android Privacy Requirements

droidcon NYC '19: Apps at Scale: An Industry Discussion

by droidcon NYC

Sep 17, 2019 / 1h 28m

1h 28m

Start Course
Description

What makes app development with 50 engineers different than app development with 5 engineers? What do you need to support 100s or 1,000s of modules? In this panel, Ty Smith, Gabriel Peal, Pierre-Yves Ricau, César Puerta, and Lisa Wray discuss their various approaches to tooling, process, and organization.

Table of contents
  1. Apps at Scale: An Industry Discussion

droidcon NYC '19: Making a Mountain Out of a Module

by droidcon NYC

Sep 19, 2019 / 24m

24m

Start Course
Description

As single module applications grow, you might start to feel the pain of a monolithic architecture. Not only can this affect the maintainability of your codebase but it can also affect the morale of your team. In this talk, Joe Birch and Ataul Munim discuss how clearly defined modules and clean code principles can help avoid painting yourself into a corner. You will learn how to create a fully-modularized Android application that follows the principles defined in Clean Architecture and you will walk away with the ability to identify the trade-offs between frameworks like Koin and Dagger.

Table of contents
  1. Making a Mountain Out of a Module

droidcon NYC '19: Reverse-engineering Apps on the Device - How Far Can We Go?

by droidcon NYC

Sep 17, 2019 / 21m

21m

Start Course
Description

In this talk, Jeb Ware walks through the APIs that expose your resources, shows how to put them into action, and demonstrates how to inspect and even execute another app's code. You will gain a better understanding of what is and is not protected by the Android Application Sandbox, and which parts of your app are freely available for reverse-engineering.

Table of contents
  1. Reverse-engineering Apps on the Device - How Far Can We Go?

droidcon NYC '19: Redux for Android

by droidcon NYC

Sep 17, 2019 / 38m

38m

Start Course
Description

In this session, Elliott Chenger talks about Redux and how Redux can help simplify your architecture and your life. Are you worried that you won't be able to use any of the nice lifecycle-aware libraries Google created? Redux still works with Android Architecture components, and Elliott will explain how you can utilize Live Data and View Models in addition to other popular libraries and technologies.

Table of contents
  1. Redux for Android

droidcon NYC '19: Using Kotlin/JS and Kotlin/Native on Android

by droidcon NYC

Sep 19, 2019 / 36m

36m

Start Course
Description

In this talk, Jake Wharton explores using Kotlin/JS and Kotlin/Native in an Android app. First, he'll look at the motivations for why you might want to compile Kotlin to JS or native on Android. Then, he'll cover the tools and libraries which will be necessary for integration into an app. Finally, you'll learn the positive and negative architectural implications of using multiple Kotlin backends in your app.

Table of contents
  1. Using Kotlin/JS and Kotlin/Native on Android

droidcon NYC '19: Koin vs. Dagger (Service Locator vs. D.I.)

by droidcon NYC

Sep 19, 2019 / 17m

17m

Start Course
Description

With Koin 2.0, it’s time for you to evaluate this age-old debate: What exactly is meant by service locator vs. dependency injection? Does it matter in a modern age? Brian Plummer discusses this question along with how both libraries are implemented with an emphasis on their differences and how that affects you. By the end of this talk, you will have an understanding of their implementations and the knowledge to assess which one is right for you.

Table of contents
  1. Koin vs. Dagger (Service Locator vs. D.I.)

droidcon NYC '19: Connect Platforms with a Kotlin DSL

by droidcon NYC

Sep 20, 2019 / 36m

36m

Start Course
Description

Not everyone can jump right into a Kotlin Multiplatform world. Many developers have legacy codebases and need to support their businesses first. Yet, those developers can already use Kotlin to connect their platforms and realize significant value. In this talk, Patrick Cousins will teach you to build a DSL that defines a contract between an API and its clients. He will also make your DSL into a common vocabulary that translates platform idiosyncrasies. Then, by connecting it to CI, he'll enforce the contract to keep platforms on speaking terms. The examples in this talk will be from Sprout, an internal library in development at Etsy. The Sprout Kotlin DSL is the seed that generates code for many platforms: Retrofit endpoints, Moshi models, Swift, PHP, and more.

Table of contents
  1. Connect Platforms with a Kotlin DSL

droidcon NYC '19: A Day in the Life of a Mobile Reverse Engineer

by droidcon NYC

Sep 19, 2019 / 30m

30m

Start Course
Description

In this talk, Alec Guertin will show you how to handle mobile applications in Android Security from a malware analyst's point of view.

Table of contents
  1. A Day in the Life of a Mobile Reverse Engineer

droidcon NYC '19: SwiftUI Meets Kotlin Multiplatform!

by droidcon NYC

Sep 20, 2019 / 16m

16m

Start Course
Description

In this talk, John O'Reilly outlines exploration done to see how SwiftUI, the new declarative UI framework announced at WWDC this year, could create an iOS app that consumes shared Kotlin Multiplatform code.

Table of contents
  1. SwiftUI Meets Kotlin Multiplatform!

droidcon NYC '19: Hands on MvRx: Building Real Apps

by droidcon NYC

Sep 19, 2019 / 42m

42m

Start Course
Description

In this session, Gabriel Peal calls attention to two apps that are designed to demonstrate practical and real-world use cases of MvRx.

Table of contents
  1. Hands on MvRx: Building Real Apps

droidcon NYC '19: From Four Wheels to Two

by droidcon NYC

Sep 19, 2019 / 30m

30m

Start Course
Description

Looking to learn product engineering principles for successfully launching meaningful products? Join RJ Marsan as he walks through the techniques Lyft employed to reach their deadline in the scooter sharing roll out, from architecture tips to ways to reuse your coworker's code.

Table of contents
  1. From Four Wheels to Two

droidcon NYC '19: Kids, Play Nice! Writing with Kotlin-Java Interop

by droidcon NYC

Sep 19, 2019 / 38m

38m

Start Course
Description

Although it may be many developers’ favorite, Kotlin is not everywhere yet. In the desire to deliver a library or an API that will provide the best experience for both Kotlin and Java developers, there are a few things to be aware of. In this talk, Britt Barak presents some of the team's experiences at Nexmo in the Kotlin-Java interop realm. The session will highlight challenges and considerations, some gotchas, and tips that will make your life easier when striving for a great developer experience.

Table of contents
  1. Kids, Play Nice! Writing with Kotlin-Java Interop

droidcon NYC '19: If Your Code Looks Like It's Kotlin and Quacks Like It's Kotlin, Then It Probably Is Swift

by droidcon NYC

Sep 20, 2019 / 41m

41m

Start Course
Description

The popularity and adoption of Kotlin has been rising after Android welcomed it as a first-class citizen on the platform. Swift has been following its own path to success in the last couple of years. Both share many similarities and, as both platforms have been converging, barriers to becoming fluent on native mobile apps for Android and iOS are lower than ever. Join Adrian Catalan and Cecilia Castillo to see an Android developer doing Swift, an iOS developer writing Kotlin, and enjoy this thrill ride with two tour guides that will drive you out of your comfort zone while sharing their struggles and success to inspire you to learn the languages. You'll gain a better understanding of how to start using the other language once you've taken your first steps on one.

Table of contents
  1. If Your Code Looks Like It's Kotlin and Quacks Like It's Kotlin, Then It Probably Is Swift

droidcon NYC '19: Diving Into Advanced Kotlin Features

by droidcon NYC

Sep 19, 2019 / 39m

39m

Start Course
Description

In this talk, Simon Wirtz dives into some advanced features of Kotlin. You'll learn about concepts like reified generic types, lambdas with a receiver, DSLs, built-in delegation, infix functions, operator overloading, destructuring, inline classes, and more. The talk will make you feel more comfortable about what Kotlin does internally and why functions in the standard library "just work." You will also learn to make use of advanced features to get even more productive with the language.

Table of contents
  1. Diving Into Advanced Kotlin Features

droidcon NYC '19: Litho: Best Practices for Building Efficient UIs

by droidcon NYC

Sep 19, 2019 / 42m

42m

Start Course
Description

Litho is a declarative Android UI framework which allows you to build more performant and efficient UIs than usual. With Litho, you can move your layout phase to the background thread, recycle list items and individual widgets, and conduct more granular UI updates. It's a very powerful tool with lots of features and possible settings. In this talk, Sergey Ryabov discusses best practices and tweaks that you can apply in difficult cases to get the maximum performance out of the framework.

Table of contents
  1. Litho: Best Practices for Building Efficient UIs

droidcon NYC '19: Netflix's Reactive Android Components - The Redux Revenge

by droidcon NYC

Sep 17, 2019 / 35m

35m

Start Course
Description

In this session, Juliano Moraes talks about how Netflix started building mobile apps to bring technology and innovation to Studio Physical Productions, the portion of the business responsible for producing TV shows and movies.

Table of contents
  1. Netflix's Reactive Android COmponents - The Redux Revenge

droidcon NYC '19: Select * FROM Kotlin

by droidcon NYC

Sep 17, 2019 / 39m

39m

Start Course
Description

What is the best library to work with SQLite databases using Kotlin? Room just released support for Kotlin Coroutines, and SQLDelight released support for Kotlin Multi-platform. Room has great documentation and hides a lot of implementation detail, while SQLDelight allows you to write raw SQL statements with an Android Studio plugin and generates type-safe code for you. In this session, Sam Edwards describes these two libraries and conducts live coding demos to help you decide which library is right for you in this Kotlin world.

Table of contents
  1. Select * FROM Kotlin

droidcon NYC '19: Square Workflow: Android and iOS Apps Composed of State Machines Defining UI and Navigation

by droidcon NYC

Sep 19, 2019 / 41m

41m

Start Course
Description

This year, Square released Square Workflow, a library for Kotlin and Swift that is now at the heart of feature development. In this talk, Ray Ryan and Zach Klippenstein provide an introduction to the library’s use and design choices, including how it was inspired by and differs from React and Elm, and how the Kotlin implementation leans on coroutines.

Table of contents
  1. Square Workflow: Android and iOS Apps Composed of State Machines Defining UI and Navigation

droidcon NYC '19: Building iOS and Android Mobile App in 30 Minutes

by droidcon NYC

Sep 19, 2019 / 40m

40m

Start Course
Description

If you are a mobile developer that likes to develop mobile apps as quickly as possible, then this session is for you. In this session, Hazem Saleh shows you how to develop and run a mobile app in 30 minutes without any deep knowledge of native mobile application development in iOS or Android. This will be achieved by using Flutter. This talk is practical and will show you the detailed steps for developing a basic Flutter app. After this session, you'll have enough information to develop your first mobile app.

Table of contents
  1. Building iOS and Android Mobile App in 30 Minutes

droidcon NYC '19: The Light Way

by droidcon NYC

Sep 19, 2019 / 28m

28m

Start Course
Description

What if an app could be performant by being simple? What if an app could work “at scale” for 1 billion users using only standard Android paradigms? At Facebook, we support some of the biggest, most complex apps in the world, but we also support developing countries, low-memory phones, and spotty networks. So, in Messenger Lite, we tried something different. We prioritized cold start and APK size by going back to basics. We limit our dependencies and our feature set, and we embrace what the Android framework provides to make a completely native app that’s featherweight and really, really fast. Lisa Wray will walk you through how these tools, like data binding, RecyclerViews, a database-driven UI, and simply writing less code, are available to every Android developer who wants to build their app the lite way.

Table of contents
  1. The Light Way

droidcon NYC '19: Adding Flutter to Your Android App

by droidcon NYC

Sep 20, 2019 / 30m

30m

Start Course
Description

Flutter is a UI toolkit for building beautiful and performant apps across multiple platforms. While many independent app developers have chosen to rewrite their apps with Flutter, for most companies and developers, an app rewrite is logistically impossible. Most apps need to integrate Flutter piece by piece. This talk shows you how to add Flutter to your existing Android app. In addition to outlining the high-level options for adding Flutter to your Android app, Matt Carroll pulls back the curtain on the technical details to show you exactly how Flutter integrates with Android. You will leave this talk empowered to make important technical decisions about where, when, and how your team integrates Flutter with your existing Android app.

Table of contents
  1. Adding Flutter to Your Android App

droidcon NYC '19: Multiplatform Library Development

by droidcon NYC

Sep 20, 2019 / 40m

40m

Start Course
Description

Multiplatform Kotlin facilitates code-sharing by making platform-agnostic portions of the standard library available in common code that is written once but can run on any target. As multiplatform development starts to take off over the next year, there must also be a robust ecosystem of third-party libraries available to application developers. In this session, Russell Wolf discusses his experience building one of the early libraries in the mobile multiplatform space with lessons on how to find shared abstractions around different platform APIs, how to handle the fast-paced evolution of this environment, and what this felt like as a first-time library developer. After this talk, you’ll be ready to leverage the growing ecosystem as well as make your own contributions.

Table of contents
  1. Multiplatform Library Development

droidcon NYC '19: Storing App Data Reliably and Performantly with SimpleStore

by droidcon NYC

Sep 20, 2019 / 34m

34m

Start Course
Description

Almost every app needs to store important pieces of data, such as a session token, on disk. In this session, Kurt Nelson discusses the pitfalls of SharedPreferences, what to do for data needed for app launch, when to use Room for relational data, and how storage impacts the user experience especially in emerging markets

Table of contents
  1. Storing App Data Reliably and Performantly with SimpleStore

droidcon NYC '19: Coroutine + Flow = MVI

by droidcon NYC

Sep 20, 2019 / 36m

36m

Start Course
Description

MVI (Model-View-Intent) is an evolution of the MVC, MVP, and MVVM patterns. Thanks to Immutable State management and Unidirectional Data Flow, you can finally say goodbye to race conditions and rogue mutations and combine the power of MVI with Kotlin Coroutines alongside the recently released Kotlin Flows library. In this session, Etienne Caron teaches you how to build a Model-View-Intent (MVI) Android App using both Kotlin Coroutines and Kotlin Flows. You'll walk away understanding the core principles of this pattern, as well as its key benefits.

Table of contents
  1. Coroutine + Flow = MVI

droidcon NYC '19: Workshop: Maximize Developer Productivity with Fast and Reliable Gradle and Maven Builds

by droidcon NYC

Sep 19, 2019 / 1h 39m

1h 39m

Start Course
Description

In this hands-on workshop led by Tony Robalik, you will learn how to improve developer productivity when working with Gradle and Maven builds by using Gradle Enterprise. By investing just a few hours into your Gradle or Maven build, you can create hours or days of productivity for your development team so they can innovate at their full potential. The lecture and lab exercises will teach you how to measure Gradle and Maven build speed and reliability, understand which metrics are important, apply these analyses to your own Gradle and Maven builds, debug Gradle and Maven build and test failures with build scans, and use build caching to make Gradle and Maven builds dramatically faster.

Table of contents
  1. Workshop: Maximize Developer Productivity with Fast and Reliable Gradle and Maven Builds

droidcon NYC '19: Flowing Things, Not So Strange in the MVI World

by droidcon NYC

Sep 20, 2019 / 33m

33m

Start Course
Description

In the MVI world, there was a missing piece from the coroutines framework and, due to this, it always felt strange to completely adopt coroutines. Recently, with the introduction of Co-routines Flow library, things are not so strange anymore. In this talk, Garima Jain looks at the Coroutines Flow library, its need, and how it compares with the reactive world. You will then learn to migrate an Rx MVI pattern to use coroutines Flow.

Table of contents
  1. Flowing Things, Not So Strange in the MVI World

droidcon NYC '19: Shark: Diving Into the Guts of LeakCanary's Hprof Parser

by droidcon NYC

Sep 20, 2019 / 43m

43m

Start Course
Description

LeakCanary, a memory leak detection library for Android, that was slow and used a lot of memory. For LeakCanary 2, Pierre-Yves Ricau wrote a new heap dump parser, Shark, which uses 10 times less memory and is 6 times faster. In this session, Pierre dives to the byte level, builds up to efficiently compute shortest paths and dominators (graph theory without any math), and uses profiling tools to optimize algorithms and data structures where it matters.

Table of contents
  1. Shark: Diving Into the Guts of LeakCanary's Hprof Parser

droidcon NYC '19: Edge & Offline-First App Data Management in 5G Devices

by droidcon NYC

Sep 20, 2019 / 34m

34m

Start Course
Description

Increasingly Smart Devices and 5G will have the unexpected side-effect of generating the need for more on-device analytics and data processing by local applications taking an offline-first approach. While offline-first is a straightforward concept, implementation of offline-first mobile apps can present many challenges. The essence of an effective and reliable offline system is a database-driven synchronization module that will ensure secure and persistent data storage on the user device as well as performant data ETL between the mobile device, peer to peer, and to the cloud. In this session, Desmond Tan shows how Android developers can optimize data management in edge and offline-first use cases in 5G devices with zero-dba, nano-footprint, AES encrypted and multi-architecture DMBS. You'll also learn about real-world implementations, such as how companies have implemented sophisticated data-driven mobile apps and leveraged this technology to implement the tools for cross-platform mobile development frameworks like Cordova.

Table of contents
  1. Edge & Offline-First App Data Management in 5G Devices

droidcon NYC '19: Wire 3: Tackling gRPC with Kotlin

by droidcon NYC

Sep 20, 2019 / 39m

39m

Start Course
Description

Protocol Buffers, or Protobuf, is an efficient schema-based data serialization protocol. gRPC is a high-performance, HTTP/2-based RPC framework. The two work together flawlessly to help you build world class distributed systems. At Square, client and server engineers collaborate on Protobuf schemas to define APIs. The teams also built Wire, a library which processes schemas and generates Java code that applications can use to send and receive data. Last year, they started working on Wire 3, which is rewritten in Kotlin, generates Kotlin code, and adds a number of features, like Protobuf messages as data classes, a multiplatform runtime module, coroutines-based gRPC APIs, and a Gradle plugin. In this session, Efgor Andreevici and Benoit Quenaudon take a deep dive into these features and talk about how they leveraged Kotlin to create better APIs. They'll also show you how to get the best out of Protobuf and gRPC for your server and client applications using Wire.

Table of contents
  1. Wire 3: Tackling gRPC with Kotlin

droidcon NYC '19: Using ML to Make Your UI Tests More Robust

by droidcon NYC

Sep 19, 2019 / 31m

31m

Start Course
Description

It is common practice to write many unit tests and API tests and only write a few User Interface (UI) tests. Why? Because UI tests are brittle. If you change one thing, the other tests unravel. What if you could use machine learning (ML) to help? Many apps have the same functionality, such as login, checkout, share, and pay. In this session, Godfrey Nolan talks about how to use Object Detection and labeling techniques to make UI tests more robust with a fraction of the code.

Table of contents
  1. Using ML to Make Your UI Tests More Robust

droidcon NYC '19: Let's Focus on IDE Indexing

by droidcon NYC

Sep 20, 2019 / 30m

30m

Start Course
Description

Developers spend a lot of their time in the IDE on a regular basis. As code changes, IDEs, like Intellij and Android Studio, need to update their index. However, this operation tends to slow down as a codebase continues to grow, which affects development productivity. At Uber, we decided to look at how to improve indexing performance for projects with a lot of modules. In this talk, Naveen Narayanan will outline the various performance issues that Uber discovered with Intellij and their Android codebase. He will dive deep into how they developed “Uber Focus” to significantly improve Intellij’s performance using lazy indexing. You will also learn how to incorporate these solutions into your IDE workflows to improve your productivity.

Table of contents
  1. Let's Focus on IDE Indexing

droidcon NYC '19: Bazel

by droidcon NYC

Sep 20, 2019 / 42m

42m

Start Course
Description

Why is Bazel worth taking a look at and how can it help you scale the development of your Android and iOS apps while outperforming standard tooling like Gradle and Xcodebuild? In this talk, Artem Zinnatullin discusses multi-module setup vs. build system, why Gradle is slow/fast, ABI vs. API vs. implementation, compile avoidance, remote caching, remote execution, build configuration DSL, IDE support, CI/CD support, and testing.

Table of contents
  1. Bazel

droidcon NYC '19: Native Concurrency Coroutines

by droidcon NYC

Sep 20, 2019 / 37m

37m

Start Course
Description

At PlanGrid, we've been working on a shared multiplatform library for use on Windows, iOS, and Android. Our apps sync lots of data for use offline, so early on we invested in filling the multi-threaded coroutine gap on native. In this session, Ben Asher discusses how PlanGrid built the multiplatform classes that allowed multi-threaded coroutine-based work in both the Native and JVM worlds for seamless multiplatform sync. You'll gain a better understanding of how to use native concurrency primitives, how concurrency and mutability work on native, and how PlanGrid mixed that together with Kotlin coroutines.

Table of contents
  1. Native Concurrency Coroutines

droidcon NYC '19: Android Studio Tips and Tricks Part 2

by droidcon NYC

Sep 20, 2019 / 39m

39m

Start Course
Description

In this session, Michael Bailey places an emphasis on Android Studio features, including what's new and features from the underlying IntelliJ platform.

Table of contents
  1. Android Studio Tips and Tricks Part 2

droidcon NYC '19: Transforming a Java Desktop Application to Kotlin

by droidcon NYC

Sep 20, 2019 / 27m

27m

Start Course
Description

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, Jossi Wolf takes a look at converting a real-world Java Swing Application to Kotlin Multiplatform and explains when to use it. 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.

Table of contents
  1. Transforming a Java Desktop Application to Kotlin

droidcon NYC '19: Advanced & Practical MotionLayout

by droidcon NYC

Sep 20, 2019 / 39m

39m

Start Course
Description

The ConstraintLayout team has steadily released new features that provide Android developers with better animation tools. In this talk, Jason Pearson covers how to practically use MotionLayout to deliver complex design asks. This will involve reusing Constraints between multiple Transitions, how to apply multiple effects at different points in a Transition, switching between Transitions programmatically or automatically, how to link the progress of MotionLayout to other widgets, and especially how complex interactions with a RecyclerView can be straightforward.

Table of contents
  1. Advanced & Practical MotionLayout

droidcon NYC '19: Road to Modularization

by droidcon NYC

Sep 17, 2019 / 32m

32m

Start Course
Description

The benefits of modularization are well known in the community. What are the steps to get there? In this talk, Aaron He and Siggi Jonsson briefly cover Tinder's app architecture, the motivation behind the initial effort in 2016, and how they got to an app with over 300 modules. Then, they will dive into several modularization strategies that resulted in the immediate benefit of a drastically reduced feedback loop.

Table of contents
  1. Road to Modularization

droidcon NYC '19: ReduxKotlin.org: Redux for All Kotlin Platforms

by droidcon NYC

Sep 20, 2019 / 33m

33m

Start Course
Description

This talk is a call to action for developers to unite on a standard Kotlin Redux implementation with multiplatform support. ReduxKotlin.org was created to be a community-driven solution that supports all of Kotlin's platforms. Kotlin Multiplatform + Redux is a solution that pulls more code into the shared space. In this session, Patrick Johnson briefly introduces Redux in Kotlin, how it can be used, a sample app, and provides a look into how Redux can fit into the new reactive frameworks Jetpack Compose and SwiftUI.

Table of contents
  1. ReduxKotlin.org: Redux for All Kotlin Platforms

droidcon NYC '19: Best Practices for Mobile App Security Testing

by droidcon NYC

Sep 20, 2019 / 33m

33m

Start Course
Description

In this session, Brian Reed brings forth a decade of experience in mobile forensics, pen testing, OSS tools, and automated security testing software. The session will begin with big data analysis of hundreds of thousands of apps in the Google Play Store across multiple slices of security, privacy, compliance, and the OWASP mobile top 10. After revealing the most commonly found Android issues across the dataset, Brian will drill into best practices for secure mobile app dev and pen testing with key areas to focus across development and security.

Table of contents
  1. Best Practices for Mobile App Security Testing

droidcon NYC '19: Dagger Party Tricks

by droidcon NYC

Sep 20, 2019 / 15m

15m

Start Course
Description

Dependency injection doesn't have to be all plumbing-doom and tedium-gloom. In this lightning talk, Zac Sweers will cover some simple clever things you can do with Dagger to simplify modularization, improve startup performance, and hide your intermediate dependencies.

Table of contents
  1. Dagger Party Tricks

droidcon NYC '19: Does Your Android App Expose You to Excess Risk

by droidcon NYC

Sep 20, 2019 / 30m

30m

Start Course
Description

In this presentation, Verimatrix’s Product Manager, Neal Michie, discusses the best practices to develop a secure Android app. He looks at the unique challenges of the Android ecosystem and debunks the myth that Android is inherently insecure.

Table of contents
  1. Does Your Android App Expose You to Excess Risk

droidcon NYC '19: The Life Changing Magic of Kotlin Multiplatform Serialization

by droidcon NYC

Sep 30, 2019 / 40m

40m

Start Course
Description

In this talk, Eugenio Marletti will explain what you need to know about the official `kotlinx.serialization` library, and how it might change the way you think about data de/serialization and enable a paradigm shift in multi-platform workflows.

Table of contents
  1. The Life Changing Magic of Kotlin Multiplatform Serialization

Advanced

These sessions are in-depth and delve into more advanced topics.

droidcon NYC '19: Prototyping with Jetpack Compose

by droidcon NYC

Sep 19, 2019 / 35m

35m

Start Course
Description

In this session, Ben Oberkfell sets out to prototype a Jetpack Compose user interface for a real-world Android game: The New York Times Crossword. This is a fun challenge because the game board is a complex view, full of stateful elements.

Table of contents
  1. Prototyping with Jetpack Compose

droidcon NYC '19: How It's Made: Jetpack Compose

by droidcon NYC

Sep 17, 2019 / 16m

16m

Start Course
Description

Jetpack Compose is the first major departure from the original Android UI Toolkit and, to those not familiar with declarative and reactive UI's, Jetpack compose feels mysterious. In this session, Yousuf Haque and Zachary Smith cover concepts and mental models to help you write idiomatic compose code, talk about what's going on under the hood, discuss how it differs from the existing Android toolkit, and explain how Compose can achieve a great developer experience while maintaining performance.

Table of contents
  1. How It's Made: Jetpack Compose

droidcon NYC '19: Multiplatform Functional Architecture

by droidcon NYC

Sep 19, 2019 / 33m

33m

Start Course
Description

In this session, Michael Prado demonstrates how to use the power of Kotlin multiplatform and functional architecture to write a single, testable code base that runs on any platform. Through the use of an example application, you'll learn how to manage state and merge pure and impure code using the Model View Update pattern.

Table of contents
  1. Multiplatform Functional Architecture

droidcon NYC '19: (Android) Transformers - Bytecode in Disguise

by droidcon NYC

Sep 20, 2019 / 37m

37m

Start Course
Description

If you’ve used Firebase Performance Monitoring, you know that it automatically discovers and reports performance metrics for all the HTTP transactions in your app. But, have you ever wondered how it does that? Android doesn’t provide any APIs to listen in on an arbitrary connection (that would be a security problem), and Firebase supports URLConnection, Apache, and OKHTTP APIs. The secret here is bytecode manipulation at build time using the Transform API provided by the Android build tools. Join this session with Doug Stevenson to find out how the Firebase Performance Monitoring Gradle plugin intercepts and measures HTTP transactions at runtime with some assistance from bytecode manipulation at build time.

Table of contents
  1. (Android) Transformers - Bytecode in Disguise