This data analysis project is done for an app building company to help them find better app profiles that have good traction by analysing exisiting app data from Google play store and iOS app store.
The goal of the company is to build Free apps and generate revenue through in-app ads.
The more people download and use the app, the more people will be interacting with the in-app ads. This in turn increases the revenue from the app. So more people, more download and more profit is the basic equation here.
So our goal for this project is to analyze data to help our developers understand what type of apps are likely to attract more users and increase the number of downloads.
In order to achieve this goal we are going to find datasets that are connected with Google and iOS app stores and analyse it.
As of September 2018, there were approximately 2 million iOS apps available on the App Store, and 2.1 million Android apps on Google Play. It will be a huge task to collect all this data. So we will be going to analyse a small sample dataset.
There are two data sets that seem suitable for our goals:
Google playstore data was collected in August 2018. You can download the data set directly from this Link. iOS Appstore data was collected in July 2017. You can download the data set directly from this Link.
#Opening the files
opened_data_apple= open(r"\Users\Surface GO\Downloads\AppleStore.csv", encoding = "UTF-8")
opened_data_google= open(r"\Users\Surface GO\Downloads\googleplaystore.csv", encoding = "UTF-8")
from csv import reader #to get csv reading capabilities from CSV library
#reading the files
read_apple_data= reader(opened_data_apple) # we are using reader() function from csv library
read_google_data=reader(opened_data_google)
#making them into list for data manipulations
ios_app_list=list(read_apple_data) # we are using list() function to create a list
google_app_list=list(read_google_data)
#getting the header, ie the first row
ios_header=ios_app_list[0] #fetches the fist row from the list
google_app_header=google_app_list[0] #fetches the fist row from the list
#getting the app data w/o header
ios_apps=ios_app_list[1:] # this will read all rows except the header row at '0'
google_apps=google_app_list[1:] # this will read all rows except the header row at '0'
We are going to create a function to explore the data by printing the data slices and to check number of rows and columns in the whole data set. For that purpose a function named explore_data() will be defined and it can be repeatedly used to print rows in a readable way.
# to explore the data we need to specify which dataset to use, starting and ending row
# if you want to find the number of rows and columns, specify True or False
def explore_data(dataset, start, end, rows_and_columns=False):
dataset_slice=dataset[start:end] # slices dataset from the start and end rows provided
for row in dataset_slice:
print(row,'\n') #prints each row of the sliced dataset in a new line
# if rows and colums in specified as True
if rows_and_columns:
print('Number of rows: ', len(dataset)) # find the length of the dataset, ie the no. of rows
print('Number of Columns: ', len(dataset[0])) #find the length of first row, ie no of columns
Let us start by printing the first 3 rows of each data set and checking the total number of Rows and columns in each data set. We will also check the column names to get a better understanding of the data we are analysing.
But before that let us write a function to find the index of the header items.
This is a function created to get the index of header elements in a dataset. To get the index, call the function with the dataset name as argument.
def indexer(dataset_header): # Input the dataset header to retrieve its index
index=0
print("Index") #### is there a way to print the variable name used? (eg. index of appstore)
for column_name in dataset_header: #finding each column name from the header row
print(index, ' : ', column_name)
index+=1
print('\n \n')
We use explore_data function to print first 3 rows of iOS dataset.
print("------------------ios Header------------------", '\n', '\n', ios_header,'\n','\n')
print("------------------ios 3 rows of data------------------\n \n")
explore_data(ios_apps,0,3, True)
------------------ios Header------------------ ['id', 'track_name', 'size_bytes', 'currency', 'price', 'rating_count_tot', 'rating_count_ver', 'user_rating', 'user_rating_ver', 'ver', 'cont_rating', 'prime_genre', 'sup_devices.num', 'ipadSc_urls.num', 'lang.num', 'vpp_lic'] ------------------ios 3 rows of data------------------ ['284882215', 'Facebook', '389879808', 'USD', '0.0', '2974676', '212', '3.5', '3.5', '95.0', '4+', 'Social Networking', '37', '1', '29', '1'] ['389801252', 'Instagram', '113954816', 'USD', '0.0', '2161558', '1289', '4.5', '4.0', '10.23', '12+', 'Photo & Video', '37', '0', '29', '1'] ['529479190', 'Clash of Clans', '116476928', 'USD', '0.0', '2130805', '579', '4.5', '4.5', '9.24.12', '9+', 'Games', '38', '5', '18', '1'] Number of rows: 7197 Number of Columns: 16
Let us now check what are the items mentioned in the iOS header and what their descriptions are.
We have found out that below mentioned items are in iOS header
'id', 'track_name', 'size_bytes', 'currency', 'price', 'rating_count_tot', 'rating_count_ver', 'user_rating', 'user_rating_ver', 'ver', 'cont_rating', 'prime_genre', 'sup_devices.num', 'ipadSc_urls.num', 'lang.num', 'vpp_lic'
0 : "id" : App ID
1: "track_name": App Name
2: "size_bytes": Size (in Bytes)
3: "currency": Currency Type
4: "price": Price amount
5: "ratingcounttot": User Rating counts (for all version)
6: "ratingcountver": User Rating counts (for current version)
7: "user_rating" : Average User Rating value (for all version)
8: "userratingver": Average User Rating value (for current version)
9: "ver" : Latest version code
10: "cont_rating": Content Rating
11: "prime_genre": Primary Genre
12: "sup_devices.num": Number of supporting devices
13: "ipadSc_urls.num": Number of screenshots showed for display
14: "lang.num": Number of supported languages
15: "vpp_lic": Vpp Device Based Licensing Enabled
You can find more details regarding the header description here
indexer(ios_header) #we called the indexer function with ios_header as the argument
Index 0 : id 1 : track_name 2 : size_bytes 3 : currency 4 : price 5 : rating_count_tot 6 : rating_count_ver 7 : user_rating 8 : user_rating_ver 9 : ver 10 : cont_rating 11 : prime_genre 12 : sup_devices.num 13 : ipadSc_urls.num 14 : lang.num 15 : vpp_lic
We use explore_data function to print first 3 rows of Google app store dataset.
print("\n \n ------------------Google App Header------------------", '\n', '\n', google_app_header,'\n','\n')
print("\n ------------------google apps 3 rows of data------------------ \n")
explore_data(google_apps,0,3, True)
------------------Google App Header------------------ ['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ------------------google apps 3 rows of data------------------ ['Photo Editor & Candy Camera & Grid & ScrapBook', 'ART_AND_DESIGN', '4.1', '159', '19M', '10,000+', 'Free', '0', 'Everyone', 'Art & Design', 'January 7, 2018', '1.0.0', '4.0.3 and up'] ['Coloring book moana', 'ART_AND_DESIGN', '3.9', '967', '14M', '500,000+', 'Free', '0', 'Everyone', 'Art & Design;Pretend Play', 'January 15, 2018', '2.0.0', '4.0.3 and up'] ['U Launcher Lite – FREE Live Cool Themes, Hide Apps', 'ART_AND_DESIGN', '4.7', '87510', '8.7M', '5,000,000+', 'Free', '0', 'Everyone', 'Art & Design', 'August 1, 2018', '1.2.4', '4.0.3 and up'] Number of rows: 10841 Number of Columns: 13
'App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'
0: App : Application name
1: Category :Category the app belongs to
2: Rating : Overall user rating of the app (as when scraped)
3: Reviews: Number of user reviews for the app (as when scraped)
4: Size: Size of the app (as when scraped)
5: Installs: Number of user downloads/installs for the app (as when scraped)
6: Type:Paid or Free
7: Price : Price of the app (as when scraped)
8: Content Rating: Age group the app is targeted at - Children / Mature 21+ / Adult
9: Genres: An app can belong to multiple genres (apart from its main category). For eg, a musical family game will belong to
You can find more details here https://www.kaggle.com/lava18/google-play-store-apps
We use the indexer function to get the index of Google playstore app header.
indexer(google_app_header) #callind indexer function with google_app_header as argument.
Index 0 : App 1 : Category 2 : Rating 3 : Reviews 4 : Size 5 : Installs 6 : Type 7 : Price 8 : Content Rating 9 : Genres 10 : Last Updated 11 : Current Ver 12 : Android Ver
We need to check if the given dataset is free of errors. If there are any errors, we need to rectify them or remove them.Also we are looking at creating apps that are free to download and that are presented for in English language.
So we also need to remove the data of apps
We are looking for errors in the dataset. We can first check if there are any column values missing in the dataset. To check that we can compare if the lenth of the header(the row containing column names) is same as that of each the rows in the data set.
If the length of header is not equal to the length of any row, that means, the row is either missing a value or in some case has an additional value. In both cases, there is an error in that row and we need to rectify it.
ios_header_length=len(ios_header) # finding the length of ios apps' header
print("Length of ios header is : ", ios_header_length)
google_app_header_length=len(google_app_header) #finding the length of google app header
print("Length of google app header is : ", google_app_header_length)
Length of ios header is : 16 Length of google app header is : 13
# Checking if the length of each row in ios app data set is equal to that of the header length.
# If it is not of the same length, mostly a column value must be missing. So we will print out that row.
for app in ios_apps:
if len(app)!=ios_header_length: # checking if length of each row not equal to the length of header
# if the length is not equal, its an error in data and prints that row
print(app) #printing the content of the row
print("Index of the row with error is: ",ios_apps.index(app)) #printing the index of that row
print("Length of ios app row is : ",len(app))
It didn't print any row which means all the columns have data corresponding to the items mentioned in the header row. So there is no error in that regards.
Now we will move onto Google Playstore app data. We Repeat the same steps for google apps' data set too and print out the row and its index.
for app in google_apps:
if len(app)!=google_app_header_length:
print(app)
print("Index of the row with error is: ",google_apps.index(app))
print("Length of google app row is : ", len(app))
['Life Made WI-Fi Touchscreen Photo Frame', '1.9', '19', '3.0M', '1,000+', 'Free', '0', 'Everyone', '', 'February 11, 2018', '1.0.19', '4.0 and up'] Index of the row with error is: 10472 Length of google app row is : 12
We have found out that ios app data doesn't have any missing columns. But that of google apps have missing values. It only has 12 values instead of 13.
Now we need to delete the row that has missing values.
print(len(google_apps))
del google_apps[10472]
print(len(google_apps))
10841 10840
We have successfully deleted one row that was at the index 10472 and confirmed it by checking the lenght of google apps data before and after. So now we have a dataset that has all corresponding values. But there can be duplicate value. Now we have to find that.
Now we need to check if there are any duplicate entries in our dataset. One way to check it is by using its app name or app id. For iOS the unique identifier is the app id while google apps, the unique id is the app name iteself. So let us first check duplicate entries in iOS dataset.
To do that we will create two empty lists, unique list and duplicate list.
Inside the loop, the app_id will be checked agaist all entries in the unique list one by one. Initially unique list will be empty and the first entry will be appended to that list. After this, the subsequent app_ids will be checked against the entries in the unique list. If a match is found, that app_id will be appended to duplicate list. So finally all the duplicate entries will end up in duplicate list while the unique ones in the unique list.
( Note: If you are using app_name for iOS apps, you will find 2 duplicate entries. But their app_id and most other values are unique except for the app name. So it could be a different version of the app and lets not consider it as duplicate entry)
ios_unique_list=[] # creating an empty list to store unique app names
ios_duplicate_list=[] # creating an empty list to store duplicate app names
for row in ios_apps: #picking each app data in ios app dataset
app_id=row[0] #assigning the value at index 0 as app_id
if app_id in ios_unique_list: #if app_id is found in unique list
#print(ios_apps.index(row)) #print the index of that row
ios_duplicate_list.append(app_id) #and add the name to duplicate list
else: #if app_id is NOT found in unique list
ios_unique_list.append(app_id) #add it to the unique list
# Once the loop is exited, print the list of duplicate list
print(ios_duplicate_list)
print("There are ", len(ios_duplicate_list), " duplicate app entries in ios dataset")
[] There are 0 duplicate app entries in ios dataset
There was no duplicate entry in the iOS app data. So we can move to google app data now.
Using the same logic as above, we will go through google app dataset to find the duplicate entry. But instead of app_id we will use app_name.
unique_list=[]
duplicate_list=[]
for row in google_apps:
app_name=row[0]
if app_name in unique_list:
duplicate_list.append(app_name)
else:
unique_list.append(app_name)
print("Number of duplicate entries in Google apps' data set: ", len(duplicate_list))
Number of duplicate entries in Google apps' data set: 1181
So after our inspection, we can see that in ios app list, there are no duplicate entries, while in google app's list there are 1181 duplicate entries.
Now we need to remove these duplicate entries from our data set. In order to do that let us take a look at a few sample duplicate entries and find a logic to delete them. Let us first retrieve first 26 duplicate entries from our duplicate list.
duplicate_list[:25]
['Quick PDF Scanner + OCR FREE', 'Box', 'Google My Business', 'ZOOM Cloud Meetings', 'join.me - Simple Meetings', 'Box', 'Zenefits', 'Google Ads', 'Google My Business', 'Slack', 'FreshBooks Classic', 'Insightly CRM', 'QuickBooks Accounting: Invoicing & Expenses', 'HipChat - Chat Built for Teams', 'Xero Accounting Software', 'MailChimp - Email, Marketing Automation', 'Crew - Free Messaging and Scheduling', 'Asana: organize team projects', 'Google Analytics', 'AdWords Express', 'Accounting App - Zoho Books', 'Invoice & Time Tracking - Zoho', 'join.me - Simple Meetings', 'Invoice 2go — Professional Invoices and Estimates', 'SignEasy | Sign and Fill PDF and other Documents']
Now that we have a some names of the duplicate entries, we can pick a few app names in random and see their duplicate entries.
# We randomly picked the app 'Slack' to check its duplicate entries
for app in google_apps:
if app[0]=='Slack':
print(app)
['Slack', 'BUSINESS', '4.4', '51507', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'August 2, 2018', 'Varies with device', 'Varies with device'] ['Slack', 'BUSINESS', '4.4', '51507', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'August 2, 2018', 'Varies with device', 'Varies with device'] ['Slack', 'BUSINESS', '4.4', '51510', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'August 2, 2018', 'Varies with device', 'Varies with device']
# We randomly picked the app 'Facebook' to check its duplicate entries
for app in google_apps:
if app[0]=='Facebook':
print(app)
['Facebook', 'SOCIAL', '4.1', '78158306', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'August 3, 2018', 'Varies with device', 'Varies with device'] ['Facebook', 'SOCIAL', '4.1', '78128208', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'August 3, 2018', 'Varies with device', 'Varies with device']
# We randomly picked the app 'Google My Business' to check its duplicate entries
for app in google_apps:
if app[0]=='Google My Business':
print(app)
['Google My Business', 'BUSINESS', '4.4', '70991', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'July 24, 2018', '2.19.0.204537701', '4.4 and up'] ['Google My Business', 'BUSINESS', '4.4', '70991', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'July 24, 2018', '2.19.0.204537701', '4.4 and up'] ['Google My Business', 'BUSINESS', '4.4', '70991', 'Varies with device', '5,000,000+', 'Free', '0', 'Everyone', 'Business', 'July 24, 2018', '2.19.0.204537701', '4.4 and up']
After analysing a few apps randomly, we have found out that the only change that occurs is the 4th column (at index 3) which is the total number of reviews at the time of scraping this data.
The number of rating is increasing means, the data might have been collected at different times. So it is a better logic to keep the latest information, ie the data with higher number of rating. So let us keep the row with more number of ratings among the duplicate entries and delete the rest.
In order to do that, we will create a dictionary to update the app's data with the latest values and delete the rest of the duplicate entries. We will use this dictionary in turn to create a new list without the duplicate entries.
We are going to add the row of data to this empty dictionary if the value of rating is the highest among the duplicate entries.
On the first iteration, it initially checks if there is any app name in the empty dictionary. Since there are no app_names in the empty dictionary, it goes to execute the next condition that adds a key:value pair to the dictionary with app_name: app_rating.
On the next iteration, if a same app_name is found, and if the value corresponding to that key is less than app_rating given in the dataset in that iteration, value of the key gets updated with new higher app rating. And this process continues till all the apps listed in the dataset is checked.
google_app_dictionary={} # defining an empty dictionary to store the data
for app in google_apps:
app_name=app[0]
app_rating=float(app[3])
# if app_name is in google_app_dictionary
# and if the value of dictionary (which is the app_rating) with a key=app_name is less than app rating
# then update value of dictionary key with new app rating.
if app_name in google_app_dictionary and google_app_dictionary[app_name]<app_rating:
google_app_dictionary[app_name]=app_rating # Updating the dictionary with higher values
#if app_name is not found in google_app_dictionary
# add it to dictionary with corresponding app_rating
elif app_name not in google_app_dictionary:
google_app_dictionary[app_name]=app_rating # Adding the dictionary with new key:value pair
# Else statement is not used since it can add app_name:app_ratings whenever the first statement becomes false
# and it can contain app_name with lower app_ratings and will still have duplicate entry.
So let us cross check if we have removed all 1181 duplicate entries by a simple calculation, ie by comparing the length of dictionary we created without duplicate entries with the expected length we received from our calculation.
print("Actual length:", len(google_app_dictionary)) # finding the length of new dictionary we created w/o duplication
print( "Expected length:", len(google_apps)-1181) # subtracting number of duplicate entries from total entries
Actual length: 9659 Expected length: 9659
Since both values are same, we have successully eliminated the duplicate entries and updated the app names with the highest rating using our dictionary.
Now we are going to create list from this dictionary for more flexible analysis. We do this by comparing the value of app_rating in both the newly created dictionary and in the google app dataset. If the value of app_rating matches, that row from google_app_dataset will be added to the clean_list.
Another list will keep track of all app_names that has been added so far. By checking if the app_name is present here, we can avoid entering duplicate row of data.
clean_google_apps=[] # defining an empty list to store clean app data
already_added_apps=[] # defining an empty list to help prevent duplication of entries
for row in google_apps: # iterates through google_app dataset
app_name=row[0]
app_rating=float(row[3])
# if the dictionary value paired with key=app_name is same
# and the app_name is not already added
# then clean_google_apps list gets appended
# and the already_added_apps list gets updated with the latest app_name
if google_app_dictionary[app_name]==app_rating and app_name not in already_added_apps:
clean_google_apps.append(row)
already_added_apps.append(app_name)
print("Actual length of clean data", len(clean_google_apps))
print( "Expected length:", len(google_apps)-1181)
Actual length of clean data 9659 Expected length: 9659
From our initial dataset, we have removed rows that have data missing and removed the duplicate entries. Now we have a clean dataset. But our requirement is a dataset with Free and Non-English app data. So we need to remove all the data related to apps that are not free and not in English. So that will be our data cleaning stage 2.
To find non-English apps, we need to make use of the ASCII (American Standard Code for Information Interchange) system.
The numbers corresponding to the characters we commonly use in an English text are all in the range 0 to 127, according to the ASCII system. Based on this number range, we can build a function that detects whether a character belongs to the set of common English characters or not. If the number is equal to or less than 127, then the character belongs to the set of common English characters.
If an app name contains a character that is greater than 127, then it probably means that the app has a non-English name or it has some non-English character.
Any emoji or special character will also be considered as non-English character as it's value is higher than 127. There can be some app names that contains an emoji or two. So if we judge an app to be non-English just because of one emoji or special character, that will be a wrong move. So we will decide that if there are more than 3 non-English character, we will reject that app as non-English app. Though this might not be a fool-proof logic, but it works fine for our analysis here without creating a big difference.
def english_checker(app_name): # defining the function to find non-English character
non_english_char=0
for character in app_name: # iterates through each character of the app_name
if ord(character) > 127: # ord() function helps to find the ASCII value of each character
non_english_char += 1 # Counts the number of non-English character
if non_english_char > 3: # checks if non-English characters are more than 3
return False # if it is more than 3, returns with False, meaning Non-English app
else:
return True # if it is less than 3, returns with True, meaning English app
Using this english_checker function, we are going to create a list that contains apps that are in English only. This will be a list containing already cleaned data but without non-English app entries.
clean_english_google_apps=[] # an empty list to store clean, English google apps
clean_english_ios_apps=[] # an empty list to store clean, English iOS apps
# Creating clean_English_Google_Apps
for app in clean_google_apps:
app_name=app[0]
if english_checker(app_name): # if english_checker function returns True, append the list with app row
clean_english_google_apps.append(app)
print("No. of English Google Apps: ", len(clean_english_google_apps))
# Creating clean_English_iOS_Apps
for app in ios_apps:
app_name=app[1]
if english_checker(app_name): # if english_checker function returns True, append the list with app row
clean_english_ios_apps.append(app)
print("No. of English ios Apps: ", len(clean_english_ios_apps))
No. of English Google Apps: 9614 No. of English ios Apps: 6183
Now that we have clean dataset with apps in English, we need to find the apps that are Free to download. All we need to check is if the price of the app is given as 0 or not.
Note: The price is given as '0' in the case of google apps while '0.0' in the case of iOS apps. Both are string type. So when comparing, compare the strings.
free_english_google_apps=[] # an empty list to store Free English Google apps
free_english_ios_apps=[] # an empty list to store Free English iOS apps
# Creating clean_Free_English_Google_Apps
for app in clean_english_google_apps:
price=app[7]
if price=='0':
free_english_google_apps.append(app)
print("No. of Free, English Google apps: ", len(free_english_google_apps))
# Creating clean_Free_English_iOS_Apps
for app in clean_english_ios_apps:
price=app[4]
if price=='0.0':
free_english_ios_apps.append(app)
print("No. of Free, English iOS apps: ", len(free_english_ios_apps))
No. of Free, English Google apps: 8864 No. of Free, English iOS apps: 3222
We have successfully finished the data cleaning part. Now we have 2 data sets that are in accordance with our requirement. There are no missing values and no duplicate entries. Also all no Non-English and non-Free apps have been removed. Now we have clean data sets to work with. So it is time to do some analysis.
Our aim is to determine the kinds of apps that are likely to attract more users because our revenue is highly influenced by the number of people using our apps.
To minimize risks and overhead, our validation strategy for an app idea is comprised of three steps:
Because our end goal is to add the app on both Google Play and the App Store, we need to find app profiles that are successful on both markets.
Let's begin the analysis by getting a sense of what are the most common genres for each market. For this, we'll need to build frequency tables for a few columns in our data sets.
def freq_table(dataset,index): # defining a function to create Frequency table of any index in the dataset
table={}
total=0
for row in dataset: # iterates through the dataset
total+=1 # To count total number of rows in a dataset
key=row[index] # assigns dictionary key as row data at that index
if key in table: # if that key is found in the table
table[key]+=1 # the value of key gets updated by 1
else:
table[key]=1 # else a new key is created with value 1
table_percentage={} # creates an empty table to store the percentage value
for key in table: #iterates through the frequency table just created
percentage=(table[key]/total)*100 # calculate the percentage of each value
table_percentage[key]=percentage # adds the key:value pair to the percentage table
return table_percentage # the fuction retuns table percentage dictionary
def display_table(dataset,index): # defines a function to return a sorted percentage of frequency table
table = freq_table(dataset, index) # creates a frequency table dictionary for the given dataset
table_display = [] # creates an empty list to store the key, value pair as tuple
for key in table: # iterates through the frequency table
key_val_as_tuple = (table[key], key) # stores as value, key tuple; value stored first in order to sort
table_display.append(key_val_as_tuple) # append the list with key value tuple
# Sorts the list and prints in descending order
table_sorted = sorted(table_display, reverse = True) #sorts the frequency table in descending order
for entry in table_sorted: # iterates through the sorted table
print(entry[1], ':', entry[0]) # and prints in the Key: Value format
Now let us use this display_table function to list down the top google apps based on its categories.
print("Google Apps based on Categories \n")
display_table(free_english_google_apps,1) # category is at the index 1
Google Apps based on Categories FAMILY : 18.907942238267147 GAME : 9.724729241877256 TOOLS : 8.461191335740072 BUSINESS : 4.591606498194946 LIFESTYLE : 3.9034296028880866 PRODUCTIVITY : 3.892148014440433 FINANCE : 3.7003610108303246 MEDICAL : 3.531137184115524 SPORTS : 3.395758122743682 PERSONALIZATION : 3.3167870036101084 COMMUNICATION : 3.2378158844765346 HEALTH_AND_FITNESS : 3.0798736462093865 PHOTOGRAPHY : 2.944494584837545 NEWS_AND_MAGAZINES : 2.7978339350180503 SOCIAL : 2.6624548736462095 TRAVEL_AND_LOCAL : 2.33528880866426 SHOPPING : 2.2450361010830324 BOOKS_AND_REFERENCE : 2.1435018050541514 DATING : 1.861462093862816 VIDEO_PLAYERS : 1.7937725631768955 MAPS_AND_NAVIGATION : 1.3989169675090252 FOOD_AND_DRINK : 1.2409747292418771 EDUCATION : 1.1620036101083033 ENTERTAINMENT : 0.9589350180505415 LIBRARIES_AND_DEMO : 0.9363718411552346 AUTO_AND_VEHICLES : 0.9250902527075812 HOUSE_AND_HOME : 0.8235559566787004 WEATHER : 0.8009927797833934 EVENTS : 0.7107400722021661 PARENTING : 0.6543321299638989 ART_AND_DESIGN : 0.6430505415162455 COMICS : 0.6204873646209386 BEAUTY : 0.5979241877256317
From this sorted percentage table for google apps we have seen that Family category is leading with close to 19% among the free English apps falling under this category, almost double compared to the second in line, the Game apps with 9.7%. Before we continue to next category, lets have a quick look into the Family apps to see what kind of apps do they actually have.
count=0
for app in free_english_google_apps:
if app[1]=='FAMILY': # to print only those apps with the name 'Family'
count+=1
print(app[0], ':', app[8]) # prints App_name:content rating; to check the focussed audience
if count==25: # to print only 25 items
break
Jewels Crush- Match 3 Puzzle : Everyone Coloring & Learn : Everyone Mahjong : Everyone Super ABC! Learning games for kids! Preschool apps : Everyone Toy Pop Cubes : Everyone Educational Games 4 Kids : Everyone Candy Pop Story : Everyone Princess Coloring Book : Everyone Hello Kitty Nail Salon : Everyone Candy Smash : Everyone Happy Fruits Bomb - Cube Blast : Everyone Princess Adventures Puzzles : Everyone Kids Educational Game 3 Free : Everyone Puzzle Kids - Animals Shapes and Jigsaw Puzzles : Everyone Coloring book moana : Everyone Baby Panda Care : Everyone Kids Educational :All in One : Everyone Number Counting games for toddler preschool kids : Everyone Learn To Draw Glow Flower : Everyone No. Color - Color by Number, Number Coloring : Everyone Draw.ly - Color by Number Pixel Art Coloring : Everyone Baby puzzles : Everyone Garden Fruit Legend : Everyone Barbie™ Fashion Closet : Everyone Candy Day : Everyone
After going through a random samples of apps under Family category,we can safely say that Family apps are mainly games and activity apps for kids and teens. Most of them can very well be grouped under games category too. That makes the major percentage of google apps falling under games category.
Since games and Family category is quite saturated, it won't be a wise decision to enter into that category with yet another new app.
But before getting into any more analysis, let us look google apps based on Genre, as there is one more segregation provided by genres
print("Google Apps based on Genre \n")
display_table(free_english_google_apps,9)
Google Apps based on Genre Tools : 8.449909747292418 Entertainment : 6.069494584837545 Education : 5.347472924187725 Business : 4.591606498194946 Productivity : 3.892148014440433 Lifestyle : 3.892148014440433 Finance : 3.7003610108303246 Medical : 3.531137184115524 Sports : 3.463447653429603 Personalization : 3.3167870036101084 Communication : 3.2378158844765346 Action : 3.1024368231046933 Health & Fitness : 3.0798736462093865 Photography : 2.944494584837545 News & Magazines : 2.7978339350180503 Social : 2.6624548736462095 Travel & Local : 2.3240072202166067 Shopping : 2.2450361010830324 Books & Reference : 2.1435018050541514 Simulation : 2.0419675090252705 Dating : 1.861462093862816 Arcade : 1.8501805054151623 Video Players & Editors : 1.7712093862815883 Casual : 1.7599277978339352 Maps & Navigation : 1.3989169675090252 Food & Drink : 1.2409747292418771 Puzzle : 1.128158844765343 Racing : 0.9927797833935018 Role Playing : 0.9363718411552346 Libraries & Demo : 0.9363718411552346 Auto & Vehicles : 0.9250902527075812 Strategy : 0.9138086642599278 House & Home : 0.8235559566787004 Weather : 0.8009927797833934 Events : 0.7107400722021661 Adventure : 0.6768953068592057 Comics : 0.6092057761732852 Beauty : 0.5979241877256317 Art & Design : 0.5979241877256317 Parenting : 0.4963898916967509 Card : 0.45126353790613716 Casino : 0.42870036101083037 Trivia : 0.41741877256317694 Educational;Education : 0.39485559566787 Board : 0.3835740072202166 Educational : 0.3722924187725632 Education;Education : 0.33844765342960287 Word : 0.2594765342960289 Casual;Pretend Play : 0.236913357400722 Music : 0.2030685920577617 Racing;Action & Adventure : 0.16922382671480143 Puzzle;Brain Games : 0.16922382671480143 Entertainment;Music & Video : 0.16922382671480143 Casual;Brain Games : 0.13537906137184114 Casual;Action & Adventure : 0.13537906137184114 Arcade;Action & Adventure : 0.12409747292418773 Action;Action & Adventure : 0.10153429602888085 Educational;Pretend Play : 0.09025270758122744 Simulation;Action & Adventure : 0.078971119133574 Parenting;Education : 0.078971119133574 Entertainment;Brain Games : 0.078971119133574 Board;Brain Games : 0.078971119133574 Parenting;Music & Video : 0.06768953068592057 Educational;Brain Games : 0.06768953068592057 Casual;Creativity : 0.06768953068592057 Art & Design;Creativity : 0.06768953068592057 Education;Pretend Play : 0.056407942238267145 Role Playing;Pretend Play : 0.04512635379061372 Education;Creativity : 0.04512635379061372 Role Playing;Action & Adventure : 0.033844765342960284 Puzzle;Action & Adventure : 0.033844765342960284 Entertainment;Creativity : 0.033844765342960284 Entertainment;Action & Adventure : 0.033844765342960284 Educational;Creativity : 0.033844765342960284 Educational;Action & Adventure : 0.033844765342960284 Education;Music & Video : 0.033844765342960284 Education;Brain Games : 0.033844765342960284 Education;Action & Adventure : 0.033844765342960284 Adventure;Action & Adventure : 0.033844765342960284 Video Players & Editors;Music & Video : 0.02256317689530686 Sports;Action & Adventure : 0.02256317689530686 Simulation;Pretend Play : 0.02256317689530686 Puzzle;Creativity : 0.02256317689530686 Music;Music & Video : 0.02256317689530686 Entertainment;Pretend Play : 0.02256317689530686 Casual;Education : 0.02256317689530686 Board;Action & Adventure : 0.02256317689530686 Video Players & Editors;Creativity : 0.01128158844765343 Trivia;Education : 0.01128158844765343 Travel & Local;Action & Adventure : 0.01128158844765343 Tools;Education : 0.01128158844765343 Strategy;Education : 0.01128158844765343 Strategy;Creativity : 0.01128158844765343 Strategy;Action & Adventure : 0.01128158844765343 Simulation;Education : 0.01128158844765343 Role Playing;Brain Games : 0.01128158844765343 Racing;Pretend Play : 0.01128158844765343 Puzzle;Education : 0.01128158844765343 Parenting;Brain Games : 0.01128158844765343 Music & Audio;Music & Video : 0.01128158844765343 Lifestyle;Pretend Play : 0.01128158844765343 Lifestyle;Education : 0.01128158844765343 Health & Fitness;Education : 0.01128158844765343 Health & Fitness;Action & Adventure : 0.01128158844765343 Entertainment;Education : 0.01128158844765343 Communication;Creativity : 0.01128158844765343 Comics;Creativity : 0.01128158844765343 Casual;Music & Video : 0.01128158844765343 Card;Action & Adventure : 0.01128158844765343 Books & Reference;Education : 0.01128158844765343 Art & Design;Pretend Play : 0.01128158844765343 Art & Design;Action & Adventure : 0.01128158844765343 Arcade;Pretend Play : 0.01128158844765343 Adventure;Education : 0.01128158844765343
This segregation of apps is a bit more specific and in depth. For our analysis of finding a more profitable app, we really don't need this much of detailing. So we can use the broader classification as given by the categories. So further analysis we will make use of app classification based on categories.
display_table(free_english_ios_apps, 11)
Games : 58.16263190564867 Entertainment : 7.883302296710118 Photo & Video : 4.9658597144630665 Education : 3.662321539416512 Social Networking : 3.2898820608317814 Shopping : 2.60707635009311 Utilities : 2.5139664804469275 Sports : 2.1415270018621975 Music : 2.0484171322160147 Health & Fitness : 2.0173805090006205 Productivity : 1.7380509000620732 Lifestyle : 1.5828677839851024 News : 1.3345747982619491 Travel : 1.2414649286157666 Finance : 1.1173184357541899 Weather : 0.8690254500310366 Food & Drink : 0.8069522036002483 Reference : 0.5586592178770949 Business : 0.5276225946617008 Book : 0.4345127250155183 Navigation : 0.186219739292365 Medical : 0.186219739292365 Catalogs : 0.12414649286157665
In iOS apps also the games category is leading but here more than half of the free english apps falls under this category. Second one is entertainment with just under 8% share. By scanning through the categories and from the number of apps in those segments we can say that Appstore is dominated by for-fun apps while google play store has a balance of fun and functionality as it has similar quantities of practical use apps as well.
We have an understanding of number of apps made in each categories/genres.
Now we know that which of these categories/genres have most number of apps made. But we don't know out of these genres, which genre has more users. In order to find that we can look into the average users in each genres. To find that we can use the number of instals if it is available. But for iOS app data, number of installs isn't avaliable. So as an alternative option, we can look into using total number of user rating.
Now let us find the popularity of iOS apps in each categories. For that we can use rating_count_tot at index 5
ios_genre=freq_table(free_english_ios_apps,11) # To list down all the genres present in iOS app store
print(ios_genre)
{'Social Networking': 3.2898820608317814, 'Photo & Video': 4.9658597144630665, 'Games': 58.16263190564867, 'Music': 2.0484171322160147, 'Reference': 0.5586592178770949, 'Health & Fitness': 2.0173805090006205, 'Weather': 0.8690254500310366, 'Utilities': 2.5139664804469275, 'Travel': 1.2414649286157666, 'Shopping': 2.60707635009311, 'News': 1.3345747982619491, 'Navigation': 0.186219739292365, 'Lifestyle': 1.5828677839851024, 'Entertainment': 7.883302296710118, 'Food & Drink': 0.8069522036002483, 'Sports': 2.1415270018621975, 'Book': 0.4345127250155183, 'Finance': 1.1173184357541899, 'Education': 3.662321539416512, 'Productivity': 1.7380509000620732, 'Business': 0.5276225946617008, 'Catalogs': 0.12414649286157665, 'Medical': 0.186219739292365}
a_list=[] # an empty list to add genre and average rating
for genre in ios_genre: # we need to pick one genre each and check for them in the whole data and add their ratings
app_rating=0
total=0
for app in free_english_ios_apps:
if genre==app[11]: # if the genre in ios_genre dictionary is same as the genre in dataset
total+=1 # count the total
app_rating+=float(app[5]) # adding the app_ratings
average_rating=app_rating/total # finding the average app_rating
b_list=(average_rating, genre) # a dummy list to store average rating and genre as tuple
a_list.append(b_list) # append (average_rating, genre) tuple to a list
print (sorted(a_list, reverse=True)) # print the sorted (average_rating,genre) list
[(86090.33333333333, 'Navigation'), (74942.11111111111, 'Reference'), (71548.34905660378, 'Social Networking'), (57326.530303030304, 'Music'), (52279.892857142855, 'Weather'), (39758.5, 'Book'), (33333.92307692308, 'Food & Drink'), (31467.944444444445, 'Finance'), (28441.54375, 'Photo & Video'), (28243.8, 'Travel'), (26919.690476190477, 'Shopping'), (23298.015384615384, 'Health & Fitness'), (23008.898550724636, 'Sports'), (22788.6696905016, 'Games'), (21248.023255813954, 'News'), (21028.410714285714, 'Productivity'), (18684.456790123455, 'Utilities'), (16485.764705882353, 'Lifestyle'), (14029.830708661417, 'Entertainment'), (7491.117647058823, 'Business'), (7003.983050847458, 'Education'), (4004.0, 'Catalogs'), (612.0, 'Medical')]
Here we can see Navigation apps are the most popular, followed by Reference and social networking apps. Lets quickly check the top apps in each of these categories.
for app in free_english_ios_apps:
if app[11]=='Navigation':
print(app[1], ":", app[5])
Waze - GPS Navigation, Maps & Real-time Traffic : 345046 Google Maps - Navigation & Transit : 154911 Geocaching® : 12811 CoPilot GPS – Car Navigation & Offline Maps : 3582 ImmobilienScout24: Real Estate Search in Germany : 187 Railway Route Search : 5
Here we can see the Waze and Google Maps have hijacked the ratings along with Geocatching app. Rest of the apps doesn't have much influence. Also competing with such giants won't be a good strategy for our app.
Now let us look at Reference apps, what are them and how they are doing.
for app in free_english_ios_apps:
if app[11]=='Reference':
print(app[1], ":", app[5])
Bible : 985920 Dictionary.com Dictionary & Thesaurus : 200047 Dictionary.com Dictionary & Thesaurus for iPad : 54175 Google Translate : 26786 Muslim Pro: Ramadan 2017 Prayer Times, Azan, Quran : 18418 New Furniture Mods - Pocket Wiki & Game Tools for Minecraft PC Edition : 17588 Merriam-Webster Dictionary : 16849 Night Sky : 12122 City Maps for Minecraft PE - The Best Maps for Minecraft Pocket Edition (MCPE) : 8535 LUCKY BLOCK MOD ™ for Minecraft PC Edition - The Best Pocket Wiki & Mods Installer Tools : 4693 GUNS MODS for Minecraft PC Edition - Mods Tools : 1497 Guides for Pokémon GO - Pokemon GO News and Cheats : 826 WWDC : 762 Horror Maps for Minecraft PE - Download The Scariest Maps for Minecraft Pocket Edition (MCPE) Free : 718 VPN Express : 14 Real Bike Traffic Rider Virtual Reality Glasses : 8 教えて!goo : 0 Jishokun-Japanese English Dictionary & Translator : 0
In this category, Bible, Quran and dictionary apps have influenced the ratings quite a bit. There a few guides too available in this category. If we can create a guide for something that is in high demand, then only we can create a successful app. So venturing into this category might also be not a great idea to start off with.
So let us go to the next category which is social networking. This category, without any analysis we can guess that is already very strong category because of the big names likes Facebook, instagram, twitter etc. But lets cross check our general knowledge with data.
count=0
for app in free_english_ios_apps:
if app[11]=='Social Networking':
count+=1
print(app[1], ":", app[5])
if count==25: # to print only 25 apps from the long list
break
Facebook : 2974676 Pinterest : 1061624 Skype for iPhone : 373519 Messenger : 351466 Tumblr : 334293 WhatsApp Messenger : 287589 Kik : 260965 ooVoo – Free Video Call, Text and Voice : 177501 TextNow - Unlimited Text + Calls : 164963 Viber Messenger – Text & Call : 164249 Followers - Social Analytics For Instagram : 112778 MeetMe - Chat and Meet New People : 97072 We Heart It - Fashion, wallpapers, quotes, tattoos : 90414 InsTrack for Instagram - Analytics Plus More : 85535 Tango - Free Video Call, Voice and Chat : 75412 LinkedIn : 71856 Match™ - #1 Dating App. : 60659 Skype for iPad : 60163 POF - Best Dating App for Conversations : 52642 Timehop : 49510 Find My Family, Friends & iPhone - Life360 Locator : 43877 Whisper - Share, Express, Meet : 39819 Hangouts : 36404 LINE PLAY - Your Avatar World : 34677 WeChat : 34584
The guess was almost right. Facebook leads the way and there is a tight competition to face for any new app that comes into this category. Looking at this past data and seeing Telegram with 7573 should also give a good indication that if we can create a feature rich innovative social networking app, there are still chances. But we might not venture into this category at the moment due to high competition.
It was surprising not to find instagram and twitter in the list. So lets just quickly check for them before we go into the next category.
for app in free_english_ios_apps:
if app[1]=='Instagram':
print(app[1], ":", app[5], app[11])
if app[1]=='Twitter':
print(app[1], ":", app[5], app[11])
Instagram : 2161558 Photo & Video Twitter : 354058 News
Instagram is listed under Photo and video while Twitter under News. They are not among the social network. But most people consider them the 'Social media', and hence our conclusion of high competition is justified again.
for app in free_english_ios_apps:
if app[11]=='Music':
print(app[1], ":", app[5])
Pandora - Music & Radio : 1126879 Spotify Music : 878563 Shazam - Discover music, artists, videos & lyrics : 402925 iHeartRadio – Free Music & Radio Stations : 293228 SoundCloud - Music & Audio : 135744 Magic Piano by Smule : 131695 Smule Sing! : 119316 TuneIn Radio - MLB NBA Audiobooks Podcasts Music : 110420 Amazon Music : 106235 SoundHound Song Search & Music Player : 82602 Sonos Controller : 48905 Bandsintown Concerts : 30845 Karaoke - Sing Karaoke, Unlimited Songs! : 28606 My Mixtapez Music : 26286 Sing Karaoke Songs Unlimited with StarMaker : 26227 Ringtones for iPhone & Ringtone Maker : 25403 Musi - Unlimited Music For YouTube : 25193 AutoRap by Smule : 18202 Spinrilla - Mixtapes For Free : 15053 Napster - Top Music & Radio : 14268 edjing Mix:DJ turntable to remix and scratch music : 13580 Free Music - MP3 Streamer & Playlist Manager Pro : 13443 Free Piano app by Yokee : 13016 Google Play Music : 10118 Certified Mixtapes - Hip Hop Albums & Mixtapes : 9975 TIDAL : 7398 YouTube Music : 7109 Nicki Minaj: The Empire : 5196 Sounds app - Music And Friends : 5126 SongFlip - Free Music Streamer : 5004 Simple Radio - Live AM & FM Radio Stations : 4787 Deezer - Listen to your Favorite Music & Playlists : 4677 Ringtones for iPhone with Ringtone Maker : 4013 Bose SoundTouch : 3687 Amazon Alexa : 3018 DatPiff : 2815 Trebel Music - Unlimited Music Downloader : 2570 Free Music Play - Mp3 Streamer & Player : 2496 Acapella from PicPlayPost : 2487 Coach Guitar - Lessons & Easy Tabs For Beginners : 2416 Musicloud - MP3 and FLAC Music Player for Cloud Platforms. : 2211 Piano - Play Keyboard Music Games with Magic Tiles : 1636 Boom: Best Equalizer & Magical Surround Sound : 1375 Music Freedom - Unlimited Free MP3 Music Streaming : 1246 AmpMe - A Portable Social Party Music Speaker : 1047 Medly - Music Maker : 933 Bose Connect : 915 Music Memos : 909 UE BOOM : 612 LiveMixtapes : 555 NOISE : 355 MP3 Music Player & Streamer for Clouds : 329 Musical Video Maker - Create Music clips lip sync : 320 Cloud Music Player - Downloader & Playlist Manager : 319 Remixlive - Remix loops with pads : 288 QQ音乐HD : 224 Blocs Wave - Make & Record Music : 158 PlayGround • Music At Your Fingertips : 150 Music and Chill : 135 The Singing Machine Mobile Karaoke App : 130 radio.de - Der Radioplayer : 64 Free Music - Player & Streamer for Dropbox, OneDrive & Google Drive : 46 NRJ Radio : 38 Smart Music: Streaming Videos and Radio : 17 BOSS Tuner : 13 PetitLyrics : 0
for app in free_english_ios_apps:
if app[11]=='Book':
print(app[1], ":", app[5])
Kindle – Read eBooks, Magazines & Textbooks : 252076 Audible – audio books, original series & podcasts : 105274 Color Therapy Adult Coloring Book for Adults : 84062 OverDrive – Library eBooks and Audiobooks : 65450 HOOKED - Chat Stories : 47829 BookShout: Read eBooks & Track Your Reading Goals : 879 Dr. Seuss Treasury — 50 best kids books : 451 Green Riding Hood : 392 Weirdwood Manor : 197 MangaZERO - comic reader : 9 ikouhoushi : 0 MangaTiara - love comic reader : 0 謎解き : 0 謎解き2016 : 0
In the book category kindle and audible are leading. But other than that there are very less competition. So that gives us some hope. If we can bring a popular book into an app, or combine one of the popular category with book, we might have a winning combination. We will take a decision on this category after going through the google app data also.
Next category to analys is Food and drinks.
for app in free_english_ios_apps:
if app[11]=='Food & Drink':
print(app[1], ":", app[5])
Starbucks : 303856 Domino's Pizza USA : 258624 OpenTable - Restaurant Reservations : 113936 Allrecipes Dinner Spinner : 109349 DoorDash - Food Delivery : 25947 UberEATS: Uber for Food Delivery : 17865 Postmates - Food Delivery, Faster : 9519 Dunkin' Donuts - Get Offers, Coupons & Rewards : 9068 Chick-fil-A : 5665 McDonald's : 4050 Deliveroo: Restaurant Delivery - Order Food Nearby : 1702 SONIC Drive-In : 1645 Nowait Guest : 1625 7-Eleven, Inc. : 1356 Outback : 805 Bon Appetit : 750 Starbucks Keyboard : 457 Whataburger : 197 Delish Eatmoji Keyboard : 154 Lieferheld - Delicious food delivery service : 29 Lieferando.de : 29 McDo France : 22 Chefkoch - Rezepte, Kochen, Backen & Kochbuch : 20 Youmiam : 9 Marmiton Twist : 2 Open Food Facts : 1
Most of the big players are either in food business or food delivery business. Since we are not planning to create any physical products or delivery service, this category might not be the best option to start with.
Finance category needs specialised knowledge and we might need to spend money to find the right people for the operations. Travel category is already very popular and offers big competition. Same goes with shopping too.
After analysing the first 10 or so categories, the one category that might make some sense is 'Book' category. If we can find a popular book and offer some extra services and convert it into an app, it will be a good starting point to test our idea and to create a new app. So with that conclusion, we can start looking into Google apps data.
For the google apps, the data regarding number of installs are already given. But they are not precise. It only indicates that the value is more than a certain number, for example 1000+, 50000+ etc
To get a general idea for our analysis, we will consider 1000+ as 1000 and so on to do our analysis. In order to do that we need to clean the data and remove the extra symbols and need to convert it to float from string.
So let's find the average number of installation of apps in each category.
category_list=[] # an empty list to add the list of categories
android_category=freq_table(free_english_google_apps,1) # creating freq table of google apps
for category in android_category: # iterating through android category dictionary
total_installs=0
length_of_category=0
for app in free_english_google_apps: # iterating through google app dataset
app_category=app[1]
if category==app_category: # if category in the dictionary is same as that of app_category
no_of_installs = app[5]
no_of_installs = no_of_installs.replace(',','') # replacing the string symbols with blank space
no_of_installs = no_of_installs.replace('+','')
total_installs += float(no_of_installs) # converting the cleaned string into a float
length_of_category += 1 # counting the length of category
avg_installs = total_installs/length_of_category
storing_list = [avg_installs, category] # dummy list to store [avg_install,category]
category_list.append(storing_list) # appending storing list to category list
print(sorted(category_list, reverse=True)) # print the sorted category list
[[38456119.167247385, 'COMMUNICATION'], [24727872.452830188, 'VIDEO_PLAYERS'], [23253652.127118643, 'SOCIAL'], [17840110.40229885, 'PHOTOGRAPHY'], [16787331.344927534, 'PRODUCTIVITY'], [15588015.603248259, 'GAME'], [13984077.710144928, 'TRAVEL_AND_LOCAL'], [11640705.88235294, 'ENTERTAINMENT'], [10801391.298666667, 'TOOLS'], [9549178.467741935, 'NEWS_AND_MAGAZINES'], [8767811.894736841, 'BOOKS_AND_REFERENCE'], [7036877.311557789, 'SHOPPING'], [5201482.6122448975, 'PERSONALIZATION'], [5074486.197183099, 'WEATHER'], [4188821.9853479853, 'HEALTH_AND_FITNESS'], [4056941.7741935486, 'MAPS_AND_NAVIGATION'], [3695641.8198090694, 'FAMILY'], [3638640.1428571427, 'SPORTS'], [1986335.0877192982, 'ART_AND_DESIGN'], [1924897.7363636363, 'FOOD_AND_DRINK'], [1833495.145631068, 'EDUCATION'], [1712290.1474201474, 'BUSINESS'], [1437816.2687861272, 'LIFESTYLE'], [1387692.475609756, 'FINANCE'], [1331540.5616438356, 'HOUSE_AND_HOME'], [854028.8303030303, 'DATING'], [817657.2727272727, 'COMICS'], [647317.8170731707, 'AUTO_AND_VEHICLES'], [638503.734939759, 'LIBRARIES_AND_DEMO'], [542603.6206896552, 'PARENTING'], [513151.88679245283, 'BEAUTY'], [253542.22222222222, 'EVENTS'], [120550.61980830671, 'MEDICAL']]
Now we have a sorted list of the top categories along with their average installations. The top 10 categories are communication, video player, social, photography, productivity, game, travel and local, entertainment, tools and news and magazines. Now let us look deeper into these categories.
i=0
for app in free_english_google_apps:
if app[1]=='COMMUNICATION' and app[5]=='1,000,000,000+': # to find top installed Communication apps
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 WhatsApp Messenger : 1,000,000,000+ No: 2 Messenger – Text and Video Chat for Free : 1,000,000,000+ No: 3 Skype - free IM & video calls : 1,000,000,000+ No: 4 Google Chrome: Fast & Secure : 1,000,000,000+ No: 5 Gmail : 1,000,000,000+ No: 6 Hangouts : 1,000,000,000+
i=0
for app in free_english_google_apps:
if app[1]=='COMMUNICATION' and app[5]=='500,000,000+':
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Google Duo - High Quality Video Calls : 500,000,000+ No: 2 imo free video calls and chat : 500,000,000+ No: 3 LINE: Free Calls & Messages : 500,000,000+ No: 4 UC Browser - Fast Download Private & Secure : 500,000,000+ No: 5 Viber Messenger : 500,000,000+
i=0
for app in free_english_google_apps:
if app[1]=='COMMUNICATION' and app[5]=='100,000,000+':
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 imo beta free calls and text : 100,000,000+ No: 2 Android Messages : 100,000,000+ No: 3 Who : 100,000,000+ No: 4 GO SMS Pro - Messenger, Free Themes, Emoji : 100,000,000+ No: 5 Firefox Browser fast & private : 100,000,000+ No: 6 Messenger Lite: Free Calls & Messages : 100,000,000+ No: 7 Kik : 100,000,000+ No: 8 KakaoTalk: Free Calls & Text : 100,000,000+ No: 9 Opera Mini - fast web browser : 100,000,000+ No: 10 Opera Browser: Fast and Secure : 100,000,000+ No: 11 Telegram : 100,000,000+ No: 12 Truecaller: Caller ID, SMS spam blocking & Dialer : 100,000,000+ No: 13 UC Browser Mini -Tiny Fast Private & Secure : 100,000,000+ No: 14 WeChat : 100,000,000+ No: 15 Yahoo Mail – Stay Organized : 100,000,000+ No: 16 BBM - Free Calls & Messages : 100,000,000+
Communication : We can see that there are some major giants with a big share of the communication category.
Same will be true for Video players with youtube and social with facebook. Due to high competition, these categories aren't the best to enter.
i=0
for app in free_english_google_apps:
if app[1]=='PHOTOGRAPHY' and (app[5]=='1,000,000,000+' or app[5]=='100,000,000+'):
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 B612 - Beauty & Filter Camera : 100,000,000+ No: 2 YouCam Makeup - Magic Selfie Makeovers : 100,000,000+ No: 3 Sweet Selfie - selfie camera, beauty cam, photo edit : 100,000,000+ No: 4 Google Photos : 1,000,000,000+ No: 5 Retrica : 100,000,000+ No: 6 Photo Editor Pro : 100,000,000+ No: 7 BeautyPlus - Easy Photo Editor & Selfie Camera : 100,000,000+ No: 8 PicsArt Photo Studio: Collage Maker & Pic Editor : 100,000,000+ No: 9 Photo Collage Editor : 100,000,000+ No: 10 Z Camera - Photo Editor, Beauty Selfie, Collage : 100,000,000+ No: 11 PhotoGrid: Video & Pic Collage Maker, Photo Editor : 100,000,000+ No: 12 Candy Camera - selfie, beauty camera, photo editor : 100,000,000+ No: 13 YouCam Perfect - Selfie Photo Editor : 100,000,000+ No: 14 Camera360: Selfie Photo Editor with Funny Sticker : 100,000,000+ No: 15 S Photo Editor - Collage Maker , Photo Collage : 100,000,000+ No: 16 AR effect : 100,000,000+ No: 17 Cymera Camera- Photo Editor, Filter,Collage,Layout : 100,000,000+ No: 18 LINE Camera - Photo editor : 100,000,000+ No: 19 Photo Editor Collage Maker Pro : 100,000,000+
Now let us look at Productivity category.
i=0
for app in free_english_google_apps:
if app[1]=='PRODUCTIVITY'and (app[5]=='1,000,000,000+' or app[5]=='500,000,000+' or app[5]=='100,000,000+'):
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Microsoft Word : 500,000,000+ No: 2 Microsoft Outlook : 100,000,000+ No: 3 Microsoft OneDrive : 100,000,000+ No: 4 Microsoft OneNote : 100,000,000+ No: 5 Google Keep : 100,000,000+ No: 6 ES File Explorer File Manager : 100,000,000+ No: 7 Dropbox : 500,000,000+ No: 8 Google Docs : 100,000,000+ No: 9 Microsoft PowerPoint : 100,000,000+ No: 10 Samsung Notes : 100,000,000+ No: 11 SwiftKey Keyboard : 100,000,000+ No: 12 Google Drive : 1,000,000,000+ No: 13 Adobe Acrobat Reader : 100,000,000+ No: 14 Google Sheets : 100,000,000+ No: 15 Microsoft Excel : 100,000,000+ No: 16 WPS Office - Word, Docs, PDF, Note, Slide & Sheet : 100,000,000+ No: 17 Google Slides : 100,000,000+ No: 18 ColorNote Notepad Notes : 100,000,000+ No: 19 Evernote – Organizer, Planner for Notes & Memos : 100,000,000+ No: 20 Google Calendar : 500,000,000+ No: 21 Cloud Print : 500,000,000+ No: 22 CamScanner - Phone PDF Creator : 100,000,000+
So let us look at the next category 'Travel and Local'.
i=0
for app in free_english_google_apps:
if app[1]=='TRAVEL_AND_LOCAL':
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 trivago: Hotels & Travel : 50,000,000+ No: 2 Hopper - Watch & Book Flights : 5,000,000+ No: 3 TripIt: Travel Organizer : 1,000,000+ No: 4 Trip by Skyscanner - City & Travel Guide : 500,000+ No: 5 CityMaps2Go Plan Trips Travel Guide Offline Maps : 1,000,000+ No: 6 KAYAK Flights, Hotels & Cars : 10,000,000+ No: 7 World Travel Guide by Triposo : 500,000+ No: 8 Booking.com Travel Deals : 100,000,000+ No: 9 Hostelworld: Hostels & Cheap Hotels Travel App : 1,000,000+ No: 10 Google Trips - Travel Planner : 5,000,000+ No: 11 GPS Map Free : 5,000,000+ No: 12 GasBuddy: Find Cheap Gas : 10,000,000+ No: 13 Southwest Airlines : 5,000,000+ No: 14 AT&T Navigator: Maps, Traffic : 10,000,000+ No: 15 VZ Navigator : 50,000,000+ No: 16 KakaoMap - Map / Navigation : 10,000,000+ No: 17 AirAsia : 10,000,000+ No: 18 Expedia Hotels, Flights & Car Rental Travel Deals : 10,000,000+ No: 19 Goibibo - Flight Hotel Bus Car IRCTC Booking App : 10,000,000+ No: 20 Allegiant : 1,000,000+ No: 21 Amtrak : 1,000,000+ No: 22 JAL (Domestic and international flights) : 1,000,000+ No: 23 Flight & Hotel Booking App - ixigo : 5,000,000+ No: 24 VZ Navigator for Tablets : 500,000+ No: 25 TripAdvisor Hotels Flights Restaurants Attractions : 100,000,000+ No: 26 HSL - Tickets, route planner and information : 100,000+ No: 27 Wisepilot for XPERIA™ : 5,000,000+ No: 28 VZ Navigator for Galaxy S4 : 5,000,000+ No: 29 MAIN : 1,000,000+ No: 30 Yoriza Pension - travel, lodging, pension, camping, caravan, pool villas accommodation discount : 1,000,000+ No: 31 Foursquare Swarm: Check In : 10,000,000+ No: 32 PagesJaunes - local search : 10,000,000+ No: 33 Flightradar24 Flight Tracker : 10,000,000+ No: 34 Yatra - Flights, Hotels, Bus, Trains & Cabs : 10,000,000+ No: 35 SNCF : 5,000,000+ No: 36 Fly Delta : 5,000,000+ No: 37 Skyscanner : 10,000,000+ No: 38 Despegar.com Hotels and Flights : 10,000,000+ No: 39 Navigation Plus : 1,000,000+ No: 40 2GIS: directory & navigator : 50,000,000+ No: 41 Poynt : 5,000,000+ No: 42 Gaode Map : 1,000,000+ No: 43 Priceline Hotel Deals, Rental Cars & Flights : 5,000,000+ No: 44 TravelPirates : 1,000,000+ No: 45 Free Radar Detector : 1,000,000+ No: 46 American Airlines : 5,000,000+ No: 47 Where to travel - ticket. hotel. train ticket. car ticket. travel. tickets : 1,000,000+ No: 48 United Airlines : 5,000,000+ No: 49 NTES : 10,000,000+ No: 50 Where is my Train : Indian Railway & PNR Status : 10,000,000+ No: 51 MakeMyTrip-Flight Hotel Bus Cab IRCTC Rail Booking : 10,000,000+ No: 52 Restaurant Finder : 1,000,000+ No: 53 Zagat : 100,000+ No: 54 Gormey: Find Best Restaurants : 1,000+ No: 55 Find Dining Restaurant Finder : 100,000+ No: 56 Urbanspoon Restaurant Reviews : 5,000,000+ No: 57 Yelp: Food, Shopping, Services Nearby : 10,000,000+ No: 58 Qatar Airways : 1,000,000+ No: 59 Hipmunk Hotels & Flights : 1,000,000+ No: 60 Skiplagged — Exclusive Flights & Hotels : 1,000,000+ No: 61 CWT To Go : 100,000+ No: 62 British Airways : 1,000,000+ No: 63 Cheap Flights & Hotels momondo : 5,000,000+ No: 64 CheapTickets – Hotels, Flights & Travel Deals : 1,000,000+ No: 65 JetBlue : 1,000,000+ No: 66 Flights : 1,000,000+ No: 67 Cheapflights – Flight Search : 5,000,000+ No: 68 KLM - Royal Dutch Airlines : 1,000,000+ No: 69 Orbitz - Hotels, Flights & Package Deals : 1,000,000+ No: 70 Lufthansa : 1,000,000+ No: 71 easyJet: Travel App : 10,000,000+ No: 72 IndiGo : 5,000,000+ No: 73 LateRooms: Find Hotel Deals : 1,000,000+ No: 74 Choice Hotels : 1,000,000+ No: 75 Couchsurfing Travel App : 1,000,000+ No: 76 Hotwire Hotel & Car Rental App : 1,000,000+ No: 77 HOTEL DEALS : 100,000+ No: 78 HomeAway Vacation Rentals : 5,000,000+ No: 79 IHG®: Hotel Deals & Rewards : 1,000,000+ No: 80 SPG: Starwood Hotels & Resorts : 1,000,000+ No: 81 Hotels.com: Book Hotel Rooms & Find Vacation Deals : 10,000,000+ No: 82 HotelTonight: Book amazing deals at great hotels : 5,000,000+ No: 83 Airbnb : 10,000,000+ No: 84 Hotels Combined - Cheap deals : 5,000,000+ No: 85 Agoda – Hotel Booking Deals : 10,000,000+ No: 86 Turo - Better Than Car Rental : 1,000,000+ No: 87 Ascape VR: 360° Virtual Travel : 100,000+ No: 88 Cheap hotel deals and discounts — Hotellook : 1,000,000+ No: 89 Maps - Navigate & Explore : 1,000,000,000+ No: 90 GPS Status & Toolbox : 10,000,000+ No: 91 Airport + Flight Tracker Radar : 1,000,000+ No: 92 Scout GPS Navigation & Meet Up : 5,000,000+ No: 93 Street Panorama View : 1,000,000+ No: 94 Geo Tracker - GPS tracker : 1,000,000+ No: 95 DreamTrips : 500,000+ No: 96 Navmii GPS USA (Navfree) : 500,000+ No: 97 Sygic Truck GPS Navigation : 1,000,000+ No: 98 Google Street View : 1,000,000,000+ No: 99 Air Transat CinePlus B : 50,000+ No: 100 U-Haul : 100,000+ No: 101 Octo U: Your driving companion : 50,000+ No: 102 Flexiroam X : 100,000+ No: 103 Connect.ae - Local Search UAE : 10,000+ No: 104 Toppen af Danmark : 5,000+ No: 105 Alabama Road Trips : 10,000+ No: 106 Official AL Fishing & Hunting : 50,000+ No: 107 Where Am I At? : 10,000+ No: 108 Where Am I? GPS Loc : 10,000+ No: 109 Live Camera Viewer ★ World Webcam & IP Cam Streams : 10,000,000+ No: 110 Portal AR - Step Into Scotland : 5,000+ No: 111 Casino AZ/Talking Stick Resort : 10,000+ No: 112 Explore Sedona & Northern AZ : 10,000+ No: 113 Arizona Trail : 5,000+ No: 114 Phoenix and Arizona Cameras : 10,000+ No: 115 Experience BA : 100+ No: 116 BA Status : 100+ No: 117 Avios for Android : 100,000+ No: 118 Explore British Columbia - BC Travel Guide : 500+ No: 119 BC Highways - Road Conditions : 10,000+ No: 120 Victoria, BC | Tour City : 1,000+ No: 121 British Columbia Tourist Places (Guide) : 100+ No: 122 BG Metro - Red voznje : 1,000+ No: 123 BG Guide : 100+ No: 124 trip.bg : 1,000+ No: 125 Belo Horizonte Map offline : 1,000+ No: 126 BH Mission Playbook : 100+ No: 127 BH Rocking : 100+ No: 128 Digital Tourist BH Itinerary : 500+ No: 129 BL info : 5,000+ No: 130 BPme - Mobile Fuel Payment & BP Driver Rewards app : 10,000+ No: 131 Wherever BQ : 50+ No: 132 BU Dental GoGoldman : 100+ No: 133 BU Questrom Launch : 100+ No: 134 BU School of Public Health : 10+ No: 135 BV Aventure : 100+ No: 136 BV Rando : 100+ No: 137 Best Western To Go : 100,000+ No: 138 BW Map mobile : 10,000+ No: 139 Best Western e-Concierge Hotel : 10,000+ No: 140 24/7 BZ Reis : 100,000+ No: 141 BZ Vesper-App : 1,000+ No: 142 Restaurantführer Südbaden : 1,000+ No: 143 BZ Straußenführer : 10,000+ No: 144 California Cameras - Traffic : 10,000+ No: 145 Kiosque CD : 5+ No: 146 US 115th CD : 5+ No: 147 CE AH VLJ : 1,000+ No: 148 search.ch : 500,000+ No: 149 CJ's Coffee Cafe : 500+ No: 150 Camping and Co - Camping in Europe : 1,000+ No: 151 CQ Hotels : 10,000+ No: 152 SHUTTLLS CQ - Connect Ride Go : 5+ No: 153 Cathay Pacific : 1,000,000+ No: 154 Map of Cyprus offline : 10,000+ No: 155 DB BAHN : 500+ No: 156 DB FahrtProfi : 1,000+ No: 157 DC Metro Transit - Free : 500,000+ No: 158 DC Trails-Hop On Hop Off Tours : 5,000+ No: 159 Can I pack that? - DG App : 10,000+ No: 160 DG Cars : 10,000+ No: 161 DK Eyewitness Audio Walks : 1,000+ No: 162 DM Transfers Dalaman Transfers : 10,000+ No: 163 US DV Lottery 2020 Apply : 10,000+ No: 164 US DV Lottery 2019 : 1,000+ No: 165 DW Maps : 10,000+ No: 166 junainfo.dy.fi : 100+ No: 167 Siyaha Dz : 10,000+ No: 168 IRIS : Customer Service - DZ Algeria : 1,000+ No: 169 DZ Fly Algérie Horaire Vols : 10,000+ No: 170 EA Plus : 1,000+ No: 171 EB Events : 10,000+ No: 172 Audiowalk EB : 10+ No: 173 EF Go Ahead Tour Companion : 1,000+ No: 174 EF Summits : 100+ No: 175 EG SIM CARD (EGSIMCARD) : 10,000+ No: 176 The Emirates App : 1,000,000+ No: 177 Ek-yatri: Travel where you Belong : 1+ No: 178 EL AL Flights : 100,000+ No: 179 DreamStream By EL AL : 100,000+ No: 180 El Dorado App : 10,000+ No: 181 EO Hotels : 100+ No: 182 Fill 'er Up : 5,000+ No: 183 MAPS.ME – Offline Map and Travel Navigation : 50,000,000+ No: 184 Google Earth : 100,000,000+ No: 185 Offline Maps & Navigation : 5,000,000+ No: 186 myLPG.eu : 50,000+ No: 187 Passenger rights : 50,000+ No: 188 taxi.eu : 100,000+ No: 189 To-U - free EV public charging : 1,000+ No: 190 Bird - Enjoy The Ride : 500,000+ No: 191 eCooltra: scooter sharing. Share electric scooters : 100,000+ No: 192 XE Currency : 10,000,000+ No: 193 Etihad Airways : 500,000+ No: 194 EZ TAG Express : 10,000+ No: 195 Santa Fe Map and Walks : 1,000+ No: 196 Santa Fe VIP Tours : 100+ No: 197 Toyota Cruisers & Trucks Mag : 500+ No: 198 FL State Parks Guide : 100,000+ No: 199 Florida Travel Guide : 1,000+ No: 200 The Florida Trail Guide : 5,000+ No: 201 Florida Keys : 10,000+ No: 202 Florida Travel Guide - TOURIAS : 10,000+ No: 203 Florida map : 5,000+ No: 204 Florida Beach Wallpapers HD : 100+ No: 205 ORLANDO FLORIDA MAP : 1,000+ No: 206 Florida Offline Road Map : 10,000+ No: 207 Florida Map offline : 1,000+
Next category to look into is Entertainment.
i=0
for app in free_english_google_apps:
if app[1]=='ENTERTAINMENT' and (app[5]=='1,000,000,000+' or app[5]=='500,000,000+' or app[5]=='100,000,000+'):
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Hotstar : 100,000,000+ No: 2 Talking Angela : 100,000,000+ No: 3 IMDb Movies & TV : 100,000,000+ No: 4 Talking Ben the Dog : 100,000,000+ No: 5 Netflix : 100,000,000+
Now let us look at the category : tools.
i=0
for app in free_english_google_apps:
if app[1]=='TOOLS' and (app[5]=='1,000,000,000+' or app[5]=='500,000,000+' or app[5]=='100,000,000+'):
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Google : 1,000,000,000+ No: 2 Google Translate : 500,000,000+ No: 3 Calculator : 100,000,000+ No: 4 Device Help : 100,000,000+ No: 5 Account Manager : 100,000,000+ No: 6 SHAREit - Transfer & Share : 500,000,000+ No: 7 Samsung Calculator : 100,000,000+ No: 8 Gboard - the Google Keyboard : 500,000,000+ No: 9 Google Korean Input : 100,000,000+ No: 10 Share Music & Transfer Files - Xender : 100,000,000+ No: 11 Tiny Flashlight + LED : 100,000,000+ No: 12 GO Keyboard - Cute Emojis, Themes and GIFs : 100,000,000+ No: 13 Speedtest by Ookla : 100,000,000+ No: 14 CM Locker - Security Lockscreen : 100,000,000+ No: 15 Applock : 100,000,000+ No: 16 Clean Master- Space Cleaner & Antivirus : 500,000,000+ No: 17 Lookout Security & Antivirus : 100,000,000+ No: 18 Google Now Launcher : 100,000,000+ No: 19 360 Security - Free Antivirus, Booster, Cleaner : 100,000,000+ No: 20 Samsung Smart Switch Mobile : 100,000,000+ No: 21 Avast Mobile Security 2018 - Antivirus & App Lock : 100,000,000+ No: 22 AppLock : 100,000,000+ No: 23 AVG AntiVirus 2018 for Android Security : 100,000,000+ No: 24 Security Master - Antivirus, VPN, AppLock, Booster : 500,000,000+ No: 25 Battery Doctor-Battery Life Saver & Battery Cooler : 100,000,000+ No: 26 Automatic Call Recorder : 100,000,000+ No: 27 Anti-virus Dr.Web Light : 100,000,000+ No: 28 Cache Cleaner-DU Speed Booster (booster & cleaner) : 100,000,000+ No: 29 DU Battery Saver - Battery Charger & Battery Life : 100,000,000+
Tools can be a great category to enter if we have a unique idea of a tool that most people are lacking at the moment. To find that we might need to run an expensive market research. Otherwise, it looks like the tools category offers many options already and it is saturated. So it won't be an easy entry for a new app.
Next category is News and Magazines. Since we don't have our own news agency and magazine, this category won't be the best genre to start.
Now we are coming again to Books and references.
i=0
for app in free_english_google_apps:
if app[1]=='BOOKS_AND_REFERENCE' and (app[5]=='1,000,000,000+' or app[5]=='500,000,000+' or app[5]=='100,000,000+'):
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Google Play Books : 1,000,000,000+ No: 2 Bible : 100,000,000+ No: 3 Amazon Kindle : 100,000,000+ No: 4 Wattpad 📖 Free Books : 100,000,000+ No: 5 Audiobooks from Audible : 100,000,000+
Looks like there are not many giants in this category just like it was in iOS. So let us examine the whole data for this category.
i=0
for app in free_english_google_apps:
if app[1]=='BOOKS_AND_REFERENCE' :
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 E-Book Read - Read Book for free : 50,000+ No: 2 Download free book with green book : 100,000+ No: 3 Wikipedia : 10,000,000+ No: 4 Cool Reader : 10,000,000+ No: 5 Free Panda Radio Music : 100,000+ No: 6 Book store : 1,000,000+ No: 7 FBReader: Favorite Book Reader : 10,000,000+ No: 8 English Grammar Complete Handbook : 500,000+ No: 9 Free Books - Spirit Fanfiction and Stories : 1,000,000+ No: 10 Google Play Books : 1,000,000,000+ No: 11 AlReader -any text book reader : 5,000,000+ No: 12 Offline English Dictionary : 100,000+ No: 13 Offline: English to Tagalog Dictionary : 500,000+ No: 14 FamilySearch Tree : 1,000,000+ No: 15 Cloud of Books : 1,000,000+ No: 16 Recipes of Prophetic Medicine for free : 500,000+ No: 17 ReadEra – free ebook reader : 1,000,000+ No: 18 Anonymous caller detection : 10,000+ No: 19 Ebook Reader : 5,000,000+ No: 20 Litnet - E-books : 100,000+ No: 21 Read books online : 5,000,000+ No: 22 English to Urdu Dictionary : 500,000+ No: 23 eBoox: book reader fb2 epub zip : 1,000,000+ No: 24 English Persian Dictionary : 500,000+ No: 25 Flybook : 500,000+ No: 26 All Maths Formulas : 1,000,000+ No: 27 Ancestry : 5,000,000+ No: 28 HTC Help : 10,000,000+ No: 29 English translation from Bengali : 100,000+ No: 30 Pdf Book Download - Read Pdf Book : 100,000+ No: 31 Free Book Reader : 100,000+ No: 32 eBoox new: Reader for fb2 epub zip books : 50,000+ No: 33 Only 30 days in English, the guideline is guaranteed : 500,000+ No: 34 Moon+ Reader : 10,000,000+ No: 35 SH-02J Owner's Manual (Android 8.0) : 50,000+ No: 36 English-Myanmar Dictionary : 1,000,000+ No: 37 Golden Dictionary (EN-AR) : 1,000,000+ No: 38 All Language Translator Free : 1,000,000+ No: 39 Azpen eReader : 500,000+ No: 40 URBANO V 02 instruction manual : 100,000+ No: 41 Bible : 100,000,000+ No: 42 C Programs and Reference : 50,000+ No: 43 C Offline Tutorial : 1,000+ No: 44 C Programs Handbook : 50,000+ No: 45 Amazon Kindle : 100,000,000+ No: 46 Aab e Hayat Full Novel : 100,000+ No: 47 Aldiko Book Reader : 10,000,000+ No: 48 Google I/O 2018 : 500,000+ No: 49 R Language Reference Guide : 10,000+ No: 50 Learn R Programming Full : 5,000+ No: 51 R Programing Offline Tutorial : 1,000+ No: 52 Guide for R Programming : 5+ No: 53 Learn R Programming : 10+ No: 54 R Quick Reference Big Data : 1,000+ No: 55 V Made : 100,000+ No: 56 Wattpad 📖 Free Books : 100,000,000+ No: 57 Dictionary - WordWeb : 5,000,000+ No: 58 Guide (for X-MEN) : 100,000+ No: 59 AC Air condition Troubleshoot,Repair,Maintenance : 5,000+ No: 60 AE Bulletins : 1,000+ No: 61 Ae Allah na Dai (Rasa) : 10,000+ No: 62 50000 Free eBooks & Free AudioBooks : 5,000,000+ No: 63 Ag PhD Field Guide : 10,000+ No: 64 Ag PhD Deficiencies : 10,000+ No: 65 Ag PhD Planting Population Calculator : 1,000+ No: 66 Ag PhD Soybean Diseases : 1,000+ No: 67 Fertilizer Removal By Crop : 50,000+ No: 68 A-J Media Vault : 50+ No: 69 Al-Quran (Free) : 10,000,000+ No: 70 Al Quran (Tafsir & by Word) : 500,000+ No: 71 Al Quran Indonesia : 10,000,000+ No: 72 Al'Quran Bahasa Indonesia : 10,000,000+ No: 73 Al Quran Al karim : 1,000,000+ No: 74 Al-Muhaffiz : 50,000+ No: 75 Al Quran : EAlim - Translations & MP3 Offline : 5,000,000+ No: 76 Al-Quran 30 Juz free copies : 500,000+ No: 77 Koran Read &MP3 30 Juz Offline : 1,000,000+ No: 78 Hafizi Quran 15 lines per page : 1,000,000+ No: 79 Quran for Android : 10,000,000+ No: 80 Surah Al-Waqiah : 100,000+ No: 81 Hisnul Al Muslim - Hisn Invocations & Adhkaar : 100,000+ No: 82 Satellite AR : 1,000,000+ No: 83 Audiobooks from Audible : 100,000,000+ No: 84 Kinot & Eichah for Tisha B'Av : 10,000+ No: 85 AW Tozer Devotionals - Daily : 5,000+ No: 86 Tozer Devotional -Series 1 : 1,000+ No: 87 The Pursuit of God : 1,000+ No: 88 AY Sing : 5,000+ No: 89 Ay Hasnain k Nana Milad Naat : 10,000+ No: 90 Ay Mohabbat Teri Khatir Novel : 10,000+ No: 91 Arizona Statutes, ARS (AZ Law) : 1,000+ No: 92 Oxford A-Z of English Usage : 1,000,000+ No: 93 BD Fishpedia : 1,000+ No: 94 BD All Sim Offer : 10,000+ No: 95 Youboox - Livres, BD et magazines : 500,000+ No: 96 B&H Kids AR : 10,000+ No: 97 B y H Niños ES : 5,000+ No: 98 Dictionary.com: Find Definitions for English Words : 10,000,000+ No: 99 English Dictionary - Offline : 10,000,000+ No: 100 Bible KJV : 5,000,000+ No: 101 Borneo Bible, BM Bible : 10,000+ No: 102 MOD Black for BM : 100+ No: 103 BM Box : 1,000+ No: 104 Anime Mod for BM : 100+ No: 105 NOOK: Read eBooks & Magazines : 10,000,000+ No: 106 NOOK Audiobooks : 500,000+ No: 107 NOOK App for NOOK Devices : 500,000+ No: 108 Browsery by Barnes & Noble : 5,000+ No: 109 bp e-store : 1,000+ No: 110 Brilliant Quotes: Life, Love, Family & Motivation : 1,000,000+ No: 111 BR Ambedkar Biography & Quotes : 10,000+ No: 112 BU Alsace : 100+ No: 113 Catholic La Bu Zo Kam : 500+ No: 114 Khrifa Hla Bu (Solfa) : 10+ No: 115 Kristian Hla Bu : 10,000+ No: 116 SA HLA BU : 1,000+ No: 117 Learn SAP BW : 500+ No: 118 Learn SAP BW on HANA : 500+ No: 119 CA Laws 2018 (California Laws and Codes) : 5,000+ No: 120 Bootable Methods(USB-CD-DVD) : 10,000+ No: 121 cloudLibrary : 100,000+ No: 122 SDA Collegiate Quarterly : 500+ No: 123 Sabbath School : 100,000+ No: 124 Cypress College Library : 100+ No: 125 Stats Royale for Clash Royale : 1,000,000+ No: 126 GATE 21 years CS Papers(2011-2018 Solved) : 50+ No: 127 Learn CT Scan Of Head : 5,000+ No: 128 Easy Cv maker 2018 : 10,000+ No: 129 How to Write CV : 100,000+ No: 130 CW Nuclear : 1,000+ No: 131 CY Spray nozzle : 10+ No: 132 BibleRead En Cy Zh Yue : 5+ No: 133 CZ-Help : 5+ No: 134 Modlitební knížka CZ : 500+ No: 135 Guide for DB Xenoverse : 10,000+ No: 136 Guide for DB Xenoverse 2 : 10,000+ No: 137 Guide for IMS DB : 10+ No: 138 DC HSEMA : 5,000+ No: 139 DC Public Library : 1,000+ No: 140 Painting Lulu DC Super Friends : 1,000+ No: 141 Dictionary : 10,000,000+ No: 142 Fix Error Google Playstore : 1,000+ No: 143 D. H. Lawrence Poems FREE : 1,000+ No: 144 Bilingual Dictionary Audio App : 5,000+ No: 145 DM Screen : 10,000+ No: 146 wikiHow: how to do anything : 1,000,000+ No: 147 Dr. Doug's Tips : 1,000+ No: 148 Bible du Semeur-BDS (French) : 50,000+ No: 149 La citadelle du musulman : 50,000+ No: 150 DV 2019 Entry Guide : 10,000+ No: 151 DV 2019 - EDV Photo & Form : 50,000+ No: 152 DV 2018 Winners Guide : 1,000+ No: 153 EB Annual Meetings : 1,000+ No: 154 EC - AP & Telangana : 5,000+ No: 155 TN Patta Citta & EC : 10,000+ No: 156 AP Stamps and Registration : 10,000+ No: 157 CompactiMa EC pH Calibration : 100+ No: 158 EGW Writings 2 : 100,000+ No: 159 EGW Writings : 1,000,000+ No: 160 Bible with EGW Comments : 100,000+ No: 161 My Little Pony AR Guide : 1,000,000+ No: 162 SDA Sabbath School Quarterly : 500,000+ No: 163 Duaa Ek Ibaadat : 5,000+ No: 164 Spanish English Translator : 10,000,000+ No: 165 Dictionary - Merriam-Webster : 10,000,000+ No: 166 JW Library : 10,000,000+ No: 167 Oxford Dictionary of English : Free : 10,000,000+ No: 168 English Hindi Dictionary : 10,000,000+ No: 169 English to Hindi Dictionary : 5,000,000+ No: 170 EP Research Service : 1,000+ No: 171 Hymnes et Louanges : 100,000+ No: 172 EU Charter : 1,000+ No: 173 EU Data Protection : 1,000+ No: 174 EU IP Codes : 100+ No: 175 EW PDF : 5+ No: 176 BakaReader EX : 100,000+ No: 177 EZ Quran : 50,000+ No: 178 FA Part 1 & 2 Past Papers Solved Free – Offline : 5,000+ No: 179 La Fe de Jesus : 1,000+ No: 180 La Fe de Jesús : 500+ No: 181 Le Fe de Jesus : 500+ No: 182 Florida - Pocket Brainbook : 1,000+ No: 183 Florida Statutes (FL Code) : 1,000+ No: 184 English To Shona Dictionary : 10,000+ No: 185 Greek Bible FP (Audio) : 1,000+ No: 186 Golden Dictionary (FR-AR) : 500,000+ No: 187 Fanfic-FR : 5,000+ No: 188 Bulgarian French Dictionary Fr : 10,000+ No: 189 Chemin (fr) : 1,000+ No: 190 The SCP Foundation DB fr nn5n : 1,000+
After analysing the data, we can see that there are many reliogious and reference books here. There are some technical textbooks also available. Other than that not many interesting books are available to read.
i=0
for app in free_english_google_apps:
if 'Bible' in app[0] or 'Quran' in app[0] :
i += 1
print('No:',i, '',app[0], ':', app[5])
No: 1 Bible : 100,000,000+ No: 2 Al-Quran (Free) : 10,000,000+ No: 3 Al Quran (Tafsir & by Word) : 500,000+ No: 4 Al Quran Indonesia : 10,000,000+ No: 5 Al'Quran Bahasa Indonesia : 10,000,000+ No: 6 Al Quran Al karim : 1,000,000+ No: 7 Al Quran Audio (Full 30 Juz) : 1,000,000+ No: 8 Quran for All (Al-Huda Int.) : 100,000+ No: 9 Ayat - Al Quran : 5,000,000+ No: 10 Quran Juz-30 - Mahad al Zahra : 100,000+ No: 11 Al Quran : EAlim - Translations & MP3 Offline : 5,000,000+ No: 12 Al-Quran Al-Muallim : 10,000+ No: 13 Al-Quran 30 Juz free copies : 500,000+ No: 14 Al Quran MP3 - Quran Reading® : 1,000,000+ No: 15 Hafizi Quran 15 lines per page : 1,000,000+ No: 16 Al-Quran Ahmad Saud Offline : 100,000+ No: 17 Quran for Android : 10,000,000+ No: 18 Taha Al Junaid Quran Mp3 : 50,000+ No: 19 Muslim Pro - Prayer Times, Azan, Quran & Qibla : 10,000,000+ No: 20 Holy Quran Mehmet Emin Ay : 10,000+ No: 21 Quran Khmer Offline AY : 1,000+ No: 22 Elif Ba - Learn The Holy Quran : 50,000+ No: 23 Elifba Quran Learning Game : 100,000+ No: 24 Bible KJV : 5,000,000+ No: 25 Borneo Bible, BM Bible : 10,000+ No: 26 Bible Quizzer - The App for Bible Quizzers : 100+ No: 27 BibleRead En Cy Zh Yue : 5+ No: 28 Bible du Semeur-BDS (French) : 50,000+ No: 29 Bible with EGW Comments : 100,000+ No: 30 Ek Qissa He Quran Se (Qurani Waqiyat) : 100+ No: 31 EZ Quran : 50,000+ No: 32 Greek Bible FP (Audio) : 1,000+
Our analysis shows that there are many apps based on Bible and Quran. So similarly, it will be a good idea to create an app based on a popular book with interesting addon features.
If we can transform a popular book into an app with interesting features, there is a chance that we can make some profits as books category offers lesser competition and with good research we can create a good demand too.
Also, we can look into the possibility of combining the travel category and book category and create interesting travel books since in both categories such a possibility is missing.
The number of apps in iOS and Google play store are increasing day by day. There are more than 2 million iOS apps available on the App Store, and 2.1 million Android apps on Google Play as per the data from 2018! We have analyses a very small sample data from iOS app store and Google play store to find a profitable app profile. Due to our requirement we have cleaned our data to create a data set containing free and English apps.
After doing analysis in this specific dataset we have found out
Out of these categories, the one category stood out on both iOS and google app data set was the 'Books' category. This category has lesser big names stealing the show and lesser competition. Some of the popular books in the history of mankind are huge in this category, such as the Bible and the Quaran. Next in line are the dictionaries.
It clearly shows that if we can find an interesting and popular book to convert into an app, a great demand can definitely be created. If we can provide some interesting features as add-on to elevate the experience of a book, it can be a great idea for an app.
Also, if the book category can be combined with one of the other top popular categories such as travel, food etc, it can prove to be a winning combination as such combinations are clearly lacking in these categories.