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

    View Slide

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

    View Slide

  3. Prepare Wireframe/Mockup
    Source: https://mobidev.biz/

    View Slide

  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)

    View Slide

  5. Splash Screen
    Have something to display (Quotes, taglines or
    something) because same screen is making
    users bored

    View Slide

  6. Intro screen
    Have an introduction screen (When needed)
    Display it for a single time
    Source: http://goo.gl/ObCeqt

    View Slide

  7. Effective API Design
    At that moment when developers write “Select * from table” query

    View Slide

  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

    View Slide

  9. Make your users busy
    Because you know seeing “Loading…” screen is boring!

    View Slide

  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

    View Slide

  11. Make your users busy
    Loading and
    Displaying
    Data poor
    way
    Loading
    available data
    quickly
    +
    Delighting
    user with
    animation
    and transition

    View Slide

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

    View Slide

  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.

    View Slide

  14. Handling Form Validations

    View Slide

  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

    View Slide

  16. Caching Data
    Because you know Internet sucks :) and Seeing “Loading…” dialog is boring

    View Slide

  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!

    View Slide

  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.

    View Slide

  19. Image Loading
    Load only required size image
    Cache images
    Use libraries like Fresco, Glide, Picasso

    View Slide

  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

    View Slide

  21. Don’t wait for users to submit crash reports
    At that moment when your users reporting App is getting crashed

    View Slide

  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

    View Slide

  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)

    View Slide

  24. Localization
    Believe me English is not everyone’s
    first or even second language

    View Slide

  25. Localization - an easy way
    How?
    Do you know strings.xml?
    Define a string with common name but
    different values in different values
    folder

    View Slide

  26. Delight your user

    View Slide

  27. Questions?

    View Slide

  28. View Slide

  29. Thank You Paresh Mayani
    Founder/Organizer, GDG Ahmedabad
    Technical Lead - Android @ Lets Nurture Infotech Pvt. Ltd.
    Application Architect @ KarConnect
    +PareshMayani
    @pareshmayani
    [email protected]

    View Slide