building apps for india

96
Building apps for India

Upload: arun-babu-a-s-p

Post on 20-Jan-2017

231 views

Category:

Mobile


0 download

TRANSCRIPT

Building apps forIndia

Why?

Why?

› 2014 - 140 million - Cisco› 2015 - 210 million - Ericsson› 2016 Feb - 220 million - Counterpoint

Why?

› 2014 - 140 million - Cisco› 2015 - 210 million - Ericsson› 2016 Feb - 220 million - Counterpoint› 2020 - 702 million - Cisco

Why?

› 2014 - 140 million - Cisco› 2015 - 210 million - Ericsson› 2016 Feb - 220 million - Counterpoint› 2020 - 702 million - Cisco› 2021 - 810 million - Ericsson

What?

What?

› Cross tier cities

What?

› Cross tier cities› Literacy, wealth disparity

What?

› Cross tier cities› Literacy, wealth disparity› Same product - different expectations

What?

› Cross tier cities› Literacy, wealth disparity› Same product - different expectations› Spread of vernacular users

Building for billionsWhat it takes!

Google’s list

Google’s list

› Connectivity

Google’s list

› Connectivity› Device Capability

Google’s list

› Connectivity› Device Capability› Data Cost

Google’s list

› Connectivity› Device Capability› Data Cost› Battery Consumption

Google’s list

› Connectivity› Device Capability› Data Cost› Battery Consumption› Content

Google’s list

› Connectivity› Device Capability› Data Cost› Battery Consumption› Content› Commerce

First impressionIs the best impression!

Stay slim! Stay humble!

Stay slim! Stay humble!

› Choose libraries intelligently

Stay slim! Stay humble!

› Choose libraries intelligently› Apply proguard carefully

Stay slim! Stay humble!

› Choose libraries intelligently› Apply proguard carefully› Remove redundant resources

Stay slim! Stay humble!

› Choose libraries intelligently› Apply proguard carefully› Remove redundant resources› Ask permission only if necessary

Stay slim! Stay humble!

› Choose libraries intelligently› Apply proguard carefully› Remove redundant resources› Ask permission only if necessary› Avoid multidex at any cost

Onboarding

Onboarding

› Keep bare minimum steps

Onboarding

› Keep bare minimum steps› Let user choose critical preference

Onboarding

› Keep bare minimum steps› Let user choose critical preference› Let app predict other preferences

Onboarding

› Keep bare minimum steps› Let user choose critical preference› Let app predict other preferences› Set theme for Splash screen

Login / Sign up

Login / Sign up

› Delay till first transaction

Login / Sign up

› Delay till first transaction› Prefer mobile number with OTP

Login / Sign up

› Delay till first transaction› Prefer mobile number with OTP› Look for slim and fast SDK options

Login / Sign up

› Delay till first transaction› Prefer mobile number with OTP› Look for slim and fast SDK options› Provide an option to login as Guest

Usability & ExperienceBits and pieces that matter!

Responsive UI

Responsive UI

› Flatten UI hierarchy

Responsive UI

› Flatten UI hierarchy › Build custom UI components

Responsive UI

› Flatten UI hierarchy › Build custom UI components› Reuse UI components as much

Responsive UI

› Flatten UI hierarchy › Build custom UI components› Reuse UI components as much› Avoid fancy animations

Localisation

Localisation

› Universal language

Localisation

› Universal language› National language

Localisation

› Universal language› National language› Lengthy language(s)

Localisation

› Universal language› National language› Lengthy language(s)› Mirror language(s)

Localisation

› Universal language› National language› Lengthy language(s)› Mirror language(s)› Sign language!

Errors are not exceptions

Errors are not exceptions

› No connection found

Errors are not exceptions

› No connection found› Slow connection

Errors are not exceptions

› No connection found› Slow connection› No content found

Errors are not exceptions

› No connection found› Slow connection› No content found› Server error / Invalid response

Adapting to speedWalk along! Jog along! Sprint along!

First steps

First steps

› Cancel out of scope requests

First steps

› Cancel out of scope requests› Eliminate redundant fields

First steps

› Cancel out of scope requests› Eliminate redundant fields› Extend login session automatically

First steps

› Cancel out of scope requests› Eliminate redundant fields› Extend login session automatically› Send only fitting size images

First steps

› Cancel out of scope requests› Eliminate redundant fields› Extend login session automatically› Send only fitting size images› Adjust number of threads

Prioritize requests

Prioritize requests

› P1 - Most important request

Prioritize requests

› P1 - Most important request› P2 - Other lightweight requests

Prioritize requests

› P1 - Most important request› P2 - Other lightweight requests› P3 - Icon, zip, media, etc.,

Prioritize requests

› P1 - Most important request› P2 - Other lightweight requests› P3 - Icon, zip, media, etc.,› P4 - Background updates

Prioritize requests

› P1 - Most important request› P2 - Other lightweight requests› P3 - Icon, zip, media, etc.,› P4 - Background updates› P5 - Analytics - beacons, events

Become user’s friend

Become user’s friend

› ConnectivityManager.isActiveNetworkMetered

Become user’s friend

› ConnectivityManager.isActiveNetworkMetered› Build lite or no image mode

Become user’s friend

› ConnectivityManager.isActiveNetworkMetered› Build lite or no image mode› Process screens in LIFO order

Become user’s friend

› ConnectivityManager.isActiveNetworkMetered› Build lite or no image mode› Process screens in LIFO order› Batch multiple requests / HTTP 2.0

RetentionThe scary funnel!

Engagement

Engagement

› Let user configure notifications

Engagement

› Let user configure notifications› Make it easy to share via popular channels

Engagement

› Let user configure notifications› Make it easy to share via popular channels› Support deep link to each content page

Engagement

› Let user configure notifications› Make it easy to share via popular channels› Support deep link to each content page› Log & solve top x% crashes every sprint

Engagement

› Let user configure notifications› Make it easy to share via popular channels› Support deep link to each content page› Log & solve top x% crashes every sprint› Exploit staged roll-out option well

Personalization

Personalization

› Learn from usage pattern

Personalization

› Learn from usage pattern› Allow user to block / unblock stuffs

Personalization

› Learn from usage pattern› Allow user to block / unblock stuffs› Let navigation to related content be easy

Personalization

› Learn from usage pattern› Allow user to block / unblock stuffs› Let navigation to related content be easy› Build option for user to delete history

Personalization

› Learn from usage pattern› Allow user to block / unblock stuffs› Let navigation to related content be easy› Build option for user to delete history› Stay ethical

Testing

Testing

› Automate, automate & automate

Testing

› Automate, automate & automate› Manually test for min. config device

Testing

› Automate, automate & automate› Manually test for min. config device› Include top used devices from user base

Testing

› Automate, automate & automate› Manually test for min. config device› Include top used devices from user base› Include special (notorious) devices

Testing

› Automate, automate & automate› Manually test for min. config device› Include top used devices from user base› Include special (notorious) devices› Airplane, Elevator and 2G testing

Monetisation

Monetisation

› Prefer S2S over client side SDK

Monetisation

› Prefer S2S over client side SDK› Choose native ads as much

Monetisation

› Prefer S2S over client side SDK› Choose native ads as much › Evaluate client SDK before using

Monetisation

› Prefer S2S over client side SDK› Choose native ads as much › Evaluate client SDK before using› Always keep ON/OFF switch at backend

Thank U!

Arun Babu A S PLove building apps with best user experience.

https://in.linkedin.com/in/arunasphttps://www.facebook.com/arunbabuasp