Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Building apps for India

Building apps for India

Being a mobile first country, India opens up a lot of opportunities for app developers. Want to review some options to make most of them? Please go through this deck which was created for “Building apps for India” session at #appfest2016

Speaker:
Arun Babu A S P
https://in.linkedin.com/in/arunasp

A840d50ff8fdfeefe6d6bd98b4f18873?s=128

Arun Babu A S P

July 15, 2016
Tweet

Transcript

  1. Building apps for India

  2. Why?

  3. Why? › 2014 - 140 million - Cisco › 2015

    - 210 million - Ericsson › 2016 Feb - 220 million - Counterpoint
  4. Why? › 2014 - 140 million - Cisco › 2015

    - 210 million - Ericsson › 2016 Feb - 220 million - Counterpoint › 2020 - 702 million - Cisco
  5. Why? › 2014 - 140 million - Cisco › 2015

    - 210 million - Ericsson › 2016 Feb - 220 million - Counterpoint › 2020 - 702 million - Cisco › 2021 - 810 million - Ericsson
  6. What?

  7. What? › Cross tier cities

  8. What? › Cross tier cities › Literacy, wealth disparity

  9. What? › Cross tier cities › Literacy, wealth disparity ›

    Same product - different expectations
  10. What? › Cross tier cities › Literacy, wealth disparity ›

    Same product - different expectations › Spread of vernacular users
  11. Building for billions What it takes!

  12. Google’s list

  13. Google’s list › Connectivity

  14. Google’s list › Connectivity › Device Capability

  15. Google’s list › Connectivity › Device Capability › Data Cost

  16. Google’s list › Connectivity › Device Capability › Data Cost

    › Battery Consumption
  17. Google’s list › Connectivity › Device Capability › Data Cost

    › Battery Consumption › Content
  18. Google’s list › Connectivity › Device Capability › Data Cost

    › Battery Consumption › Content › Commerce
  19. First impression Is the best impression!

  20. Stay slim! Stay humble!

  21. Stay slim! Stay humble! › Choose libraries intelligently

  22. Stay slim! Stay humble! › Choose libraries intelligently › Apply

    proguard carefully
  23. Stay slim! Stay humble! › Choose libraries intelligently › Apply

    proguard carefully › Remove redundant resources
  24. Stay slim! Stay humble! › Choose libraries intelligently › Apply

    proguard carefully › Remove redundant resources › Ask permission only if necessary
  25. Stay slim! Stay humble! › Choose libraries intelligently › Apply

    proguard carefully › Remove redundant resources › Ask permission only if necessary › Avoid multidex at any cost
  26. Onboarding

  27. Onboarding › Keep bare minimum steps

  28. Onboarding › Keep bare minimum steps › Let user choose

    critical preference
  29. Onboarding › Keep bare minimum steps › Let user choose

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

    critical preference › Let app predict other preferences › Set theme for Splash screen
  31. Login / Sign up

  32. Login / Sign up › Delay till first transaction

  33. Login / Sign up › Delay till first transaction ›

    Prefer mobile number with OTP
  34. Login / Sign up › Delay till first transaction ›

    Prefer mobile number with OTP › Look for slim and fast SDK options
  35. 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
  36. Usability & Experience Bits and pieces that matter!

  37. Responsive UI

  38. Responsive UI › Flatten UI hierarchy

  39. Responsive UI › Flatten UI hierarchy › Build custom UI

    components
  40. Responsive UI › Flatten UI hierarchy › Build custom UI

    components › Reuse UI components as much
  41. Responsive UI › Flatten UI hierarchy › Build custom UI

    components › Reuse UI components as much › Avoid fancy animations
  42. Localisation

  43. Localisation › Universal language

  44. Localisation › Universal language › National language

  45. Localisation › Universal language › National language › Lengthy language(s)

  46. Localisation › Universal language › National language › Lengthy language(s)

    › Mirror language(s)
  47. Localisation › Universal language › National language › Lengthy language(s)

    › Mirror language(s) › Sign language!
  48. Errors are not exceptions

  49. Errors are not exceptions › No connection found

  50. Errors are not exceptions › No connection found › Slow

    connection
  51. Errors are not exceptions › No connection found › Slow

    connection › No content found
  52. Errors are not exceptions › No connection found › Slow

    connection › No content found › Server error / Invalid response
  53. Adapting to speed Walk along! Jog along! Sprint along!

  54. First steps

  55. First steps › Cancel out of scope requests

  56. First steps › Cancel out of scope requests › Eliminate

    redundant fields
  57. First steps › Cancel out of scope requests › Eliminate

    redundant fields › Extend login session automatically
  58. First steps › Cancel out of scope requests › Eliminate

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

    redundant fields › Extend login session automatically › Send only fitting size images › Adjust number of threads
  60. Prioritize requests

  61. Prioritize requests › P1 - Most important request

  62. Prioritize requests › P1 - Most important request › P2

    - Other lightweight requests
  63. Prioritize requests › P1 - Most important request › P2

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

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

    - Other lightweight requests › P3 - Icon, zip, media, etc., › P4 - Background updates › P5 - Analytics - beacons, events
  66. Become user’s friend

  67. Become user’s friend › ConnectivityManager.isActiveNetworkMetered

  68. Become user’s friend › ConnectivityManager.isActiveNetworkMetered › Build lite or no

    image mode
  69. Become user’s friend › ConnectivityManager.isActiveNetworkMetered › Build lite or no

    image mode › Process screens in LIFO order
  70. Become user’s friend › ConnectivityManager.isActiveNetworkMetered › Build lite or no

    image mode › Process screens in LIFO order › Batch multiple requests / HTTP 2.0
  71. Retention The scary funnel!

  72. Engagement

  73. Engagement › Let user configure notifications

  74. Engagement › Let user configure notifications › Make it easy

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

    to share via popular channels › Support deep link to each content page
  76. 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
  77. 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
  78. Personalization

  79. Personalization › Learn from usage pattern

  80. Personalization › Learn from usage pattern › Allow user to

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

    block / unblock stuffs › Let navigation to related content be easy
  82. 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
  83. 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
  84. Testing

  85. Testing › Automate, automate & automate

  86. Testing › Automate, automate & automate › Manually test for

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

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

    min. config device › Include top used devices from user base › Include special (notorious) devices
  89. 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
  90. Monetisation

  91. Monetisation › Prefer S2S over client side SDK

  92. Monetisation › Prefer S2S over client side SDK › Choose

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

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

    native ads as much › Evaluate client SDK before using › Always keep ON/OFF switch at backend
  95. None
  96. Thank U! Arun Babu A S P Love building apps

    with best user experience. https://in.linkedin.com/in/arunasp https://www.facebook.com/arunbabuasp