Droidcon Boston 2019

Paths

Droidcon Boston 2019

Author: Droidcon Boston

Droidcon Boston brings the best of Android to Boston since 2017. This conference is part of the vision of Double Espresso (www.2xe.io) that aims to keep training affordable to... Read more

What you will learn

  • Kotlin
  • Flutter
  • Error Handling
  • Automation
  • WorkManager
  • MotionLayout

Pre-requisites

None.

Path Courses

Droidcon Boston 2019

Droidcon Boston '19: Keynote: Ethical Product Design and You!

by Droidcon Boston

May 10, 2019 / 45m

45m

Start Course
Description

Our job as engineers does not stop with building a dizzying array of features, eliminating technical defects and ensuring high reliability. Engineers of all kinds must ensure their work serves the public good. A product that reliably harms, exacerbates injustices, or excludes marginalized groups is not a product worth building and maintaining. Learn how to effectively accomplish change in your working conditions or your employer's products through grassroots employee advocacy.

Table of contents
  1. Keynote: Ethical Product Design and You!

Droidcon Boston '19: Destination Navigation: You’re Going to Love the Transition

by Droidcon Boston

May 10, 2019 / 47m

47m

Start Course
Description

Come to learn how simple and testable your app's navigation can be with the new Navigation Architecture Component. We’ll start with the basics, assuming no prior experience, and move on to more advanced topics like testing navigation, conditional navigation, deep linking, and both reasons and strategies for migrating to a single Activity-based architecture. You’ll leave this talk with a solid understanding of the Navigation Architecture Component and the confidence to get started.

Table of contents
  1. Destination Navigation: You're Going to Love the Transition

Droidcon Boston '19: Inhibiting the Impostor

by Droidcon Boston

May 10, 2019 / 40m

40m

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 we will go over 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 Impostor

Droidcon Boston '19: Lightning Talk: I Like to Move It, Move It!

by Droidcon Boston

May 10, 2019 / 28m

28m

Start Course
Description

Let's be honest. Until 3 years ago, adding motion to your app was probably the last thing to be implemented if it would be implemented at all. The main reasons were (a) it was a pain to animate the simplest thing and (b) the feedback your users were expecting was an annoying dialog window for all the useful and sometimes not so useful information. And that was fine! The last couple of years and after the introduction of the material design principles, this is not the case anymore. The users expect some meaningful feedback about their actions, that will not interfere though with the flow of their interaction and it will be "normal" to the eye. Very recently, Google unveiled a lot of new, amazing tools that can help you take your app to the next level, engage your users more by offering a meaningful, and fun experience without causing you headaches anymore.

Table of contents
  1. Lightning Talk: I Like to Move It, Move It!

Droidcon Boston '19: SELECT * FROM Kotlin

by Droidcon Boston

May 10, 2019 / 49m

49m

Start Course
Description

Now that Kotlin is the preferred language of Android developers, 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 Multiplatform. Room has great documentation and hides a lot of implementation detail, while SqlDelight lets you write raw SQL statements with an Android Studio plugin and then generates type-safe code for you. In this session, you'll see a rundown of these two libraries, along with live coding demos to help you decide which library sounds right for you in this Kotlin world.

Table of contents
  1. SELECT * FROM Kotlin

Droidcon Boston '19: Building at the Speed of Thought

by Droidcon Boston

May 10, 2019 / 56m

56m

Start Course
Description

Breaking away from the traditional steps of a design sprint, we blur them together to further reduce the development cycle in what we call “Building at the speed of thought". Over the years my group has been perfecting how to build world-class Android Apps at the speed of thought first for hackathons, then products and now for design sprints. In this session, we will detail the “Speed of Thought” methodology, steps, tools and components involved. We start by utilizing a design sprint to explore the power of mobile and how it fits into the market/problem we are trying to solve. Then focusing on the crucial step in a design sprint, we build high fidelity prototypes in rapid succession utilizing the JetPack Android software components (UI, Behavior, Foundation, Architecture) to take full advantage of the Android platform. We do this by leveraging the design features of Android Studio (material components/theme editor, constraint library, motion editor) along with open source/industry resources to build an intuitive and beautiful UI. Once the UI framework is done, we write the Kotlin application logic utilizing the Android Architecture Components with data binding connected to Firebase for the synchronized backend. With our application finished we execute our strategy for marketing, distribution, and monetization guided by Data-Driven Ethnography (DDE). At the end of the session, the audience will have a good idea of how in rapid succession all these tools and components come together to produce magic.

Table of contents
  1. Building at the Speed of Thought

Droidcon Boston '19: WorkManager: Clever Delegate for Deferrable Background Tasks

by Droidcon Boston

May 10, 2019 / 41m

41m

Start Course
Description

Do you need a guaranteed, battery friendly solution to the problem of ensuring that critical background tasks are executed despite the restrictions of a constraint environment, even after the app exits? WorkManager is your new smart delegate Library that solves this complex background processing issue. I will be demonstrating a real-world problem, and how WorkManager is an improvement over existing solutions.

Table of contents
  1. WorkManager: Clever Delegate for Deferrable Background Tasks

Droidcon Boston '19: Writing Tests That Stand the Test of Time

by Droidcon Boston

May 10, 2019 / 43m

43m

Start Course
Description

One of the promises of test-driven development is the confidence and ease with which we can refactor our production code. However, sometimes we find ourselves in situations where our tests are too coupled to our code and we have to change the tests every time we update the code. At this point, we start wondering if the tests are worth it. If you have ever found yourself having to update your tests every time the behavior of a dependency of a class changes, then this talk is for you. This talk is to share some patterns, tools, and examples that can guide us to write more maintainable tests. We will look at why we need tests in the first place, how writing tests is an investment that will save time in the future. We will also look at some causes of unmaintainable tests (for example using a wrong test double, testing implementation details and not general behavior) and how to overcome these problems. With the use of examples from everyday Android development, we will learn how to avoid brittle tests. You will leave the talk having a clearer understanding of why tests are important and worth the time and ultimately be able to apply the tips to write robust and more maintainable tests.

Table of contents
  1. Writing Tests That Stand the Test of Time

Droidcon Boston '19: Do the Loco-MotionLayout: Building Animations with MotionLayout

by Droidcon Boston

May 10, 2019 / 46m

46m

Start Course
Description

You’ve heard, seen or witnessed the buzz around MotionLayout. But what does it really look like in real life? What are some of its current limitations? How easy is it to use? Are the demos that we’ve seen actually possible? Or is it all a ruse and they’ve been created in Adobe After Effects? In this talk, we’ll use MotionLayout to develop an animation taken straight from a crazy designer’s mock-up. A mock-up that you see and crumble at just how long it would typically take you to build it on Android. Throughout this talk, you’ll see some animated goodness and you’ll learn some of the fundamentals of how MotionLayout works. You’ll find out what a MotionScene is and how you can use it to separate your states and transitions from your layout, how to use click and swipe handling to trigger transitions, how we can take advantage of KeyAttributes to tweak animations at certain frames, how to use CustomAttributes to animate certain parts of a View and more! You will leave this talk armed with the basic knowledge required to start having fun with MotionLayout and creating your own animations and transitions. And you'll realize that the mad animations or transitions that your designers give you are now possible!

Table of contents
  1. Do the Loco-MotionLayout: Building Animations with MotionLayout

Droidcon Boston '19: Test the Untested: Our Journey from Zero Coverage to Automated Testing

by Droidcon Boston

May 10, 2019 / 32m

32m

Start Course
Description

Do you fear changes in the shape of a monster legacy code base? Do you have zero test coverage and don’t know how to regain safety in your day-to-day work? Come to this talk and get insights from the developers of a million client SDK who solved these problems without a whole rewrite. A code base which grows over years often leads to an ad-hoc architecture and plenty of dark corners where no developer wants to go. If this code base is untested it can slow down implementation speed dramatically. It may prevent developers from making necessary changes as they fear to break something. So most changes are limited to small operations which do not increase the overall quality of the code base. We faced such problems in our Android SDK and introduced architectural components and abstractions to support testability and regain safety for future changes. I will present how we fought this giant legacy code monster: from introducing architectural patterns to a critical codebase, which runs on millions of devices around the world, techniques for testing legacy code without breaking it, to how we support our engineers with CI tools and automated device tests. I will show which obstacles we had to pass and where we are now.

Table of contents
  1. Test the Untested: Our Journey from Zero Coverage to Automated Testing

Droidcon Boston '19: Solving the Hard Problems

by Droidcon Boston

May 10, 2019 / 25m

25m

Start Course
Description

Do you ever find yourself staring at a problem that you have NO IDEA how to fix? Somehow I end up with those a lot, maybe I'm low on ideas, or I'm just good at finding the right rock to open up the coconut. Regardless, I'm happy to fight with a problem, poking and prodding until I find that special epiphany that makes it clear, usually muttering "it was so simple all along". I will share some stories of times I've been stuck, and the strategies employed to break through the lack of understanding and get to a solution. You will learn different approaches you can take and different things to look for when you find yourself with a difficult problem that has an obscure solution. Hopefully, you'll also laugh, as I did, at the simple solutions that were so laboriously won.

Table of contents
  1. Solving the Hard Problems

Droidcon Boston '19: Flutter, a Designer and a Developer Walk into a Project

by Droidcon Boston

May 10, 2019 / 31m

31m

Start Course
Description

Two longtime friends with complementary skills meet a new mobile SDK for building high-performance apps from a single codebase, what could go wrong? Flutter is quite powerful but with great power comes great responsibility. Using widgets, building a meaningful UI in a new way, finding that library we need and getting used to a different architectural approach are some of the many challenges we face as developers and designers when going into the cross-platform world. In this talk, we'll review some of the advantages of using Flutter, how to tackle common challenges when adopting it and how can it spark a better collaboration between designers and developers, including roles and responsibilities, a well-defined feedback process, and our own experience while building an app. Interested?

Table of contents
  1. Flutter, a Designer and a Developer Walk into a Project

Droidcon Boston '19: Achieving Fully Reactive Code Using Both LiveData and RxJava

by Droidcon Boston

May 10, 2019 / 24m

24m

Start Course
Description

Modern mobile applications make use of a wide array of technical solutions to achieve clean, testable and performant code. Among these tools is the reactive programming paradigm. While many have heard of reactive programming, far less have a solid understanding of what it is, how to achieve it, and what benefits it may provide. The Android communities use of RxJava as a replacement for the AsyncTask class has lead to widespread adoption of reactive technologies without a corresponding embracing of reactive programming. In this talk, we’ll review what reactive programming is and what its history is. We’ll then address the ways in which the Android community has been using reactive technologies and how it could take the next step in adopting these technologies towards creating end to end reactive apps. We’ll take a deep dive into how RxJava integrates with the Android LiveData classes and when to use which. We’ll work through a small but meaningful application to demonstrate reactive programming concepts in the Android world. We’ll end the example by looking at how the code can be (easily) tested and some of the benefits we’ve received from utilizing a reactive approach.

Table of contents
  1. Achieving Fully Reactive Code Using Both LiveData and RxJava

Droidcon Boston '19: Using Automation to Spark Joy for Developers and Boost App Quality

by Droidcon Boston

May 10, 2019 / 16m

16m

Start Course
Description

A good release is an uneventful one. While often overlooked, continuous integration (CI) and automation can be pivotal to shipping a quality app timely. A good CI system helps reduce bottlenecks by automating workflows. Hear how The New York Times leverages CI to facilitate a regular release cycle while allowing developers to keep their focus on code. In this talk, you’ll learn to understand how CI and automation can help both large and small teams increase productivity, communications, and transparency.

Table of contents
  1. Using Automation to Spark Joy for Developers and Boost App Quality

Droidcon Boston '19: How We Seamlessly Internally Test Our Android Apps Within Microsoft

by Droidcon Boston

May 10, 2019 / 15m

15m

Start Course
Description

Do you use Outlook or Skype on your phone? At Microsoft, we have over 100,000 employees that beta test these apps internally. How do we get the apps to that many users seconds after a change is made in the codebase? How do we target all the testers to give us feedback on a version? Learn how we build and test our mobile apps on the cloud and analyze our apps after distributing it to beta testers and especially how we handle a scaled store outside the Play Store.

Table of contents
  1. How We Seamlessly Internally Test Our Android Apps Within Microsoft

Droidcon Boston '19: Keynote: Android Routines on Coroutines

by Droidcon Boston

May 10, 2019 / 50m

50m

Start Course
Description

Coroutines have been around since the dawn of programming languages, but it's only recently come to Android programmers through Kotlin. Journey through the history of coroutines, learning what problems they're good at solving - and how they can be used effectively in our Android applications.

Table of contents
  1. Keynote: Android Routines on Coroutines

Droidcon Boston '19: Keynote: Lessons from Teaching Android on the Ground and in the Cloud

by Droidcon Boston

May 10, 2019 / 54m

54m

Start Course
Description

Chances are that you're a teacher - whether you've formally taught in a classroom, shared an engineering experience as a talk or blog post, or helped out someone new on your team. Since you're a teacher, you should care about being a good teacher. Good teaching empowers those around you and nurtures healthy technical communities. Also, teaching doesn't need to be entirely altruistic - often the best way to truly learn something is to teach it. My education career started over a decade ago. It has included teaching at an all girl's STEM school in Rwanda and for the last five years as an online instructor for Google's Android courses. The Google courses are by far the biggest "classroom" I've been a part of, with a diverse and driven pool of students. Android has also had seismic changes over the past few years. These facts combined make Android a subject where teachers need to continually adapt, iterate and hone their skills. In this talk, I'll share what it's like behind the scenes: scripting, filming and producing Android classes for hundreds of thousands of students, including what we got right, and what took a few tries. From this, I'll cover reflections and practical takeaways about teaching Android and teaching in general. Because I am a teacher and so are you!

Table of contents
  1. Keynote: Lessons from Teaching Android on the Ground and in the Cloud

Droidcon Boston '19: Finite State Machines to the Rescue: Get Complex App Flows Under Control

by Droidcon Boston

May 10, 2019 / 29m

29m

Start Course
Description

Complex Android app flows consist of many screens, synchronous and/or asynchronous calls, and potentially involve third-party libraries with different life cycles. On top of that, the activity lifecycle is quite complex — making it close to impossible to handle all edge cases caused by that lifecycle. This talk will demonstrate a way to get complex flows under control by using a finite state machine. We will use Kotlin and basic RxJava to create a generic finite state machine that allows us to nicely decouple state and UI logic. We will also look into the composition of finite state machines.

Table of contents
  1. Finite State Machines to the Rescue: Get Complex App Flows Under Control

Droidcon Boston '19: Programming for Nomads: How to Program on Mobile Devices

by Droidcon Boston

May 10, 2019 / 21m

21m

Start Course
Description

Your laptop is broken! What do you do? When this happened to me I used my smartphone to make a development environment with all the modules I needed for my ambitious artsy projects. We will go through my challenges in setting up and maintaining a remote server, using my environment when my connection was weak, and how I managed to write and view code on such a dinky little screen as my phone.

Table of contents
  1. Programming for Nomads: How to Program on Mobile Devices

Droidcon Boston '19: Asynchrony in Kotlin: How You Can Choose Between Using Rx or Using Coroutines

by Droidcon Boston

May 10, 2019 / 46m

46m

Start Course
Description

The time is here to start thinking about the architecture of your Android app. You know your app will be all Kotlin (right?) it needs to do network requests, and it must communicate with a Bluetooth device. That means that it must deal with asynchronous programming so that it can receive and send data from the network and the device, while your UI keeps running as smooth as butter. There are a few choices to accomplish this, such as using plain Threads, AsyncTasks, or the popular Rx Java framework if you dread to manage threads in your own code (who doesn't). In this talk, we'll narrow down the choices to two candidates. The first one is the popular Rx Java framework and the second one is the newly minted Coroutines feature in Kotlin. We explain how they work and give you a checklist so that you can figure out which one suits the architecture of your app and your team of developers best. After all, you and your team want an app that is a pleasure to build and that your users will love!

Table of contents
  1. Asynchrony in Kotlin: How You Can Choose Between Using Rx or Using Coroutines

Droidcon Boston '19: Everything You Ever Wanted to Know About Error Handling on Android

by Droidcon Boston

May 10, 2019 / 51m

51m

Start Course
Description

We all use crash reporting tools in our apps, but have you ever wondered what happens under the hood? How do these crash reporters do what they do to make our debugging lives easier? Let’s find out! In this session, you'll learn how to create a crash reporting SDK from scratch using Android's UncaughtExceptionHandler, starting by capturing and sending stack traces to an HTTP endpoint. We'll then progressively add functionality onto our crash reporter until it's turned into a battle-tested SDK that we're confident will save us hours of debugging crashes in production. As expected diving deeper into the inner workings of our tools, we’ll encounter challenges along the way. We’ll analyze the various scenarios, what they mean for our apps, and how to best go about solving for them given tradeoffs and solutions. Here are some of the challenges we’ll encounter: For starters, we’ll discuss the design constraints caused by working in a low-memory environment, and how streaming IO and JSON serialization can help us capture OutOfMemoryErrors. We’ll also learn the best practices of caching undelivered reports on disk for future delivery and triggering automatic upload of reports in response to connectivity changes. We’ll consider privacy issues, like how we can collect useful metadata about the device and application at the time of crash while respecting user privacy by filtering sensitive information. To further expand our tool, we’ll capture exceptions caught in a try-catch block and discuss the difficulties with ensuring thread-safety in these situations. Then we’ll move on to the various strategies for testing a crash reporter and walk through the benefits of black-box end-to-end tests. Another issue to examine is how we can deobfuscate stack traces in apps which use R8—we’ll review uploading a mapping file to an HTTP endpoint and read its contents to reveal a readable stack trace. There are even things we can do to highlight the most useful parts of stack traces as well as thinking through grouping related errors together. Then we’ll consider supporting different API levels and how it affects the collection of useful data, and finally, we’ll touch on capturing errors in NDK apps and the potential pitfalls in the Java Native Interface.

Table of contents
  1. Everything You Ever Wanted to Know About Error Handling on Android

Droidcon Boston '19: Lightning Talk: Leveling Up as an Android Dev

by Droidcon Boston

May 10, 2019 / 31m

31m

Start Course
Description

Chances are you were already a Software Engineer before switching to Android Development. You might also have learnt your first line of Kotlin solely in the bid to become an Android Developer. Regardless of how you started developing for Android, at some point, you’ll need to start thinking about advancing to the next stage in your career. In this talk, you’ll see the evolution of an Android developer - from Junior, to Intermediate, to Senior and then to Team Lead and beyond. You will learn about what to expect at each stage, what mistakes that are overlooked and permissible and gain more insight into how to level up to the next stage. You’ll leave this talk with all the information you need to advance in your career!

Table of contents
  1. Lightning Talk: Leveling Up as an Android Dev

Droidcon Boston '19: Simple MVI Architecture for Android

by Droidcon Boston

May 10, 2019 / 29m

29m

Start Course
Description

An introduction to the Model View Intent architecture pattern. This pattern takes ideas and concepts from Reactive and Functional programming. We'll go over the core principles of this pattern, and how you can apply them in your Android applications. We'll look at concrete implementation details, and explore some of its benefits. Some familiarity with Kotlin and RxJava is assumed.

Table of contents
  1. Simple MVI Architecture for Android

Droidcon Boston '19: Augmenting Reality: From Fun to Furnished

by Droidcon Boston

May 10, 2019 / 18m

18m

Start Course
Description

You may already have an AR app or a portion of your app using AR. And while it may be a fun small experience for the users, where do you go from there? How do you expand on the experience so that’s it’s not just one screen of your app? In this talk, you’ll learn about how Wayfair is modularizing the existing AR code to build various tools on top of it, with the goal of providing slick, fun user experience!

Table of contents
  1. Augmenting Reality: From Fun to Furnished

Droidcon Boston '19: Community-driven, Community-built: The Droidcon Boston App Story

by Droidcon Boston

May 10, 2019 / 23m

23m

Start Course
Description

Crowd sourcing a team of professionals from around the globe for a conference is not an easy task. Get a first-hand account from two first-time volunteers about how just a little time in each week was enough to bring the Droidcon Boston 2019 app to life. Learn what Android patterns we used to build the app this year, how we balanced global weekly meetings and touchpoints through Slack channels, and most importantly what it was like to get involved in the Android development community. Contributing to the community isn't as scary as it seems!

Table of contents
  1. Community-driven, Community-built: The Droidcon Boston App Story

Droidcon Boston '19: Working Offline: Data Sync Patterns at Toast

by Droidcon Boston

May 10, 2019 / 42m

42m

Start Course
Description

The move to cloud-based tablet POS systems has been a big win for restaurants. But what happens when the Internet goes out? How do you keep the five tablets in your restaurant humming along happily until the router is plugged back in? And how do you reconcile all of the activity you’ve recorded once everyone is back online? Join us to learn how Toast has tackled this problem so far, and how we’re improving our solution. We’ll give you an end-to-end tour of the challenge, including on-device database technologies, the basics of securely storing payments, direct device-to-device communications, sharing business logic across the app and cloud, messaging stacks and their strengths, and event sourcing patterns. You’ll understand how we make sure thousands of restaurants can give their customers great service under all conditions, and we’ll share patterns that you can apply to your own apps.

Table of contents
  1. Working Offline: Data Sync Patterns at Toast

Droidcon Boston '19: Optimizing Android Apps for Chromebooks

by Droidcon Boston

May 10, 2019 / 47m

47m

Start Course
Description

The Chromebook represents an extraordinary opportunity for Android app distribution, but it also poses significant development and testing challenges for Android developers. In this talk, we'll explore how to connect a Chromebook to a development system for debugging and testing. Then we'll move on to display management, including how to detect and adapt to a Chromebook's larger screen with its true multi-window environment and variations in screen size, pixel density, and orientation. Specific recommendations will be offered for making an app feel like it's native to a Chromebook's visual environment. We'll then talk about file management, which works somewhat differently on Chromebooks compared to conventional Android devices. We'll look at how the Chromebook's local file system is shared with the container that manages Android apps, and how to work with Google Drive through the Storage Access Framework API. And finally, we'll explore the Chromebook's USB ports and what they offer for both file transfer and audio output.

Table of contents
  1. Optimizing Android Apps for Chromebooks

Droidcon Boston '19: A Dozen Techniques for Everyday DSLs

by Droidcon Boston

May 10, 2019 / 29m

29m

Start Course
Description

You've heard all about how Kotlin supports Domain Specific Languages (DSLs) and now it is time to put Kotlin's DSL features into action in your everyday code. You may not be building the next Gradle DSL or Anko, but you are writing Kotlin code and that code can be improved using DSL techniques. Yes, this talk will cover the Kotlin features you need to write DSLs: lambdas, infix notation, @DslMarker, etc... but you need to know more than that. You need to know what your design goals should be, know how to use Kotlin's features properly to make DSLs, what design patterns help you do it, and how to evolve your code slowly into from a single improvement to eventually becoming a full DSL. This talk exposes you to a dozen or more DSL techniques. You will learn how to turn ordinary builders into languages by using design patterns such as nested builders, pass context to lambdas to make your code more language-like, swap parameter order to make your code more readable, and clean up unnecessary syntax. By the end of this talk, you will have a brain full of ideas you can use to make full use of Kotlin's capabilities.

Table of contents
  1. A Dozen Techniques for Everyday DSLs

Droidcon Boston '19: Fast Prototypes with Flutter + Kotlin/Native

by Droidcon Boston

May 10, 2019 / 46m

46m

Start Course
Description

Combining Flutter and Kotlin/Native done on a conference app, I will share how to do this approach and the things I learned.

Table of contents
  1. Fast Prototypes with Flutter + Kotlin/Native

Droidcon Boston '19: App Optimizations: A Case-based Exploration

by Droidcon Boston

May 10, 2019 / 36m

36m

Start Course
Description

Discussions around app optimizations and cold start times are nothing new. However, in this talk I’d like to take a slightly different approach, taking individual cases for the various Uber apps, and exploring optimizations in a highly contextual manner. Though some optimizations are applicable across all Android apps, it can be hard to decide what optimizations to focus on, given the potential impact and the estimated effort. We’ll walk through optimizations around code organization, threading, various networking topics, background work, etc., in the form of case studies for the Uber Rider, Driver, UberEats and Uberlite apps, comparing their individual needs. Through this talk I hope to provide you some insight into approaching optimization for your particular apps, along with exposure to some of the tools and methods we use at Uber for such performance work.

Table of contents
  1. App Optimizations: A Case-based Exploration

Droidcon Boston '19: On-device Machine Learning for Android Developers

by Droidcon Boston

May 10, 2019 / 29m

29m

Start Course
Description

Machine Learning is everywhere it seems, and its usefulness is growing daily. In this session, you'll get a deep dive into Machine Learning, and a tour of the options available to you to add on-device machine learning to your mobile app. Whether you want ready-to-use APIs for common use cases like detecting faces or labeling images or you have experience developing your own custom models, ML Kit can help. We’ll cover the basics of implementing machine learning into your app, so you can build a more powerful user experience.

Table of contents
  1. On-device Machine Learning for Android Developers

Droidcon Boston '19: Code + ML: Will Automation Take Our Jobs?

by Droidcon Boston

May 10, 2019 / 40m

40m

Start Course
Description

Did you know "neural-network based classification" is really just a fancy way to squish a bunch of data until all the things that look alike are right next to each other? Machine learning is permeating every facet of our lives, from learning our preferences to self-driving cars, but what happens when you apply neural networks to code quality…how do you even view code as data? The key ideas are pretty easy to summarize and fun to play with. This talk will provide an overview of fundamental concepts of machine learning, and then delve into how it can be used to analyze and improve code, provide pointers to available commercial and open source tools and discuss what’s been achieved so far (coding in English, context-aware code completion, automated Stack Overflow). The talk will close with speculation on where the field is going, and how machine learning won’t take our jobs, but hopefully will take some of the work we don’t like doing.

Table of contents
  1. Code + ML: Will Automation Take Our Jobs?