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

Developing Application for Billions

Developing Application for Billions

Talk delivered in "eChai UI/UX Forum" aka "App Clinic" held on 16th July, 2016 @ ACPC Building, Gujarat Technical University

Enjoy actual presentation with GIFs https://goo.gl/eavoHC

Paresh Mayani

July 18, 2016
Tweet

More Decks by Paresh Mayani

Other Decks in Technology

Transcript

  1. Developing Application for Billions Part 1 Paresh Mayani

  2. Prepare Wireframe/Mockup Because Developers are not magician, they need proper

    requirements and flow
  3. Prepare Wireframe/Mockup Source: https://mobidev.biz/

  4. Splash Screen - Have a solid branding logo and tagline

    - Utilize splash screen loading time efficiently - Load data required on home page Otherwise Don’t put a splash screen (Don’t display just for the sake of displaying)
  5. Splash Screen Have something to display (Quotes, taglines or something)

    because same screen is making users bored
  6. Intro screen Have an introduction screen (When needed) Display it

    for a single time Source: http://goo.gl/ObCeqt
  7. Effective API Design At that moment when developers write “Select

    * from table” query
  8. Effective API Design Send only required fields and avoid unnecessary

    details Most of the time enemy is Select * query Can optimize APIs with “Expiry date” or “Last updated” date
  9. Make your users busy Because you know seeing “Loading…” screen

    is boring!
  10. Make your users busy Display something to read (Check splash

    screen where we displayed Quote) Cache data and display it when required Important: Display whatever data you have, meanwhile fetch required data
  11. Make your users busy Loading and Displaying Data poor way

    Loading available data quickly + Delighting user with animation and transition
  12. Check Internet Connection User is filling up some form and

    after User press Submit.. “No internet connection...”
  13. Check Internet Connection User is filling up some form and

    after User press Submit.. “No internet connection...” Why not notify user about connection in real time ? This could be handled prettily using SnackBars or others.
  14. Handling Form Validations

  15. Handling Form Validations User forgot to put a dot “.”

    in email field and he is way filling out rest of the fields and he is not aware of it. He presses Submit action and boom “Please enter a valid email” that boring message hits the User Instead you could disable the button until all form fields are valid
  16. Caching Data Because you know Internet sucks :) and Seeing

    “Loading…” dialog is boring
  17. Caching Data Effective cache controls will dramatically reduce server load

    Cache data as much as possible, why? - Less number of web requests => No use of network radio => Improved battery life - Important: It will make user busy in reading something while loading new set of data Important: Don’t assume everyone has high speed connection in the world!
  18. Image Loading ImageView is 120x120 and image resolution is 1024x768

    Purely injustice Bitmap should be downscaled. Use some popular libraries like Glide. They provide caching mechanism, downscaling, thumbnailing, transformations, and what not.
  19. Image Loading Load only required size image Cache images Use

    libraries like Fresco, Glide, Picasso
  20. Load image(s) priority wise Note: Not a performance tip but

    a good practice in loading UI Picasso library provides functionality to prioritize the image loading through priority(). priority() takes one of three constants, HIGH, MEDIUM, or LOW
  21. Don’t wait for users to submit crash reports At that

    moment when your users reporting App is getting crashed
  22. Don’t wait for users to submit crash reports You would

    not come to know about crashes being faced by users, until they submit voluntarily Then how to get it automatically? Use tools like Crashlytics, Crittercism, ACRA
  23. Version Control System Project should be kept under version control

    system Open source projects are using Git Follow Git branching work • Gitflow workflow • Feature branch workflow Follow development process via PR(Pull Requests)
  24. Localization Believe me English is not everyone’s first or even

    second language
  25. Localization - an easy way How? Do you know strings.xml?

    Define a string with common name but different values in different values folder
  26. Delight your user

  27. Questions?

  28. None
  29. Thank You Paresh Mayani Founder/Organizer, GDG Ahmedabad Technical Lead -

    Android @ Lets Nurture Infotech Pvt. Ltd. Application Architect @ KarConnect +PareshMayani @pareshmayani [email protected]