Android App Development For Foldable Phones
Artem Tkachenko, Android solution architect, MobiDev
Fancy looking, innovative and extending users experience - that's how fold smartphones could be described. And it seems this time flexible screens could make their way to consumer pockets. World's top smartphone manufacturing companies like Samsung, Huawei, Xiaomi are heavily investing into the topic.
So let's explore what could change (or had already changed) with Android application development and is your app well optimized to work on a folding tablet?
Developing apps to support foldable screens
As the number of devices grows, there will be a need to provide users with a large screen experience. And keeping continuity as a user transitioned between screens.
From the Android development perspective, supporting foldable smartphones means the app must be transitioned from cover to full-fledged screen seamlessly with using all tablet-sized screen advantages for better productivity. Android SDK provides the same approach for this functionality as change portrait/landscape orientation.
However, there are no markers that might help with unfolded screen identification. The only way to identify the full-fledged screen is to track the display dimension. Moreover, developers are not aware whether there are two separate displays on the device: cover and main like on Samsung Galaxy Fold or there is a single screen that can be unfolded into a tablet-sized display like on Huawei Mate X.
Also, there are some hardware limitations of using two separate displays simultaneously even for different applications. On devices like Samsung Galaxy Fold Android handles which display is currently in use and shuts down another display automatically.
Probably, the biggest challenge with folds is to design a new user interface in order to increase productivity by using the full screen. To do it proper, the app should be designed to operate in different modes with separate user interfaces (GUI). And it takes time and effort, as well as budget.
If there's no separate interface for big screens, you may set resizeableActivity=false parameter for the application. So, Android will not resize the app to a new resolution. It will show the same app size, and the rest of the screen space will be filled with some background color. Which means, users won't be able to benefit from folds with those apps.
Android applications compatible with Multi-Window feature
Originally a multi-window feature was not designed for foldable smartphones, but for any big screen devices, like tabs, etc. Since 2016 (Android N), software development kit allowed to create multi windows mode for applications. But only one active app at a time was allowed until now.
Since Android 10 (API level 29), multiple applications could be resumed at the same time. This kind of innovation doesn't need your app to be redesigned.
In case of running several active applications at the same time, and those apps to be using any shared resources (like cameras), some additional development efforts should be used to manage those cases properly.
What else should be considered while developing applications for fold
UI/UX and folds
As we mentioned previously, there's a need for a separate user interface based on folds screen size. But different manufactures are targeting the market with various resolutions, sizes and display number. For example, Samsung Galaxy Fold has two displays: Main (1536 x 2152) and Cover (840 x 1960). And Huawei Mate X technically has only one, which could be folded (2480 x 1148 for front panel, 2480 x 892 for back panel) and unfolded (2480 x 2200).
So, the form factor can vary as never before: from high long 21:9 to 1:1. While developing apps for Android 10 and higher, there's a support of a range of screen ratio. If the app is not supporting some of them, indicators "maxAspectRatio" as well as "minAspectRatio" could be used.
Quality assurance and foldables
Such variety brings the next question - how to be sure the application functions properly on those different foldables?
The first thing to be done is to figure out the number of devices to be supported. The next step - is to be sure you're supporting the variety of different ratio and resolutions so to cover the range.
And the last - emulators. Multiple foldable emulators are available in Android Studio. As well as the recently launched Samsung Foldable Emulator. It may seem there's no need of having all the devices in place to test. Still, at MobiDev we strongly recommend to run the application on real devices. Try to cover the most popular resolutions, ratio, Android versions and hardware, during the software development and quality assurance phase.
Takeaways to develop mobile app compatible with foldables
• Foldable smartphone manufacturers are still relying on third-party software to optimize for it. A large screen puts productivity at a higher level.
• Check if it's reasonable for your business. Those folded phones are only for early adopters. At least for now.
• There's not much development work to change business logic of the application. But plenty to do implementing users interface.
• To gain the most from supporting foldables, UI/UX should combine several flows based on the screen size.
• Running quality assurance while developing android applications is getting more expensive due to additional ratio and features like multi-windows.