Please carefully read this guide in order to fully configure this template, and remember to test it on a Real Device – the Emulator may fail.
An internet connection is required.
IMPORTANT: The backend of this template is the DBase API.
https://mydomain.com/dbasefiles
- and replace the string of the DATABASE_PATH
variable in the DBase.java
file with your URL:
public static String DATABASE_PATH = "http://3.67.163.164/__apps/askk/";
Users.json
and Posts.json
files
This template has native Android Java/XML code so you can edit it only with Android Studio. If you don’t have it, download it for free.
Download Android Studiostring.xml
file – it’s into the res/values
folder in Android Studio – and replace the App Name of this line with your new one:
<string> string name="app_name"> Askk </string>
com
folder as it is and rename the other ones.build.gradle
(the Module app one) in Android Studio and rename the applicationId
into your new package name, then click Sync Now on the top-right corner.
.xml
files stored into the res/layout
folder. Those files are the ones where you can edit all Views, Buttons texts, TextView’s strings, and all Views attributes – position, font color, size, etc.
.java
files.
drawable
folders, where the app icons are stored into the mipmap
folders.
tou.html
file form the left-side panel’s list in Android Studio and edit it accordingly to your own Terms of Service and Privacy Policy. Also, replace the APP_NAME
words with the new name you assigned to your App.
"mailto:support@yourdomain.com">support@yourdomain.com
tou.html
file, so you must replace support@yourdomain.com with a valid email address where people can contact you for any question, feedback or in case they want to delete their account.
ID_id value
, select that row and click the Delete Row(s) button.ID_id
value you’ve previously noted in all the other Tables of your database, check out all the rows until you’ll find that ID_id
and delete it – this happens in case it appears into some Array type columns.
ID_id
in your database:
AR_reportedBy
in the User, Questions, and Answers tables, and take action for it asap. Check out if they contain some ID_id
of Users (which means those users have reported the data of that row).
ID_id
and search for it in the other Tables, and remove such ID if you’ll find it in some cell.
res/values
folder in Android Studio. Open this file and keep reading this guide, you’ll have to perform some edits in this file in order to get your template ready to run.
<string> string name="app_name"> Askk </string>
<string>name="ADMOB_INTERSTITIAL_UNIT_ID">ca-app-pub-3940256099942544/1033173712
<string>name="ADMOB_APP_ID">ca-app-pub-3940256099942544~3347511713
You have to create your Unit ID at apps.admob.comUsers.json
and Posts.json
files
#
symbol. The main color of the app and some UI will be affected by your change:
public static String MAIN_COLOR = "#8344af";
public static String BLACK_COLOR = "#252525";
public static String GRAY = "#bababa";
public static Typeface popBlack, popBlackItalic, popBold, popBoldItalic,
popExtraBold, popExtraBoldItalic, popExtraLight, popExtraLightItalic, popItalic,
popLight, popLightItalic, popMedium, popMediumItalic, popRegular, popSemibold, popSemiboldItalic,
popThin, popThinItalic;
These fonts are initialized into the onCreate()
function as follows:
popBlack = Typeface.createFromAsset(getAssets(),"font/Poppins-Black.ttf");
popBlackItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-BlackItalic.ttf");
popBold = Typeface.createFromAsset(getAssets(),"font/Poppins-Bold.ttf");
popBoldItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-BoldItalic.ttf");
popExtraBold = Typeface.createFromAsset(getAssets(),"font/Poppins-ExtraBold.ttf");
popExtraBoldItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-ExtraBoldItalic.ttf");
popExtraLight = Typeface.createFromAsset(getAssets(),"font/Poppins-ExtraLight.ttf");
popExtraLightItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-ExtraLightItalic.ttf");
popItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-Italic.ttf");
popLight = Typeface.createFromAsset(getAssets(),"font/Poppins-Light.ttf");
popLightItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-LightItalic.ttf");
popMedium = Typeface.createFromAsset(getAssets(),"font/Poppins-Medium.ttf");
popMediumItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-MediumItalic.ttf");
popRegular = Typeface.createFromAsset(getAssets(),"font/Poppins-Regular.ttf");
popSemibold = Typeface.createFromAsset(getAssets(),"font/Poppins-SemiBold.ttf");
popSemiboldItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-SemiBoldItalic.ttf");
popThin = Typeface.createFromAsset(getAssets(),"font/Poppins-Thin.ttf");
popThinItalic = Typeface.createFromAsset(getAssets(),"font/Poppins-ThinItalic.ttf");
In case you want to add a new font, you have to first drag your .ttf
or .otf
font file into the app/src/main/assets/font
folder.public static Typeface
line that’s into the onCreate()
function – let’s pretend you have a font file called Helvetica-Bold.ttf, you may add an instance called hBold
(it’s just an example, name it as you wish since it’s a variable):
public static Typeface popBold, popSemibold, ... hBold;
Lastly, import its path into the onCreate()
function like the existing ones. Based on the font example above, your new line of code may look like this:
hBold = Typeface.createFromAsset(getAssets(),"font/helvetica-Bold.ttf");
public static String ADMIN_EMAIL = "admin@email.com";
drawable
folder in Android Studio accordingly:
public static String[] categoriesArray = {
// First fixed Categories (NOTE: these 3 items must alwasy be at the first index position)
"latest",
"trending",
"answer",
//--------------------
// Other Categories:
"photography",
"health",
"tech",
"movies",
"politics",
"music",
"psychology",
"books",
"sport",
"science",
"education",
// YOU CAN ADD NEW CATEGORIES HERE, ALL LOWERCASED...
};
As you can see by the above array, the first 3 items are separated from the other ones, this is because they are fixed categories that won’t be loaded once you are about to post a question, and those 3 categories are for the Home screen to filter questions by Trending (the first 100 questions that have 2 or more answers), Latest (the 100 newest posted questions) and Answer (those questions that don’t have an answer yet).
// YOU CAN ADD NEW CATEGORIES HERE, ALL LOWERCASED...
and DO NOT EDIT the first 3 items of the categoriesArray
, which are:
"latest",
"trending",
"answer",
PLEASE ALSO NOTE the following array of colors:
public static String[] colorsArray = {
"#000000", // latest
"#444444", // trending
"#777777", // answer
//-------------------------------
"#8344af", // photography
"#ed5564", // health
"#fc6d52", // tech
"#d870ad", // movies
"#8cc051", // politics
"#5d9bec", // music
"#48cfae", // psycology
"#39bf68", // books
"#8344af", // sport
"#ed5564", // science
"#fc6d52", // education
// YOU CAN ADD COLORS HERE...
};
Similarly to the categoriesArray
, this array stores the HEX color values of each Category, based on their position (see the comments with category names next to each colorsArray‘s item).
categoriesArray
, ALL lowercase CHARACTERS, like this:
"lifestyle",
"#ed5564",
drawable
folder in Android Studio, and give it the lowercase name of your new category (so lifestyle)
// MARK: - TABLES & COLUMNS NAMES
DATABASE_PATH
into the DBase.java
file
.apk
file of your app in your Desktop
cd
command
keytool -printcert -jarfile YourApkName.apk
[Replace YourApkName with the name of your .apk file]
_config.php
file of the DBase API in your server and paste the Server Key you just copied in this variable, then save the file:
$FCM_SERVER_KEY = '[paste the Server Key here!]';
google-services.json
file and click Next
google-services.json
file in the app folder of the Android Studio project: fireInterstitialAd;
fireInterstitialAd(ctx);
NOTE: In order to comment a line of code, just add //
in the beginning:
// fireInterstitialAd(ctx);