Oredev corey cover?fm=jpg&fl=progressive&q=75&w=300

Android is the World Phone

Android is the most popular operating system in the world, and it’s used by billions of people! This presents unprecedented opportunity in emerging markets to make a positive impact on people’s lives. Speaking at Øredev Conference 2015, Corey Latislaw will guide you through an exploration of emerging use cases across such diverse sectors as agriculture, banking, activism, and healthcare. You will walk away with a deeper appreciation for the technical and social challenges you will encounter in these markets, with practical advice on how to mitigate them and make a difference. How will you impact the next billion?

Introduction (0:00)

I am Corey Latislaw, an Android developer by trade, and I have always cared about bridging the digital divide. I worked with ‘Off Grid Electric’ in Tanzania, writing an application to install and maintain solar in people’s homes. I have worked with non-profits, ‘Kids on Computers’, and in Mexico we opened three computer labs and maintained existing ones. This talk is about the explosive growth of Android in developing markets, the issues that companies have encountered, as well as the design and technical challenges. Finally, I will give you a framework to think about your own apps and how you can improve them on the day-to-day.

Why Should You Care? (4:33)

Phones have become completely indispensable to our modern lives. Most of that growth is going to be in developing markets; but now there is nothing targeting their needs. Smartphone penetration is rising: in 2013 and 2014, it jumped 23%. Many of those are going to places such as China, Russia, and India. 80% of the phones shipped in 2018 are going to be Androids (1.5 Billion New Androids!). Big opportunity.

Android One (6:12)

Android One was announced at Google IO in 2014. We are going to serve all the emerging markets (e.g. phones that will run fast, latest OS, fewer issues).

They want to get down to $50 as the price point (currently, they are between $90 and $270). Android One is in developed nations, and many more are to be added to the list. They are going to do off-line maps, YouTube, and others, giving full access to what people use on the day-to-day.

World Phone (7:24)

Android devices are currently half the price of their Apple competitors ($650 iDevice vs. $275 Android), and data access is increasing rapidly. 2/3 of South Africans, by 2017, will have a subscription. More people are getting devices and gaining access to data. This is a huge opportunity for you to service these emerging markets. Android is the World Phone: available to everyone (not just the richest).

Design Challenges (8:37)

‘Normal’ design is integral to any application, but we need to start thinking about other challenges, such as access to electricity (e.g. phone charging, internet access, etc).

Global Person (9:01)

The Global Person is not ‘like us’: for instance, most people in the world may have a grade-school education, and are not highly paid. We need to make sure that we do not generalize based on our experience.

Get more development news like this

Literacy (9:42)

Literacy has been rising for developed nations, but in Africa, the literacy rate is under %50, and 40% in India cannot read. For example, at Off Grid Electric, I have to make sure that they can understand the application, and give them ways to navigate the app. Also, your users need to be able to read the language that your app is written in; although internationalization is not the hard part. Now, it is fairly easy to get translations (Evernote, Phrase App, and other paid services, even Google).

Digital literacy (10:52)

Access to digital technology is also different. I have seen everything from PCs with dialups through cellphones. People now have broadband in the house, and they did not have to go through DSL. Now you have laptops, phones, PDAs, and those have been combined with your cellphone. These are incremental changes, but it is a huge jump for someone who has never seen any of these beginning steps.

For many people, their first computer may now be a smartphone. First access to the internet, through broadband networks. This is different than most of our upbringings and our access to computers. They are going to skip whole sections of evolution. They can learn from the best and move forward from there. With markets, before the iPhone, each cellphone provider allowed you to write apps for them, but they were specific OEMs. There was no distribution mechanism for your application. You might be able to use a core set of the code in different places, but you would have to do different things to make sure that it works on those different types of phones.

2007 App Store, 2008 Google Play (13:04)

The App Store is only eight years old. The global app market is worth 10 billion dollars. Someone designed a system for you to be able to distribute apps on many devices throughout the world. Those interface patterns that we are seeing on the day-to-day help us adapt.

Human Centered Design: How? (13:52)

You iterate, you prototype, put in front of users, get feedback. Facebook and Instagram went to several places (Africa, South America), and bought phones and data plans, and they saw how awful their app was in those conditions. They learned and widened their perception of what their users were facing. They came back and created lab conditions to create a better user experience. In January 2015, they created Facebook Lite, which works on 2G connections and uses less data than traditional Facebook.

Global Contacts (15:41)

If you cannot travel, there is a global network of technologists (I am a Google developer group organizer for Philadelphia). You could give a presentation on your application and get some feedback from users. Another option is through the GDG organizers, or technologists that you can contract to have them test your application and integrate that feedback. You could even create your own lab conditions (e.g. buy old phones, having poor internet conditions, or tools to throttle your application). Finally, you can use things such as Charles, Genymotion and emulators to simulate the network speed. Facebook set up a lab that simulated different network conditions, and they found Brazil’s wifi was slower than most of the data networks.

Cultural Sensitivity (17:56)

Make sure your application does not upset or confuse your users. Use analytics to make sure that your strings work as expected. Think about how to protect your users, and look at regional differences and government regulations. You want to create an app that brings people together, instead of separating them.

Technical Challenges: Best Case Optimism Syndrome, and Low-End Devices (19:27)

Most technical challenges include battery differences and processor speeds. We cannot assume we are going to have the best conditions. You need to make your app more efficient without losing your high-end users. If things do not scale (e.g. a network backoff code you have to write, and it makes no sense in developing markets), you could use gradle flavors and different APKs. Also, make sure that you test on low-end devices. Low-end devices are slower, have smaller screens, and smaller memory. Android One will alleviate many of these issues over time. For now, you want to assume that you are working on the lowest end devices.

Device Citizenship: Fast, Efficient, Fewer Images (21:34)

Facebook and Instagram made their applications for smaller screens and changed the way they were downloading photos in addition to changing their design. Instagram had many gradients and files that would take time to load and use up memory on the device. They made their design more performant by using flat colors. In your own applications, you can profile your memory usage and find leaks (using Leak Canary, for instance). You should also look at speeding up your application starts, as well as looking at perceived performance. If it takes a long time for something to happen, you should give some feedback. Removing excess images will help make your application faster.

To Limit or Not to Limit Dependencies (22:59)

If you put every library into your application, you will have bloated APK size. You can fork it, maintain your own version and pare it down (but that is a nightmare, depending on what you are changing for maintenance). You have to balance the rewriting, the security risks, and the decreased testing that you are going to do vs. an open-source, vetted out solution. However, if they are large libraries, think about using them, and make sure they work as expected without killing your user’s experience.

You certainly want it small (no bigger than 5 MB), allowing your users to download it over their data networks.

Markets, The New Fragmentation (24:39)

If you have an Android OS, it is open-source. You need to certify that your Android works as Google dictates. If that works, you get access to the entire Google sphere. If not, you are losing Gmail, Google Play services and other things that come with that certification process. Moreover, people are side-loading the application by using USB, or sending it over email. For instance, Facebook found that there were old versions of their application in these markets. If your target user does not make money, they are not going to buy your $.99 in-app purchase. You might not be able to use ad networks to monetize on them either, because you will be talking to the server.

Data (26:21)

Find somewhere where that data drops, with poor network conditions. Additionally, you have to pay by the megabyte. In the States, you get efficient data plans, but this does not apply everywhere - unlimited data is a lie.

Data Citizenship: Pre-Fetching, Offline, Limit Downloads, Monitor Dependencies (27:45)

We want to make sure that we are not wasting the user’s data. If you are constantly fetching, it will kill their battery and use their data. Monitor dependencies to make sure they are not sending stuff constantly. If there is an analytics engine, drop it or consider different analytics engines.

Battery: I am dying… already? Use Battery Historian, Volta, Doze (30:20)

Battery Historian will tell you exactly what are you using in your application adb shell dumpsys batterystats --enable full-wake-history. That was part of the Volta in Android – an initiative across the Lollipop application to make sure that the OS was running quickly and not ruining your battery. They also gave you a job scheduler API (but it relies on us, lazy developers, to use that). With Marshmallow is Doze, which puts your phone in a deep sleep. It turns off radio and networking, both of which drain your battery quickly. Think about how your applications run under Doze. Theoretically, it is going to up battery percentage by 20 percent (at least standby time).

Globally Inclusive Coding (31:58)

Emerging markets are a big deal. Android was built on the principle of openness. Why would we not also be open and welcome everyone into our doors? You can certainly make money, because there are many people coming online. Android One is targeting the next five billion.

Citizenship: Think Globally, Act Within Local Variable Supercomputers (32:26)

You need to think about your place in the world. Building an application for Sweden or for US and then trying to just make it work everywhere else is a recipe for disaster. It is going to hurt your growth. Outside of being a global citizen, you are also a citizen of your company. You have the power to influence your organization. Take a stand for your users, and try and implement some of the points above.

Humility: Check Your Android Privilege (33:34)

Humility is having a lower, modest view of yourself. Your experiences do not immediately translate to everyone else. Make sure to question your assumptions and step outside your boundaries to help other people.

Learning Empathy (34:54)

Expand your empathy by seeing other types of cultures, and try to use empathy in your day-to-day. Interact with others and listen intently. Getting closer to your users will help you make better applications.

Summary (36:20)

You can travel to go see people, you can create labs to figure out how your applications are working in other places, and you can connect with local technologists to help you figure out where people are struggling. On a technical level, make sure that your app is fast and does not eat battery. Google has a lot of great documentation.

The four principles to keep in mind are 1) being a better global citizen and thinking about yourself as part of this world, 2) having humility to realize that you are not better than your users, 3) having empathy for what they experience, and 4) making your app as efficient as possible.

There are billions of people using Android apps, and while you may face some challenges designing for them, these are problems worth tackling!s

Next Up: New Features in Realm Java

General link arrow white

About the content

This talk was delivered live in November 2015 at Øredev. The video was transcribed by Realm and is published here with the permission of the conference organizers.

Corey Latislaw

Corey Latislaw is an Android Google Developer Expert (GDE), software engineer, author, speaker, and teacher. She has written several high profile Android applications at companies large and small. By day, she is installing solar in Tanzania with Off Grid Electric. At night, she authors videos and books on Android programming, runs a consulting firm, and organizes the Philadelphia Google Developer Group (GDG). She is passionate about travel, local food, the outdoors, photography, and living in Philly.

4 design patterns for a RESTless mobile integration »