Android 7.0 Nougat statue copy

Yesterday the Android team went live on Reddit to field any questions users had about Android 7.0 Nougat’s final form. This Ask-Me-Anything event on r/androiddev saw developers discussing a wide variety of rumors and concerns, from OEM updates to the future of Material Design to the vanishing of Night Mode. The thread was met with strong interest, which has prompted the team to announce that they’ll be doing more AMAs going forward.

The following participants represented the Android team for this AMA:

  • Rachad Alao: Manager of Android Media framework team (Audio, Video, DRM, TV, etc.)
  • Chet Haase: Lead/Manager of the UI Toolkit team (views & widgets, text rendering, HWUI, support libraries)
  • Anwar Ghuloum: Engineering Director for Android Core Platform (Runtime/Languages, Media, Camera, Location & Context, Auth/Identity)
  • Paul Eastham: Engineering Director for systems software and battery life
  • Dirk Dougherty: Developer Advocate for Android (Developer Preview programs, Android Developers site)
  • Dianne Hackborn: Manager of the Android framework team (Resources, Window Manager, Activity Manager, Multi-user, Printing, Accessibility, etc.)
  • Adam Powell: TLM on UI toolkit/framework; views, lifecycle, fragments, support libs
  • Wale Ogunwale: Technical Lead Manager for ActivityManager & WindowManager and is responsible for developing multi-window on Android
  • Rachel Garb: UX Manager leading a team of designers, researchers, and writers responsible for the Android OS user experience on phones and tablets
  • Alan Viverette: Technical Lead for Support Library. Also responsible for various areas of UI Toolkit
  • Jamal Eason: Product Manager on Android Studio responsible for code editing, UI design tools, and the Android Emulator.

We’ve gathered up the key points of the discussion for easy perusal, so keep reading for the full scoop on Nougat from the Android team themselves!

How are OEMs adapting Nougat code?

We can’t share who or how many, but we are working with OEMs in parallel with Developer Previews to get their devices updated as soon as possible.

Will Android apps get official Swift support as rumored?

Anwar: Nope, not happening.

Will Java continue to be the language of choice going forward?

Anwar: We don’t have any plans to move to a new language. Java has a lot of advantages to it and the versions 8, 9, and 10 have some pretty interesting stuff for developers. We are planning to track more closely in time to the Java language standard. What kind of features are you looking for in a programming language for Android?

How long will Material Design last?

Adam: if it starts growing mold we’ll need to look at a replacement.

Alan: No, we’d re-grout the areas between the whitespace. I think it would be fine. But seriously, I think there’s plenty of room for Material to continue to grow and adapt. We’ve seen new widgets introduced, specs refined and changed. From a framework perspective, it’s been interesting to figure out how to evolve the spec without breaking the design of existing Material apps.

Chet: One element about Material that might help its longevity is its reliance on plain, white assets that can then be tinted according to theme colors that make sense for the app. This strikes me as a more future-proof approach than some bold, trendy look like, say, birch-wood-grained that is going to look bold and dated soon.

Rachel: All this to say, Material Design isn’t going away anytime soon. The fundamentals – motion, expressing your brand, clean and clear layouts – are good bets for long-lasting behaviors you’d want any app to follow.

Material Design isn't going away anytime soon.

Will Google Camera’s viewfinder rotation lag be fixed?

Anwar: We’ve been working on this and I think you’ll be pleased with what you see in the not too distant future.

Will the Nexus 9 get Vulkan support?

Anwar: N9 will not be getting Vulkan drivers, but Pixel C has had them since the second N Developer Preview.

What is causing video lag on the Nexus 6?

Rachad: We are looking into this. We did notice some jank while scrolling comments that are being loaded for the very first time during Youtube video playback on Nexus 6 running Android M. The jank does seem to improve when forcing GPU composition. Youtube on Android 6.0 uses SurfaceViews for video playback because it consumes less power than using TextureViews. Forcing GPU composition improves comment scrolling smoothness at the cost of power. Stay tuned.

What happened to Night Mode and will it make it to the final version of Nougat?

Alan: This one has been my pet feature for a while… So there were two “night mode” features in N DP that you might be referring to: dark theme (via -night qualifier) and screen tinting.

The former, dark theme, was a modification to Material that would automatically switch between light and dark variants based on UiModeManager’s night mode setting. Which was awesome, and I know a lot of people really liked seeing a dark theme in Settings; however, in both M and N the dark theme feature had to be reverted because of ecosystem problems. As simple as we tried to make it, implementing dark theme meant doing twice as much design work and twice as much verification that visual styling was implemented correctly. It wasn’t a good allocation of design and engineering resources. In many places, like WebView, it simply wasn’t possible to convert content to a dark theme while preserving the content author’s original intent. Leaving a half-working feature in the platform, where developers would be expected to support it, wasn’t acceptable. So I’ve had to personally kill the feature twice, and ultimately it’s been for the benefit of the platform.

The feature needed serious work.

HOWEVER! We were still able to launch dark theme in support library, so apps can still benefit from the super-simple -night qualifier.

The latter, screen tinting, was built on top of the display accessibility APIs introduced in M. This was another “ultimately for the benefit of the platform” issue… The feature needed serious work, both on the low-level graphics driver side to implement tinting efficiently and the high-level TwilightManager side to correctly implement automatic shifts between day and night. It wouldn’t be ready in time for N, and it wasn’t acceptable to leave a half-working feature, so we had to pull it. It have been really rewarding to see positive feedback for the feature, though, and I would love to see it in a future release.