MotionLayout is a new layout based on ConstraintLayout. With MotionLayout, animations and transitions finally are becoming easier to implement. No more disappointing your designer because it would take too long to build this awesome animation! In this talk, you will learn how to use MotionLayout starting with building a simple animation that will replace an existing CollapsingToolbarLayout. As we move on, you will learn about KeyFrames, KeyCycles and other awesome features of MotionLayout, helping you build those fancy animations your designer always wanted you to build. To help make your animations as awesome as possible, you will also learn how to make them follow the Material Design Guidelines using interpolation, animation choreography and fine-grained details about motion. You will leave this talk ready to use MotionLayout and create awesome animations - your designer will be stunned!
Jossi is a Freelance Android Developer from Hamburg, Germany. Jossi graduated high school in 2018 and has been working on many projects, including software for startups as well as car manufacturers. As a GDG Organiser and part of Women Tech Makers Hamburg, he is working on a project bringing coding classes to schools using several new approaches. Jossi also loves Kotlin and Rabbits!
A big task on my todo list for this year is getting to know what Flutter is. I would like to take you through steps I took to make my first application come true. As my background is Mobile (iOS and Android) and Web Development I want to take this to another level and want to test flutter on all 3 platforms. How hard is it for Android developer to make an iOS app and can we use the business knowledge to make an web app as well.
'Idiomatic' is a word often used by Kotlin experts to describe elegant patterns or solutions that make excellent use of Kotlin's features. Let's turn this attitude around for a change, and have some fun by taking a look at the worst ways you can twist and abuse language features to take shortcuts, create tricky solutions, achieve exciting syntax, or confuse others who dare enter your codebase.
A Kotlin enthusiast since the 1.0 of the language. Ranked right around the very top of the Kotlin tag on StackOverflow. Creator of a couple open source Kotlin libraries. Android developer (and self-proclaimed Kotlin evangelist) at AutSoft. Android/Kotlin tech editor at RayWenderlich.com. University student, working on a master's in computer engineering at the Budapest University of Technology and Economics. Instructor at the same university, teaching Kotlin and Android.
Many Android developers are coding or have at least an active interest in Kotlin. This talk aims to help Android developers level up their Kotlin skills, focussing on intermediate/expert language features such as coroutines, DSLs, and conventions.
Pamela is a second-generation coder and hold BSc IT and BSc (Hons) Computer Science degrees from the University of Pretoria. She has more than 15 years of experience writing desktop, web and mobile apps. Currently she is an Android Engineer at the cryptocurrency startup Luno. She loves coding in Kotlin, especially for Android!
Briefly provide and introduction to myself and Kotlin Native and jump into a small project to illustrate a fully working application on Android and iOS. Based on Medium article: https://medium.com/android-things/building-a-kotlin-native-on-ios-android-6a6db9df5bef 1) Overview what will we cover: Modules, Layers (view, presenter, json serialization, http), Android, iOS 2) Discuss each layer with code examples to build a complete working project.
ML Kit is the SDK that makes machine learning features more straightforward for the mobile developers to incorporate in their apps. Since ML Kit has been made a core ingredient of Firebase, its robust ML APIs can be implemented seamlessly in both android & IOS apps like it’s any other feature such as analytics, crashlytics etc. The flexibility provided by ML Kit for mobile developers to use On-device or On-Cloud ML Apis as per the use case is quite significant. In this session we will take deep dive in the different ready to use APIs of ML Kit encapsulating the features of Mobile Vision, Google Cloud Vision API, TensorFlow Lite and Neural Network API and also will discuss how custom models can be hosted seamlessly.
Gaurav is a seasoned mobile developer currently working in Maersk (shipping conglomerate). He has worked in healthcare apps for more than five years targeting different spectrum of users right from Radiologists to Ward-boys specifically for US & Canada. As an android enthusiast, he is fond of connecting with community and spends time as a weekend trainer with Edureka for new entrants in mobile eco-space. He is a regular attendee and participant of GDG BlrDroid at Bangalore.
Android Studio is the tool of the trade hands down. When it comes to Android (app/library/IOT) development, the first thing that comes to mind is to install Android Studio and get going from there. However, it has not been a smooth road as expected for me. In my own experience, I talk about my love-hate relationship with Android Studio. I try to cover what Android Studio gets right and what it doesn't. The talk focuses on how to be embrace performance when Android Studio is the bottleneck in the workflow (slow build times and reduced productivity), how switching to a terminal and various tools that exist in the ecosystem can give Android developers the much-needed speed boost and in-depth view in their development workflow. By the end of this talk, you would have embraces a workflow that allows for increased productivity and faster development.
Nishant is a Sr.Android Engineer at Soundbrenner in Berlin, Germany and an open source enthusiast who spends his time doodling when not hacking on Android. He is a caffeine-dependent life-form and can be found either talking about android libraries or advocating that coffee is the elixir of life at community gatherings. He has been part of 2 startups in the past (Founding Team Member at OmniLabs, Inc. and one of the first employees at Silverpush) with experience in Android SDK Engineering and Audio Digital Signal Processing(DSP) on Android. While working at his past company (Silverpush), he developed the company’s patented UAB (Unique Audio Beacon) Technology.
MockK is a mocking library for Kotlin enables mocking Kotlin specific features with its Domain Specific Language in a idiomatic way. I will talk about unit testing in general and give a brief introduction to MockK.
Hadi is one of the organisers at GDG Istanbul and develops Android apps for 8 years. He works as the Lead Android Developer at CitizenMe. Hadi is a Kotlin advocate and tries to share his Kotlin and Android knowledge with people through blog posts and talks.
As Deezer team expanded over the last years, making changes and maintaining design in the mobile app became a major concern: - How to keep the different screens of the app(s) consistent and let the design evolve? - How to ensure consistency across platforms / applications? - How to fill knowledge gaps between designers and developers? #ATOMIC DESIGN To tackle these issues, we decided to build a strong Design System, based on Brad Frost methodology: Atomic Design. We established with designers a UIKit, a pattern library, implemented as an Android library and inspired from Atomic Design, defining every UI component of the app. During the presentation, we will dive in the UIKit to see how components are defined and organized, integrated in the app with global architecture, and the implications on the design and development process in our team.
While most developers are elated when Android Studio compiles their code without any “hiccups”, there is a lot going on when that compiled code runs on Android OS. Android mostly takes care of runtime, but it’s always nice to know what’s happening backstage. How code executes at runtime is a completely different story in case of Android. The .dex format has been here for years and everyone is accustomed to it. But there are a lot of complexities going on once the .dex reaches your device. This talk will focussed on analyzing on what happens after your code in Kotlin/Java is compiled, packaged and run on an actual device. We will take a deep dive into .dex format as well as see how runtime has evolved since Android 1.0 and taken a great leap with Android 5.0 and above. In the process, we will also learn how to write runtime efficient code.
Jitin works as an Android Engineer at GO-JEK, India where he works on aligning design and development as part of UX engineering. He previously developed travel applications for various airlines and has 5 years of industry exprience. He writes about Android and Kotlin on Medium, is an open source contributor and has a certification in Android Developer Nanodegreee from Udacity. He has previously given talks at conferences and meetups in Bangalore.
How to make your Kotlin code better? Let's see the best practices that were already well established by the biggest programming authorities, and see how do they relate to Kotlin. This presentation shows a concrete set of guidelines for better Kotlin development.
Marcin Moskala is an experienced Android developer, teacher, and an official Jetbrains' Kotlin training partner. He is the founder of Kt. Academy, author of the book 'Android Development with Kotlin', and an active programming community member. He is also the main author on the biggest medium publication about Kotlin and a speaker invited to many programming conferences.
A while back, Google introduced Instant Apps: small, demo versions of your app that users can quickly download and try out. As you can imagine, this has the possibility to change how users download apps, and adopters can see large increases in Play Store conversions. However, it comes at a cost: for games, there's a size limit of 10 MB, and for regular apps, the limit is 4MB. That’s tiny; you can easily cross that line with dependencies alone. In this talk, we’ll discuss the technical tools available to you to shrink your apps, and talk about some of our hard learned lessons on how to come in under the line.
Elliot Schrock is an entrepreneur, recovering mathematician, Raspberry Pi enthusiast, and mobile app developer extraordinaire. He currently lives in NYC, where he runs a small mobile app development company, advises various entrepreneurship competitions and startups, and gazes out windows while holding a glass of scotch. He should really get out more often.
Functional Programming(FP) has become the all the rage at the moment. Maybe you have been wanting to have a look at it but haven't or you already have given it a go but got scared away with all the FP jargon (We are looking at you Monads). In this talk, we will look at how to get started with FP using Kotlin with the existing knowledge you have and look at how we can start moving towards FP by making a few changes(trust me, no talking about the jargon or 3rd party libraries) in your day to day activities. I will also talk about my journey about going from OOP to FP. We will look at some of the mistakes I did and some of the approaches I took while learning FP. We will also create a simple structured approach to start learning/implementing FP in your existing code so that you can learn by doing. At the end of the talk we will look at why a library like Arrow-KT can be useful once you have mastered the basics of FP and also how to approach Arrow-KT for your FP needs.
Adnan A M Android Developer, Redmart
Adnan is a seasoned Android developer working with Redmart. His area of focus has generally been writing large scalable code, improving UX and overall app performance. He has a lot of domain knowledge and exposure with E-Commerce domain and used to previously work at BookMyShow, where he went to rewrite the entire app from scratch.
Always wanted to build better animations ? Let’s explore Motion Layout in order to know its capabilities. MotionLayout beta-1 was release during the Google I/O. It promises to simplify the way we create animation on Android. Based on XML we will be able to describe on animation that could connected to a swipe on the screen or a native component. In this talk, I will explore an Android app that list version of Android. For each version we will discover a new example, starting with basic modification of a constraint. Then adding KeyFrame with position, scale and rotation. Next playing with customs attributes to change the image color saturation. At the end we will explore connection with Coordinator Layout, View Pager, Drawer and SeekBar. At the end, you should know how to use and what are the capabilities of MotionLayout. Should you use it in your application?
Alexandre is Android developer for more than 5 years. He is passionate about Kotlin, MotionLayout and Framework created by Google. His current goal is to craft more intuitive and more usable applications. In addition, Alexandre enjoys to share his knowledge to the Android community. Currently working for Xebia in Paris.
Navigation is quite an important part in developing Android applications. Once the application is becoming bigger it might be challenging to refactor the navigation system, adjust it to support multi-modular environment, dynamic features.
In this presentation, I am going to tell about a navigation system that works fine with both monolith and multi-modular environments. More importantly, that is easy to refactor, test and support new features.
When I was a child, instead of being an astronaut, I wanted to be a developer. So I became who I wanted to be. I have an MS degree in CS. I worked in an outsource company where I was able to try different ways to implement the architecture. I took part in breaking a big application into modules and the most exciting is that the app was released and we refactor it carefully and by small steps. I was involved in developing an app with more than 50 millions downloads. All these projects gave me an unforgettable experience that I am ready to share with you.
Google recently released their new solution for background work. The WorkManager. This talk will give an overview on what the WorkManager is, how it works and how you as an Android Developer can benefit from it.
Testing our code is essential for development process. Yet, creating clean and readable tests is not a piece of cake. During the talk we'll dive into unit testing concepts and see how Kotlin helps us write efficient test code. We will study examples of testing patterns tailored to common application components. We'll discuss Kotlin testing tools that can bring joy and happiness to everyday work.
An Android developer focusing on providing mobile solutions for startups. He writes a technical blog about Android development and related fields. You can meet him at conferences, meetups, hackathons, as well as on volleyball courts.
How do you refactor bluetooth code on Android with zero test coverage? When touching such code you have to test it with real phones and bluetooth devices to ensure you are not breaking anything. Thus changes come with a high risk of introducing new bugs. At mySugr we spent quite some time refactoring our bluetooth code, so that we can write plain Kotlin unit tests for it and easily add new functionality. You are going to see how we achieved the refactoring with almost zero bugs and a minimal manual testing effort. This talk doesn’t deal with the details of bluetooth on Android. Instead, we will discuss the strategies and methods we used and how it can be applied to any refactoring of dangerous code. Finally, I’m going to show you that you can even write tests for bluetooth code - there is no excuse not to write tests.
Philipp Hofmann mySugr
Philipp is the Android Tech Lead at mySugr in Vienna. He drives improving the development process of the Android team. He started splitting up the app into multiple modules, improved the build speed, moved the CI from Jenkins to CircleCI, introduced several Github checks for unit tests, integration tests with Firebase Test Lab, code styles and code smells.
In the past, engineering teams typically split “frontend” and “backend” responsibilities. As an Android developer, you almost certainly slotted into the “frontend” category, with no responsibility on the backend. And if you do want to work on the backend for an app, it can be taxing to learn new tools and languages, while being responsible for managing and scaling a server farm. Today, with “serverless” backends becoming popular, server management and scaling is being fully automated, and you can use many of the same tools and languages you use for Android development. Do you want to write Kotlin everywhere? There’s a solution for you! Join this talk to survey some serverless options provided by Google, see some demos, and figure out which options are right for you.
Doug Stevenson Google
Doug is a veteran engineer, experienced public speaker, and developer advocate at Google with the Firebase team. He developed web apps before the web had 'apps', and developed for Android since the very first Android device was on the market. In the SF bay area, he's bootstrapped the efforts of several startups. Outside of work, Doug follows professional ice hockey and enjoys craft beer.
Do APK or app size matters? Yes, it does. The user thinks about the app size before downloading an app. The user thinks about the data also over which he will be downloading that app. He or she even think about how much space will it take on his or her device. How can we reduce the size of the app? What if we provide very basic functionality and let the user decide whether he wants the advanced or additional functionality or not. What if he or she can download only the features he needs on demand and keep the app compact. What if he can download only his native language in which wants the app and can skip rest all the languages. Google new feature of dynamic delivery enables us to deliver the features on demand. This helps us to reduce the size of APK and even enables the user to choose what features he needs. From a developers perspective, this is very easy to implement and maintain. What is actually a dynamic delivery? How can we reduce the APK size with it? How it can help a user? How to implement it in Android? How difficult is it to implement in the existing code base? How will it look to the user in the app? Well, let’s get all these questions answered in the talk along with a demo.
Suneet is a non-caffeine-addicted developer, MSc in Video Game Development working as a mobile developer at ShareChat, Bangalore India. His past industry experience of around four and a half years majorly incorporates mobile development on both Android and iOS platforms, native as well as cross-platform (Xamarin) and video games development. He is passionate about animations, having a special interest in playing and developing video games.
We are reading about AR as the future platform even though we are currently experiencing only gaming/entertainment use cases about it. Let's look an effective non-gaming sample: Many travel and transport companies are using AR to help you to understand if your luggage fit their limits. We will analyze their apps and learn how to develop an Android native app doing the same using ARCore, Sceneform and a bit of AI with Firebase ML Kit. At the end you will be able to apply this new skills to new exciting use cases.
Giovanni Laquidara TUI
Android Developer at TUI. XR Engineer, Mobile developer and previously Software Engineer working in Air Traffic Control and Command & Control System development. Udacity Reviewer and Mentor in Android and VR Nanodegrees. Co-founder of Rome VR/AR community SPVR and member of GDG-Rome and CodeInvaders Communities having fun developing VR/AR Android and Web Application. Love startups XR and life changing technologies. Work Hard Dance Hard ;)
Unit, integration, UI tests are part of the famous test pyramid, different tools were used in order to full fill it, but still today there are lot of issues about how to execute it in a proper manner and how to sync all environments (local, ci, etc) in order to satisfy all the testing criteria, and having a good reports. From IO 2018 with the announcement of project Nitrogen, Google'd like to 'nitrogenize' our tests creating a single entry point and solve all issues we had in the past. With October release of Robolectric 4.0 and androidx.test 1.0.0, both testing environments are converging on a set of common test APIs. Robolectric now supports the AndroidJUnit4 test runner, ActivityTestRule, and Espresso for interacting with UI components. Let's see togheter how to organise different levels of our 'test pyramid', with a focus to the last news/releases in order ot be ready for the Nitrogen release.
Enrico Bruno Del Zotto Senior Android Developer, TUI UK
After several years working like a mobile consultant, Enrico moved to London working as lead developer @Smartfocus.com developing an indoor positioning system based on beacons. Since May 2017 working @ TUI.co.uk where he's creating the next generation of mobile travel app for TUI customers.
As your application, product and team rapidly develops and scales, you will undoubtedly have inconsistent UI components. It’s easy for developers and designers to create new elements that differ in really small specifications. This not only creates a bad branding experience, but also the feeling that there are several apps and styles inside the same app. In this talk, we will show you some design system fundamentals, how to properly map them to the Android framework and how you can build re-usable components on top of it. We will also tackle what are the biggest problems migrating to a design system from nothing, and how you should approach it. By the end of the talk, we just hope that you go and meet your designer and start developing your design system.
Fábio Carballo N26
Fábio Carballo is one of the Android developers at the mobile bank N26, currently focusing in delivering a smooth and quality banking experience. After a nice experience in a smaller company, he understood that he wanted a challenge where he could learn on to scale a team as well as its development processes. He has a special love for those who care about improving the user experience with well grounded user research and smart interactions.
Dependency injection is a technique widely used in Android apps nowadays. It is not discussed that it allows developers to decouple components and make them more testable and modularised (and easy to maintain). Koin is a framework that makes it really easy and quick to set up, it is readable and really lightweight when it comes to compiling times. In this talk, my intention (fingers crossed!) is that the audience would run to their laptops and start using Koin straight away after it had finished (or something like that ;)). I would describe my journey using this library, and why I think that despite being so easy to use, it is so powerful.
Gema Socorro Rodriguez
I have been developing apps for 10 years, especially for Android (but a few for iOS as well). When Kotlin started becoming an option for Android development I fell in love with the language and haven't stopped using it (L). So I have been developing, testing, teaching and breathing Kotlin since then. I love the Android community and after 10 years I felt like it is time to start giving back some (although little!) of the contributions anonymous people have done to my career and my Android knowledge and that is the reason I would love to give these talks.
Jetpack Compose is an unbundled toolkit designed to simplify UI development. It combines a reactive programming model with the conciseness and ease of use of the Kotlin programming language. Join me as we dive into setting up and building apps with JetPack compose, which will soon become the most intuitive way for writing UI code on Android.
Kaustav is a mobile development enthusiast and loves speaking about the latest in mobile technology. He is currently working as a Senior Android Developer at Amadeus Software Labs where he helps develop multiple airline and airport IT applications - some with over a million downloads. He has been working on Android for the last 5 years and recently fell in love with Flutter.
Konrad Pozniak Open Source Developer, REWE International
Konrad has been developing Android apps since 2014. Currently he is an Android software developer building E-Commerce apps at REWE International AG (Vienna) and he regularly contributes to open source apps. He likes to dig deep into the details of his apps to make sure users get the best experience possible.
In Flutter, you may have heard that 'everything is a widget'. In this talk, you will first discover the different kinds of Widgets that you can use in your application. In the second part, we will dissect how the frameworks works with the Widget tree, the Render tree... and how it affects the performances.
Edouard is an Android developer since 2012, working both for companies and as a freelancer. A year ago, he discovered Flutter and totally fell in love with the new framework from Google. He has then cofounded a dedicated meetup in Paris: the Flutter Paris. He is also an organizer in the Paris Android User Group team (the GDG behind the Android Makers conference).
Many successful Android apps offer multiple features and components that work together to provide a great user experience. Although we want all prospective users to have the ability to install our app, this may not be possible due to limitations in storage and network connection, especially in emerging markets. What if we can deliver new features selectively post-installation, reducing the initial app size, and allowing us to target a wider audience?
Raul Hernandez Lopez Twitter
I am originally from Valencia (Spain), but so far I've lived in Belgium and for a while now in London (UK).
I consider myself a continuous learner, very enthusiastic about the Android platform & Kotlin language specifically. Love running, traveling, attending music live metal gigs or reading books.
I work as a Senior Software Engineer at Twitter, and I've participated in both Periscope and Twitter Android apps, being the Technical lead on Dynamic delivery for Twitter Android.