Android Rate App feature implementation, in this blog you’ll learn how using few lines of code you can create an in app Alert Dialog Box that’ll prompt user to Rate and review your app in the Google Play Store.
Need some career advice or prepping for an Android developer interview? Hit me up on Topmate.io, and let's chat!
Android Rate App Importance
Having a Rate my App feature in your app is important because:
- It improves your Android app App store optimisation in Google Play Store. (If user gives your app a good rating!)
- Improves your App Play store and Google Search Ranking.
- Helps you to improve your app and release a better version because now you actually understand your user needs better.
- Helps you to acquire more User, and get more downloads.
- Improves your app revenue from in App ads and in app purchases
To start with creating such a method, first create a Java class named RateMyApp.java. In this Java file code the following:
package com.myapp.packagename
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import androidx.appcompat.app.AlertDialog;
public class AppRater {
private final static String APP_TITLE = "MY_APP";// App Name
private final static String APP_PNAME = "com.myapp.packagename";// Package Name
private final static int DAYS_UNTIL_PROMPT = 3;//Min number of days
private final static int LAUNCHES_UNTIL_PROMPT = 3;//Min number of launches
public static void app_launched(Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0);
if (prefs.getBoolean("dontshowagain", false)) { return ; }
SharedPreferences.Editor editor = prefs.edit();
// Increment launch counter
long launch_count = prefs.getLong("launch_count", 0) + 1;
editor.putLong("launch_count", launch_count);
// Get date of first launch
Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0);
if (date_firstLaunch == 0) {
date_firstLaunch = System.currentTimeMillis();
editor.putLong("date_firstlaunch", date_firstLaunch);
}
// Wait at least n days before opening
if (launch_count >= LAUNCHES_UNTIL_PROMPT) {
if (System.currentTimeMillis() >= date_firstLaunch +
(DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) {
showRateDialog(mContext, editor);
}
}
editor.apply();
}
@SuppressLint("SetTextI18n")
public static void showRateDialog(final Context mContext, final SharedPreferences.Editor editor) {
String t1 = mContext.getString(R.string.enjoy) + " " + APP_TITLE + mContext.getString(R.string.enjoy_using);
AlertDialog materialAlertDialogBuilder = new AlertDialog.Builder(mContext)
.setTitle("Rate our App")
.setMessage(t1)
.setPositiveButton("Yes, Sure", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mContext.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + APP_PNAME)));
dialog.dismiss();
}
})
.setNeutralButton("Remind me Later", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setNegativeButton("Don't Ask Again", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (editor != null) {
editor.putBoolean("dontshowagain", true);
editor.commit();
}
dialog.dismiss();
}
}).create();
materialAlertDialogBuilder.show();
}
}
As seen in the above code, we will prompt the user after an interval of minimum 3 days and after 3 minimum opens, to rate our app in the Google play store.
We’ve kept User experience in mind and kept interval as low as possible to not irritate our app user.
We’re using AndroidX in this project therefore, using Android Material AlertDialog, the prompt to rate the app will be created.
Now where ever you wish to create the prompt (Recommended to create Alert on Home Screen!) for user, by simple importing this ‘RateMyApp.class’ and calling following method in onCreate();
app_launched(this);
To create a custom Dialog box, learn how to create custom styles in android, link here.
Therefore if your android app really has a great experience to offer to the Google play store market users, then you must implement this ‘Android Rate App’ feature and give your app a BOOST! All the best! 🙂