Posted by Luli Perkins, Developer Relations Program Manager
The May edition of #AndroidDevJourney spotlights five Android developers from around the world and each of their own unique experiences. In January we started the #AndroidDevJourney series to highlight members of the Android developer community on our Twitter account. As we reach the end of our six month journey, be sure to check out all the great developers we’ve featured on Twitter.
Tell me about your journey to becoming an Android Developer and how you got started.
My journey in becoming an Android Developer started in 2015, during my final year of engineering school in Paris. My friends and I created a startup that allows you to easily create social events. As an Android user, my mission was to create an Android app. The experience made me excited to build apps, brainstorm products, engage with users; understand metrics and the process of innovation.
Initially, learning to code in Android was a tool to help reach my goal: to create a product that would be used by the largest audience possible. My passion to develop on Android, however, gave me the patience and perseverance needed to self-improve and become an expert. I realized the key to success is consistency: that step-by-step progress allows big achievements.
Although I entered the Android field by chance, I feel very grateful to have specialized in a technology which allows me to reach the huge Android marketplace, with an incredibly diverse user base. I believe when you love working on products, specifically in B2C business, being a client software engineer is very appealing. You’re in a unique position where you can interact with customers, as well as product, design, backend, and data scientists.
After receiving my Master's, I took intensive Java training and worked at a chic software consultant engineering company, in the famous avenue Les Champs & Elysee. Whilst I learned a lot from this experience, I wanted to give entrepreneurship another shot so I left Paris for San Francisco and opened a startup called Tribe, with friends. Tribe consisted of 10 talented French entrepreneurs aiming to re-invent the video chat messaging app. This is where I started to specialize in live video streaming technology and - more precisely - WebRTC.
Tribe gathered thousands of upvotes on Product Hunt and was awarded several times by worldwide institutions including Google and Time, and also featured in various international publications such as TechCrunch, Business Insider, and more! Our hard work and determination led us to be backed by Sequoia and Kleiner Perkins Capital. This experience was utterly unique: we all were working and living in the same house with a common goal to create an everlasting impact! With this experience, I learned the power of collective intelligence; that people will go far in learning how to work with each other.
After three years of entrepreneurship, we made the hard decision to discontinue Tribe and I decided to return to Europe. During this time, Twitter contacted me for my skills in live video streaming technology. As my passion for social science, politics and economy was growing, Twitter interested me greatly as it’s the only social media platform that enables public conversation; its main focus is to highlight and discuss what’s happening in the world. Considering myself a “citizen of the word”, I found that its purpose resonated strongly with me: a global inclusive platform, where everyone has a voice. What I love the most about working at Twitter is that Twitter has a unique position by being relatively small as a company, but has a huge impact on society.
My Twitter journey began working on a live video streaming product on Periscope, called Hydra. After sunsetting Periscope, my team began to wonder what to do with the live streaming publishing pipeline technology that we built. We then partook in a brainstorm session, concluding that audio was an under-used and under-valued media that could enhance and drive Twitter’s public conversation.
We started small with one developer on each platform, reaping the benefits of being a small team that could iterate and move fast. Today, the team has vastly expanded and I am proudly operating as the Android Space Tech Lead. Twitter Space has now become one of the company's top priorities: we have only just started to witness the powerful impact of live audio, with a social media network set to drastically change social behavior.
What’s one shortcut, tip, or hack you can’t live without?
Learning how to use Android Studio property is a must! There are many hidden tools in Android Studio that can help developer velocity.
What's the one piece of advice you wish someone would have given you when you started on your journey?
1- Learn English fluently
2- Don’t be afraid to make mistakes
3- Work on something you love!
That was a story from a long time ago. I was learning Java when I got into college in 2008. One day in 2010, I was just browsing the Internet as usual, and found a course talking about how to learn Android development. That was the first time I heard about Android. It was a brand-new mobile system for me, besides, Java just happened to be the designated programming language for it. I was very interested at that time, and made a decision to get onboard.
Now I am an Android GDE and work for Microsoft where I continue my Android development journey. I also published a book in 2014 which is the best-selling Android programming book in China. I feel so fortunate to have made that decision in 2010.
I really do have one. Use Ctrl+W to expand selection in Android Studio.
This is absolutely my favorite one. I often have some conditions where I need to copy some part of code to somewhere else. Dragging to select is the last thing I want to do. With Ctrl+W, I can always select the part of the code just as I wanted quickly and conveniently. Thanks to Google and JetBrains.
I joined the Microsoft Edge mobile team recently. It is an Android project, but most of the code was written in C++. I was struggling with it at first, because I had never written C++ code before.
Now, I have started learning C++ programming from scratch. It is still a happy journey to learn something new. But I wish someone would have given me this advice when I started with Android: C++ is also an important part of Android development.
I started my career after university in Silicon Valley as a Java backend engineer and was curious about mobile, and wanted to give it a try. At my first job, I was working at Intuit on Mint and asked the mobile PM if I could help out with either the iOS or Android app.
At the time I was an iOS user so I was leaning towards iOS, but upon research I saw that Android was dominating in the global market. Since I already knew Java, the barrier of entry was lower.
I then joined the Mint mobile team and learned Android development on the job, converted to being an Android user and never looked back :-). Since then I’ve led both Android and cross-functional teams, and enjoy collaborating across functions to deliver great mobile experiences to users.
The “Design View” in Android Studio where I can quickly see what screens look like in night mode, landscape, and small devices while developing screens, helps save time.
In the Compose world, Interactive Mode and Deploy Preview are quite handy in quickly iterating over them as well. I am looking forward to performance improvements here.
A second tip would be to use the Accessibility Scanner to help identify accessibility improvements. This is another great tool that can give you quick wins!
To lean into the Android community. I relied solely on Android documentation to learn when I started, and didn’t know about the supportive community and content that surrounds it until later!
Reading blog posts, watching/giving talks, and connecting with other developers accelerated my learning, and I can’t recommend it enough.
My Android journey began with a G1, the very first commercialized Android smartphone. It had a built-in keyboard, a joystick and hard buttons, to me it was amazing. At the time I was still in engineering school and hadn't even developed in Java yet but I had the opportunity to help organize meetups with the Paris Android User Group.
That’s how I started to meet people and saw what they were trying to build. Everyone I met at the time was really open minded and I wanted to be a part of this community and contribute to this platform by building beautiful apps too.
I started my professional journey back in 2012 and had the opportunity to work for editors and in agencies too. Today I’m working at Dashlane and I’m still organizing events with the Paris Android User Group :)
I used to mostly rely on Find Usage ⌥F7 to navigate code base, but then I started using Go to Implementation ⌥⌘B. It is really *really* helpful to jump to any interface's implementation right away. It is a "more advanced" shortcut, but it is one that will make navigating a codebase with composition, contract, multi-modules, etc. really smooth. Especially when an interface and implementation can be far apart in the file hierarchies.
Find what works for you to keep learning. Huyen Tue Dao gave an amazing talk with a lot of advice on this, check it out here. She covered talks, to podcasts, articles, newsletters, Twitter, community, sketchnotes, and more. She shared a lot of ways to stay up to date and gave us the honest truth: you just can't keep up with everything ^^ So find what best fits you and your lifestyle to keep improving and learning.
There will always be highs and lows in your career; knowing people who will support you is why you may be able to overcome challenges in the long run. And that is why, I would recommend you to take a look at your local developer community. Those are perfect spots to learn, share what you learn, and meet people who understand what you're doing. It’s perfect to gain knowledge, take a step back, share advice and experiences, and support each other. We're human first and foremost, and most solutions are human too.
My path to becoming an Android developer started my senior year of high school when I Googled “What do you need to do to be a computer programmer?” We had a class assignment about researching a career. I had always been interested in coding. As a kid, I played way too many video games and wanted to learn how they worked. Then, when I got into high school, I started teaching myself to code from reading blogs.
I grew up poor in East Los Angeles and went to a school that had little money with very little access to quality technology. I didn’t know anyone else who was coding, but the Internet said to be a developer, you needed to go to college and get a bachelor’s degree. So I went and studied computer science, learning C++, JavaScript, Java, and other languages.
In 2014, I went to a panel at my community college and met AnnMaria, a co-founder of 7 Generation Games, where we develop educational games aimed at closing the math gap, especially within Latino and Indigenous communities. I applied for an internship, because I wanted to be part of making software for good. Initially, we were just making games for computers or to run on the web. But as technology evolved and we expanded to mobile, it was really important that we were developing for Android because those are the primary devices people are using in many of the communities we’re in. Because of my background, developing for Android was especially important to me because I know how valuable quality and accessible technology is for students. In 2016, I offered to take the lead on our first Android project, a game - now a series - called Making Camp. I downloaded Android Studio, cracked open the documentation and got to work.
When I graduated with my bachelor’s in 2018, I joined 7 Generation Games full-time. I am now our lead Android developer and just put our 10th app into Google Play.
On Android, I primarily work in WebView. When trying to execute JavaScript code on the WebView from outside the page, it is easily facilitated by passing a string in Java with the code you want to execute. But the reverse is less common. My hack for this is if you want the app to react to JavaScript code, you have to create an event to catch the error returned from the page, then parse the string for what you wanted to do and react outside the WebView with that information.
Don't be afraid to ask questions. Don't think everyone knows more than you because they don't. That said, the most useful piece of advice I was given was to read documentation. It might seem simple, but I’ve been surprised by how often people don’t. That’s advice I would give to anyone starting out.
The Android Developer community prides itself in its inclusivity and welcomes developers from all backgrounds and stages of life. If you’re feeling inspired and want to learn more about how to become a part of our community, here are a few resources to help get you started.
Dive into developer.android.com
Follow us on Twitter
Subscribe to our YouTube channel
The Google Developer Groups program gives developers the opportunity to meet local developers with similar interests in technology. A GDG meetup event includes talks on a wide range of technical topics where you can learn new skills through hands-on workshops.
Join a chapter near you here.
Founded in 2014, Google’s Women Techmakers is dedicated to helping all women thrive in tech through community, visibility and resources. With a member base of over 100,000 women developers, we’re working with communities across the globe to build a world where all women can thrive in tech.
Become a member here.
The Google Developers Experts program is a global network of highly experienced technology experts, influencers and thought leaders who actively support developers, companies and tech communities by speaking at events, publishing content, and building innovative apps. Experts actively contribute to and support the developer and startup ecosystems around the world, helping them build and launch highly innovative apps.
Learn more about the program here.
Java is a registered trademark of Oracle and/or its affiliates.
Posted by Jon Markoff, Staff Developer Advocate & Sean Smith, Technical Program Manager
As a developer, are you struggling to figure out when to build security threat protection into your roadmap? Integrating security into your app development lifecycle can save a lot of time, money, and risk. That’s why we’ve launched Security by Design on Google Play Academy to help developers identify, mitigate, and proactively protect against security threats.
The Android ecosystem, including Google Play, has many built-in security features that help protect developers and users. The course Introduction to app security best practices takes these protections one step further by helping you take advantage of additional security features to build into your app. For example, Jetpack Security helps developers properly encrypt their data at rest and provides only safe and well known algorithms for encrypting Files and SharedPreferences. Are you concerned about using Rooted or compromised devices that may allow a bad actor to use your app in a non-sanctioned way? The SafetyNet Attestation API is a solution to help identify potentially dangerous patterns in usage. There are several common design vulnerabilities that are important to look out for, including using shared or improper file storage, using insecure protocols, unprotected components such as Activities, and more. The course also provides methods to test your application, to keep apps safe in the wild after launch. Finally, you can set up a Vulnerability Disclosure Program (VDP) to engage security researchers to help.
In the next course, you can learn how to integrate security at every stage of the development process by adopting the Security Development Lifecycle. The SDL is an industry standard process and in this course you’ll learn the fundamentals of setting up a program, getting executive sponsorship and integration into your development lifecycle.
Threat modeling is part of the Security Development Lifecycle, in this course you will learn to think like an attacker to identify, categorize, and address threats. By doing so early in the design phase of development, you can identify potential threats and start planning for how to mitigate them at much lower cost and create a more secure product for your users.
Improving your app’s security is a never ending process. Sign up for the Security by Design module where in a few short courses, you will learn how to integrate security into your app development lifecycle, model potential threats, and app security best practices into your app, as well as avoid potential design pitfalls.
Posted by The Modern Android Development Team
This year’s Google I/O brought lots of updates for Modern Android Development. Here are the top 3 things you should know:
In recent months, several Jetpack libraries reached stable, beta or were just launched in alpha. Here are some the highlights:
To find out more about what’s new, check out the What’s new in Jetpack, What’s new in Compose and for a deep dive into Macrobenchmark: Measuring Jank and Startup with Macrobenchmark.
Debugging your application becomes easier with all the inspectors provided by Android Studio Arctic Fox: for background work, like understanding what’s the status of your WorkManager workers, use Background Task Inspector; for UI use Layout Inspector, for both Android Views and Compose; for database debugging use Database Inspector.
To see the inspectors in action, check out What’s new in Android development tools.
We keep improving Kotlin on Android at all levels, from tools to APIs, and giving you different ways to learn. Kotlin Symbol Processing (KSP), now in alpha, provides a simplified compiler plugin API that can run up to 2 times faster than KAPT. Together with JetBrains, we’re addressing performance issues in the IDE and we’re seeing up to 20x faster auto-import suggestions. We added StateFlow support to DataBinding and new APIs for observing Flows in the UI without DataBinding. To learn about all the improvements we’ve made for Kotlin, check out the State of Kotlin on Android talk:
StateFlow
Flow
You can find all of this year’s Google I/O talks covering Modern Android Development in this playlist:
Posted by Greg Hartrell, Head of Product Management, Games on Android & Google Play
With a surge of new gamers and an increase in time spent playing games in the last year, it’s more important than ever for game developers to delight and engage players. To help developers with this opportunity, the games teams at Google are back to announce the return of the Google for Games Developer Summit 2021 on July 12th-13th.
Hear from experts across Google about new game solutions they’re building to make it easier for you to continue creating great games, connecting with players, and scaling your business. Registration is free and open to all game developers.
Register for the free online event at g.co/gamedevsummit to get more details in the coming weeks. We can’t wait to share our latest innovations with the developer community.
Posted by Karen Ng, Director, Product Management & Jacob Lehrbaum, Director of Developer Relations, Android & Play
As Android developers, we are all driven by building experiences that delight people around the world. And with people depending on your apps more than ever, expectations are higher and your jobs as developers aren’t getting easier. Today, at Google I/O, we covered a few ways that we’re trying to help out, whether it be through Android 12 - one of the biggest design changes ever, Jetpack, Jetpack Compose, Android Studio, and Kotlin to help you build beautiful high quality apps. We’re also helping when it comes to extending your apps wherever your users go, like through wearables and larger-screened devices. You can watch the full Developer Keynote, but here are a few highlights:
The first Beta of Android 12 just started rolling out, and it’s packed with lots of cool stuff. From new user safety features like permissions for bluetooth and approximate location, enhancements to performance like expedited jobs and start up animations, to delightful experiences with more interactive widgets and stretch overscrolling, this release is one of the biggest design updates to Android ever. You can read more about what’s in Android 12 Beta 1 here, so you can start preparing your apps for the consumer release coming out later this year. Download the Beta and try it with your apps today!
For the last few years, we’ve been hard at work modernizing the Android development experience, listening to your feedback to keep the openness–a hallmark of Android, but becoming more opinionated about the right way to do things. You can see this throughout, from Android Studio, a performant IDE that can keep up with you, to Kotlin, a programming language that enables you to do more with less code, to Jetpack libraries that solve the hardest problems on mobile with backward compatibility.
The next step in this offering is Jetpack Compose - our modern UI toolkit to easily build beautiful apps for all Android devices. We announced Compose here at Google I/O two years ago and since then have been building it in the open, listening to your feedback to make sure we got it right. With the Compose Beta earlier this year, developers around the world have created some truly beautiful, innovative experiences in half the time, and the response to the #AndroidDevChallenge blew our socks off!
With the forthcoming update of Material You (which you can read more about here), we’ll be adding new Material components as well as further support for building for large screens, making it fast and easy to build a gorgeous UI. We’re pressure testing the final bits in Compose and will release 1.0 Stable in July—so get ready!
Android Studio Arctic Fox (2020.3.1) Beta, the latest release of the official powerful Android IDE, is out today to help you build quality apps easier and faster. We have delivered and updated the suite of tools to empower three major themes: accelerate your UI design, extend your app to new devices, and boost your developer productivity. With this latest release you can create modern UIs with Compose tooling, see test results across multiple devices, and optimize debugging databases and background tasks with the App Inspector. We’re also making your apps more accessible with the Accessibility Scanner and more performant with Memory Profiler. And for faster build speeds, we have the Android Gradle plugin 7.0, new DSL, and variant APIs. You can learn more about the Android Studio updates here.
Kotlin is now the most used primary language by professional Android developers according to our recent surveys; in fact, over 1.2M apps in the Play Store use Kotlin, including 80% of the top 1000 apps. And here at Google, we love it too: 70+ Google apps like Drive, Home, Maps and Play use Kotlin. And with a brand-new native solution to annotation processing for Kotlin built from the ground up, Kotlin Symbol Processing is available today, a powerful and yet simple API for parsing Kotlin code directly, showing speeds up to 2x faster with libraries like Room.
With Android Jetpack, we built a suite of libraries to help reduce boilerplate code so you can focus on the code you care about. Over 84% of the top 10,000 apps are now using a Jetpack library. And today, we’re unpacking some new releases for Jetpack, including Jetpack Macrobenchmark (Alpha) to capture large interactions that affect your app startup and jank before your app is released, as well as a new Kotlin Coroutines API for persisting data more efficiently via Jetpack DataStore (Beta). You can read about all the updates in Android Jetpack here.
The best thing about modern Android development is that these tools have been purpose built to help make it easy for you to build for the next era of Android, which is all about enabling devices connected to your phone–TVs, cars, watches, tablets–to work better together.
Starting today, we take a huge step forward with wearables. First, we introduced a unified platform built jointly with Samsung, combining the best of Wear and Tizen. Second, we shared a new consumer experience with revamped Google apps. And third, a world-class health and fitness service from Fitbit is coming to the platform. As an Android developer, it means you’ll have more reach, and you’ll be able to use all of your existing skills, tools, and APIs that make your mobile apps great, to build for a single wearables platform used by people all over the world.
Whether it’s new Jetpack APIs for Wear tailored for small screens and designed to optimize battery life, to the Jetpack Tiles API, so you can create a custom Tile for all the devices in the Wear ecosystem, there are a number of new features to help you build on Wear. And with a new set of APIs for Health and Fitness, created in collaboration with Samsung, data collection from sensors and metrics computation is streamlined, consistent, and accurate–like heart rate to calories to daily distance–from one trusted source. All this comes together in new tooling, with the release of Android Studio Arctic Fox Beta, like easier pairing to test apps, and even a virtual heart rate sensor in the emulator. And when your app is ready, users will have a much easier time discovering the world of Wear apps on Google Play, with some big updates to discoverability. You can read more about all of the Wear updates here.
When it comes to larger screens -- tablets, foldables, and Chrome OS laptops-- there is huge momentum. People are increasingly relying on large screen devices to stay connected with family and friends, go to school, or work remotely. In fact, there are over 250 million active large screen Android devices. Last year, Chrome OS grew +92% year over year–5 times the rate of the PC market, making Chrome OS the fastest growing and the second-most popular desktop OS. To help you take advantage of this momentum, we’re giving you APIs and tools to make optimizing that experience easier: like having your content resize automatically to more space by using SlidingpaneLayout 1.2.0 and a new vertical navigation rail component, Max widths on components to avoid stretched UIs, as well as updates to the platform, Chrome OS, and Jetpack windowmanager, so apps work better by default. You can learn more here.
Google Duo's optimized experience for foldable devices
This is just a taste of some of the new ways we’re making it easier for you to build high quality Android apps. Later today, we’ll be releasing more than 20 technical sessions on Android and Play, covering a wide range of topics such as background tasks, privacy, and Machine Learning on Android, or the top 12 tips to get you ready for Android 12. If building for cars, TVs, and wearables is your thing, we got that covered, too. You can find all these sessions - and more - on the I/O website. Beyond the sessions and news, there’s a number of fun ways to virtually connect with Googlers and other developers at this year’s Google I/O. You can check out the Android dome in I/O Adventure, where you can see new blog posts, videos, codelabs, and more. Maybe even test out your Jetpack Compose skills or take a virtual tour of the cars inside our dome!
Posted by Oscar Wahltinez, Developer Relations Engineer, Google
Users are seeing more value in larger screens, and the benefits of doing more with a single device. Apps designed for large screen devices increase those benefits even further.
The ability to fold a screen offers better ergonomics for large devices. When folded, you can fit a tablet-sized screen in your pocket — unlocking utility that was previously unavailable on a portable device. Thinking about our app ecosystem, we’re excited because this is a hardware shift that is driving new expectations around what you can do from a handheld device. We see the demand for larger screens extending to tablets too, which have greatly increased in popularity, given the similar app experience.
Technological breakthroughs and our understanding of ergonomics have played a role in device form factors.
In this blog post, we'll explain what you should do to prepare your apps for large screens, and how recent updates have made developing your app easier. But first, let’s talk about what we're seeing with large screens — and why you should optimize your app.
There are many ways to use foldable devices, including a number of postures illustrated here.
Over the past year, we’ve seen device makers release exciting new foldable and tablet devices. Demand has increased as users are doing more than ever from these devices. Altogether, developers can reach more than 250 million active foldables, tablets, and Chromebooks by building for Android large screen devices today. Sales of tablet devices grew 16% in 2020 with analysts expecting more than 400 million Android tablets by 2023, and foldables are redefining what’s possible on premium devices. Android apps can also run on ChromeOS, which is now the second most popular desktop OS.
Larger screens are changing how users interact with their device. These devices allow you to edit slide decks while looking at notes, look up restaurant recommendations while planning a night out, or watch a video while chatting with friends. Let’s talk about base-level support — features an app must support to be “large screen ready”. There are three main areas of focus when it comes to large screen readiness:
They’re summarized below, but make sure to check out our large screen app quality guidelines for the full details.
The first step is to ensure that your app is designed for large screens. To make this easier, we’ve defined specific window size breakpoints and device classes for you to optimize for. Add tablet layouts for displays where the shortest dimension is >600dp, and ensure your apps go edge-to-edge. Developers should also plan for their app to be used in both portrait and landscape modes, since larger screens are more likely to be used in landscape. We’ve got material adaptive components that we’ll be talking about to help developers make better use of the increased space.
Since foldable and large screen devices have a variable window size, adaptive layouts work better than splitting experiences based on screen size.
Going into split screen (or multi-window mode) and gestures like drag and drop are starting to become natural interactions that users expect to work seamlessly in their large screen devices. Your apps should handle multitasking seamlessly by being resizable. Handling folding and unfolding events and planning for your app to be in multi-window mode prevents your app from becoming letterboxed.
Drag and drop can be a natural interaction in large screen layouts, even within the same app.
By enabling multiple instance support, users can run multiple copies of your app side-by-side. The let’s users compare two products, reference notes while writing a document or maybe keeping your calendar in view as you are planning an event.
Since many people use larger screens for productivity, tablets should support basic keyboard, mouse and stylus usage.
Users of Android apps on ChromeOS devices often have a keyboard; apps should ensure that standard keyboard navigation and shortcuts are available to provide improved accessibility.
Several UI components across Jetpack and Material Design libraries have been updated to help you build a flexible user experience to scale your phone's UI to a larger screen.
One of the most common adaptive layouts to optimize your app for large screens is implementing a list-detail UI. For example, a messaging app that lists messages on one side with the message detail on the other.
SlidingPaneLayout automatically adapts to configuration changes to provide a good user experience across different layout sizes.
UIs that would be one top of each other on a smaller screen can now easily lay out side-by-side. For this, you can use the updated version of the SlidingPaneLayout library — updated to support a two-pane style layout, SlidingPaneLayout uses the width of the two panes to determine how to lay out the UI. It does that by automatically determining if it can lay out side-by-side based on the content width and available space. For example, if the list pane is measured to have a minimum width of 200dp and the detail pane needs 400dp, then the SlidingPaneLayout automatically shows the two panes side by side if it has at least 600dp of width available.
SlidingPaneLayout
SlidingPaneLayout is used in our sample application IOSched.
We have updated the library to recognize and adapt to folds and hinges . For example, if you are on a device with hinges that blocks part of the screen, it will automatically place your content on either side.
We have also introduced lock modes,which allow control over the swipe behavior when panes overlap (programmatically switching is also supported). For example, to prevent users from swiping to an empty pane you may want them to have to click on a list item to load information about that pane, but allow them to swipe back to the list. On a foldable device or tablet that has room to show both views side by side, the lock modes are ignored.
A vertical Navigation Rail is functionally equivalent to Bottom navigation, and provides a more ergonomic navigation experience on larger screens. As you scale your UI, NavRail supports better reachability, since larger screens tend to be held by the side, whereas on the phone users are probably holding the device from the bottom.
NavRail automatically changes the location of the navigation menu depending on configuration changes.
For example, NavRail can help if vertical scrolling is key to your app. In those cases, a bottom navigation bar decreases the amount of content that’s visible, especially when tablet devices are being used in landscape orientation.
We've also made updates across multiple other components. One of the biggest pitfalls when apps move to a larger screen is when UIs are stretched edge-to-edge across the whole screen. To help prevent this, we’ve added default Max Width values to certain Material Components where this commonly happens, for example:
We will add more components to this list in the future. These changes provide opinionated defaults to help your apps adapt and look better out of the box on large screen devices. Find more information about using size constraints with components in the Material Design guidelines.
Most foreground UI elements should have a maximum width value.
Beyond component updates to help you scale your UI, we also have the WindowManager Jetpack library to help you build better experiences on these devices. This library is now available in alpha and it provides a common API surface for supporting different device types, starting with foldables and tablets.
You can use WindowManager to detect display features such as folds or hinges. It also gives information about how the display feature affects your app, so you can create an optimal experience. For example, reacting to the foldable device state changes when the device is folded into tabletop mode while the user is watching a video.
Applications should seamlessly adapt to a growing number of device configurations.
WindowManager also provides a couple of convenience methods to retrieve the current and maximum WindowMetrics information in a backward compatible way, starting from API level 14.
Your app needs to determine the screen or display size in order to render content appropriately for each device. With the introduction of the WindowMetrics API, a number of methods related to display size have been deprecated. For a backwards-compatible replacement, you should use the Window Manager Jetpack library.
Android 10 introduced the possibility to have multiple resumed apps running at the same time, with a single “top resumed” application. Most applications benefit from this change without the need of updates. The most notable exception is if your application uses an exclusive resource like the microphone or the camera. See our previous blog post for more details.
Optimizing your app for large screens can improve the experience for your users, as well as deliver on business results. We’re seeing an increased number of apps take advantage of the opportunities with large screens on Google Play. As an example, Google Duo implemented tablet and foldable support to enhance their user experience, and saw an increase in app ratings and user engagement.
Google Duo's optimized experience for foldable devices, such as the Samsung Galaxy Z Fold2
In addition to Google Duo's enhanced user experience, we've modernized many additional apps to use adaptive layouts so they can take advantage of large screens and foldable devices:
To learn more about foldables and large screen devices, see the following resources:
Posted by Paris Hsu, Product & Design, Android
Android Studio Arctic Fox splash screen
Note: As we announced late last year, we've changed our version numbering scheme to match the number for the IntelliJ IDE that Android Studio is based on, 2020.3, plus our own patch number, as well as a handy code name to make it easier to remember and refer to. We'll be using code names in alphabetical order; the first is Arctic Fox, now in beta, and the next is Bumblebee, now in canary.
Today, we are excited to unveil Android Studio Arctic Fox (2020.3.1) Beta ❄️🦊: the latest release of the official Android IDE focuses on Design, Devices, and Developer Productivity. It is available for download now on the beta channel for you to try out all the new features launched this week during Google I/O 2021!
Inspired by developer communities around the world, who despite having to adjust to challenges this past year still continue to create amazing and innovative apps, we have delivered and updated the suite of tools to empower three major themes:
In short, this is an upgrade you do not want to miss! ✨ There are many more features and improvements surrounding these themes you can find in this Beta version, so read or watch below for further highlights. Or, skip the reading, download Android Studio Arctic Fox (2020.3.1) Beta in the beta channel and try out the latest features yourselves today! Give us feedback and help us to continue to focus on the areas you care about most in the next version of Android Studio.
What's new in Android development tools (I/O 2021)
Below is a full list of new features in Android Studio Arctic Fox (2020.3.1) Beta, organized by the three major themes:
Compose Preview
Compose Layout Inspector
Using Deploy to device from preview and gutter icon
Editing numbers and strings update immediately in the preview and on device
Accessibility Test Framework Scanner in Layout Editor
Wear OS emulator pairing assistant dialog
Phone + Watch emulators paired successful state
Wear OS system image
Heart Rate Sensor for Wear OS Emulators
Google TV remote controls
Google TV system image
Android Automotive OS Sensor replay
Extended controls in the Emulator tool window
Background Task Inspector
Test matrix running tests across multiple devices in parallel
Memory Profiler: recorded Java / Kotlin Allocations
To recap, Android Studio Arctic Fox (2020.3.1) Beta includes these new enhancements & features:
You might also have seen other new features at I/O which are not included in the list above; they are included in Android Studio (2021.1.1) Bumblebee Canary since these features were not quite ready for a beta channel release:
With this exciting release, the Android Studio team also presented a series of sessions about Android Studio. Watch the following videos to see the latest features in action and to get tips & tricks on how to use Android Studio 📺:
Android Studio Arctic Fox (2020.3.1) is a big release, and now is a good time to download and check out the Beta release to incorporate the new features into your workflow. The beta release is near stable release quality, but as with any beta release, bugs may still exist, so, if you do find an issue, let us know so we can work to fix it. If you’re already using Android Studio, you can check for updates on the Beta channel from the navigation menu (Help > Check for Update [Windows/Linux] , Android Studio > Check for Updates [OS X]). When you update to beta, you will get access to the new version of Android Studio and Android Emulator.
As always, we appreciate any feedback on things you like, and issues or features you would like to see. If you find a bug or issue, please file an issue. Follow us -- the Android Studio development team -- on Twitter and on Medium.