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

Building Apps for Billions

Building Apps for Billions

Deliver the best performance across a range of connections, data plans, and devices.

With GIF - [ https://goo.gl/YwkQ6M ]

Nishant Srivastava

August 07, 2016
Tweet

More Decks by Nishant Srivastava

Other Decks in Technology

Transcript

  1. Nishant Srivastava • Software Engineer @Omni Labs, Inc. • Lead

    Organizer @Google Developer Group,New Delhi • Blog : Crushing C.O.D.E [ www.crushingcode.co ] • Twitter : @nisrulz • Github : https://github.com/nisrulz • About.me Hello, my name is
  2. Simplify UI/UX • Use colors well • Use icons with

    text • Keep interactions minimal • Include localization • Make app UI responsive and fast
  3. Seamless Connectivity Optimize Images 1. Serve webp 2. Dynamic Image

    sizes 3. Use image loading libraries such as Glide, Picasso, etc. 4. Cache images
  4. Seamless Connectivity Finetune Transfer • Prioritize bandwidth • Detect network

    changes • Detect Network speed and change behaviour using that information • Make app useable when offline • Use Stetho tool by Facebook to help you do analysis.
  5. Seamless Connectivity Network Connection Class Listen to current network traffic

    in the app and categorize the quality of the network. Developed by Facebook. https://github.com/facebook/network-con nection-class
  6. Seamless Connectivity EasyDeviceInfo https://github.com/nisrulz/easydeviceinfo Get network type by using ..to

    get what kind of a network it is 1. Wifi/WifiMax 2. Cellular - 2G/3G/4G easyNetworkMod.getNetworkType();
  7. Problem : ...when some app finished up all your data

    and you are only halfway through the month...
  8. Conserve Data Usage • Reduce your app size to reduce

    data costs • Offer configurable network usage. i.e Download only over unmetered network
  9. Optimize for Devices • Support varying screen sizes • Backward

    Compatible • Efficient memory usage • Less CPU hogging
  10. Reduce battery consumption • Reduce background tasks when device is

    running on battery power • Avoid holding wakelocks. • Batch networking calls -Use GCM Network Manager • Manage GPS via FusedLocationProvider • Minimise sensor usage and updates
  11. Reduce battery consumption EasyDeviceInfo https://github.com/nisrulz/easydeviceinfo Get battery status via the

    EasyBatteryMod ..to make a better decision as to when you need to run your jobs.. easyNetworkMod.getBatteryPercentage(); easyNetworkMod.isDeviceCharging(); easyNetworkMod.getChargingSource();
  12. Reduce battery consumption Use Battery Historian to benchmark battery usage

    More detailed information in my other presentation here