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)
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
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
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.
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
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!
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.
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
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
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)