Author: Ajinkya Shinde
For this project, we'll pretend we're working as data analysts for a company that builds Android and iOS mobile apps. We make our apps available on Google Play and the App Store. We only build apps that are free to download and install, and our main source of revenue consists of in-app ads. This means our revenue for any given app is mostly influenced by the number of users who use our app — the more users that see and engage with the adds, the better.
Our goal for this project is to analyze data to help our developers understand what kinds of apps are likely to attract more users.
def explore_data(dataset, start, end, rows_and_columns=False):
dataset_slice = dataset[start:end]
for row in dataset_slice:
print(row)
print('\n') # adds a new (empty) line after each row
if rows_and_columns:
print('Number of rows:', len(dataset))
print('Number of columns:', len(dataset[0]))
from csv import reader
apple_apps = list(reader(open('AppleStore.csv')))
google_apps = list(reader(open('googleplaystore.csv')))
apple_header = apple_apps[0]
apple_apps = apple_apps[1:]
google_header = google_apps[0]
google_apps = google_apps[1:]
print('Glimpse at Apple Dataset: First 5 rows & descriptive stats')
print('\n')
explore_data(apple_apps,1, 6,True)
print('\n')
print('Glimpse at Google Dataset: First 5 rows & descriptive stats')
print('\n')
explore_data(google_apps,1, 6,True)
print('Col names from the AppleStore Dataset')
print(apple_header)
print('\n')
print('Col names from the GooglePlayStore Dataset')
print(google_header)
Glimpse at Apple Dataset: First 5 rows & descriptive stats ['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'] ['420009108', 'Temple Run', '65921024', 'USD', '0.0', '1724546', '3842', '4.5', '4.0', '1.6.2', '9+', 'Games', '40', '5', '1', '1'] ['284035177', 'Pandora - Music & Radio', '130242560', 'USD', '0.0', '1126879', '3594', '4.0', '4.5', '8.4.1', '12+', 'Music', '37', '4', '1', '1'] ['429047995', 'Pinterest', '74778624', 'USD', '0.0', '1061624', '1814', '4.5', '4.0', '6.26', '12+', 'Social Networking', '37', '5', '27', '1'] Number of rows: 7197 Number of columns: 16 Glimpse at Google Dataset: First 5 rows & descriptive stats ['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'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] ['Pixel Draw - Number Art Coloring Book', 'ART_AND_DESIGN', '4.3', '967', '2.8M', '100,000+', 'Free', '0', 'Everyone', 'Art & Design;Creativity', 'June 20, 2018', '1.1', '4.4 and up'] ['Paper flowers instructions', 'ART_AND_DESIGN', '4.4', '167', '5.6M', '50,000+', 'Free', '0', 'Everyone', 'Art & Design', 'March 26, 2017', '1.0', '2.3 and up'] Number of rows: 10841 Number of columns: 13 Col names from the AppleStore Dataset ['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'] Col names from the GooglePlayStore Dataset ['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver']
Before we start analyzing the data, we need to:
Now, lets see if there are any mistakes in the both datasets. As per the [discussion] for Google App Store Dataset (https://www.kaggle.com/lava18/google-play-store-apps/discussion/82616) and looking at point 2, let's see if this is exactly true
Since, it says that there is problem at index 10472, we have to check at index 10472 in the google_apps
dataset.
print(google_header) #printed the header just to see if everything matches up
print(google_apps[10472])
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ['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']
Now as seen from above, the problem here with the row is that the Category field contains values from cell to the right and all the values for cols after that are shifted one position to the right Lets delete the row
print(len(google_apps)) # Check length of dataset before removing entry
del google_apps[10472]
print(google_apps[10472]) #cross-check to see if this is actually true
print(len(google_apps)) # Check after the entry has been removed
10841 ['osmino Wi-Fi: free WiFi', 'TOOLS', '4.2', '134203', '4.1M', '10,000,000+', 'Free', '0', 'Everyone', 'Tools', 'August 7, 2018', '6.06.14', '4.4 and up'] 10840
print(apple_apps[apple_apps[:1] == 'Mannequin Challenge'])
['284882215', 'Facebook', '389879808', 'USD', '0.0', '2974676', '212', '3.5', '3.5', '95.0', '4+', 'Social Networking', '37', '1', '29', '1']
Let's explore for duplicacy in the dataset. From the Google Play Store Apps discussion , we can see that there exists duplicate entries for apps. Let's create a dictionary duplicate_app_count
to track the number of duplicate entries for a given app. The values in the dictionary will give the total number of duplicate entries for that corresponding app. Also, if we sum up all the values in the dictionary, we will have total number of duplicate app entries in the google app dataset
# Deleting duplicate entries from the dataset
#print(google_file)
duplicate_app_count = {}
for x in google_apps:
name = x[0]
if name in duplicate_app_count:
duplicate_app_count[name] +=1
else:
duplicate_app_count[name] = 0
print(sum(duplicate_app_count.values()))
# Summing up values will tell how many duplicate values are there
1181
Thus, there are 1181
duplicate entries in the google app dataset which we want to remove. Let's now see, the app with largest duplicate entry.
print(max(duplicate_app_count.values()))
# The record with largest duplicate entry is 8
8
Thus, the largest duplicate values for an app with duplicate name is 8
. Now, let's get the app name and check how the rows for that app look in the dataset
#Let's get the app name with highest duplicate entry
for dict_item, dict_val in duplicate_app_count.items():
if dict_val == max(duplicate_app_count.values()):
del_name = dict_item
print("App. with largest duplicate entry is "+del_name)
print('\n')
# Let's explore the dataset to see the app name
for x in google_apps:
if x[0] == del_name:
print(x)
App. with largest duplicate entry is ROBLOX ['ROBLOX', 'GAME', '4.5', '4447388', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'GAME', '4.5', '4447346', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'GAME', '4.5', '4448791', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'GAME', '4.5', '4449882', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'GAME', '4.5', '4449910', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'FAMILY', '4.5', '4449910', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'FAMILY', '4.5', '4450855', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'FAMILY', '4.5', '4450890', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up'] ['ROBLOX', 'FAMILY', '4.5', '4443407', '67M', '100,000,000+', 'Free', '0', 'Everyone 10+', 'Adventure;Action & Adventure', 'July 31, 2018', '2.347.225742', '4.1 and up']
We now have to remove these duplicate entries. But we can't remove the duplicates randonly and will have to set up a criterion on deletion. One suggestion for a criterion can be to select app with highest entry for reviews.
Let's gear up for the deletion of duplicate entry.
Create a dictionary, where each dictinary key is a unique app name and the corresponding dictionary value is the highest number of reviews of that app
Use this information stored in the dictionary to create a new data set, which will have only one entry per app (and for each app, we'll only select the entry with the highest number of reviews)
Also, the length of this dictionary will give us the number of unique app entries that should be in the final dataset.
reviews_max = {}
for each in google_apps:
name = each[0]
n_reviews = float(each[3])
if name in reviews_max and reviews_max[name] < n_reviews:
reviews_max[name] = n_reviews
if name not in reviews_max:
reviews_max[name] = n_reviews
print(len(reviews_max))
9659
Thus, the resulting dataset without duplicate entries should have 9,659 rows.
We now can use this dictonary reviews_max
to clean up the dataset.
We use two dictionaries android_clean
and already_added
, such that
android_clean
contains the unique entry per apps with highest number of
reviews. The already_added
contains the remaining duplicate entry
for that app.
android_clean = []
already_added = []
for each in google_apps:
name = each[0]
n_reviews = float(each[3])
if name not in already_added and n_reviews == reviews_max[name]:
android_clean.append(each)
already_added.append(name)
Let's explore the android_clean
data set to get a glimpse if everything is right
android_clean
to ensure it is 9,659 rows.print('The cleaned android apps dataset:',len(android_clean))
explore_data(android_clean,1,6,True)
The cleaned android apps dataset: 9659 ['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'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] ['Pixel Draw - Number Art Coloring Book', 'ART_AND_DESIGN', '4.3', '967', '2.8M', '100,000+', 'Free', '0', 'Everyone', 'Art & Design;Creativity', 'June 20, 2018', '1.1', '4.4 and up'] ['Paper flowers instructions', 'ART_AND_DESIGN', '4.4', '167', '5.6M', '50,000+', 'Free', '0', 'Everyone', 'Art & Design', 'March 26, 2017', '1.0', '2.3 and up'] ['Smoke Effect Photo Maker - Smoke Editor', 'ART_AND_DESIGN', '3.8', '178', '19M', '50,000+', 'Free', '0', 'Everyone', 'Art & Design', 'April 26, 2018', '1.1', '4.0.3 and up'] Number of rows: 9659 Number of columns: 13
Let's now repeat the same process for Apple appstore apps to see if there are any duplicate entries of the apps
duplicate_apple_apps = []
unique_apple_apps = []
for each in apple_apps:
if each[1] in unique_apple_apps:
duplicate_apple_apps.append(each[1])
else:
unique_apple_apps.append(each[1])
print('The len of duplicate apple apps:',len(duplicate_apple_apps))
The len of duplicate apple apps: 2
There are 2 duplicate entries in the apple app store dataset. Let's take a peak at how the apps look like
for each in apple_apps:
if each[1] in duplicate_apple_apps:
print(each)
print(apple_header)
['1173990889', 'Mannequin Challenge', '109705216', 'USD', '0.0', '668', '87', '3.0', '3.0', '1.4', '9+', 'Games', '37', '4', '1', '1'] ['952877179', 'VR Roller Coaster', '169523200', 'USD', '0.0', '107', '102', '3.5', '3.5', '2.0.0', '4+', 'Games', '37', '5', '1', '1'] ['1178454060', 'Mannequin Challenge', '59572224', 'USD', '0.0', '105', '58', '4.0', '4.5', '1.0.1', '4+', 'Games', '38', '5', '1', '1'] ['1089824278', 'VR Roller Coaster', '240964608', 'USD', '0.0', '67', '44', '3.5', '4.0', '0.81', '4+', 'Games', '38', '0', '1', '1'] ['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']
We now have to remove these duplicate entries. But we can't remove the duplicates randonly and will have to set up a criterion on deletion similar to we did for google appstore dataset.After taking a glimpse at the apple appstore dataset, we can filter duplicate app entries by keeping only entry for app with the latest version.
Let's gear up for the deletion of duplicate entry.
Create a dictionary, where each dictinary key is a unique app name and the corresponding dictionary value is the latest version of that app
Use this information stored in the dictionary to create a new data set, which will have only one entry per app (and for each app, we'll only select the entry with the latest version)
Also, the length of this dictionary will give us the number of unique app entries that should be in the final dataset.
version_max = {}
for each in apple_apps:
if each[1] in version_max:
if version_max[each[1]].split('.')[0]<each[9].split('.')[0]:
version_max[each[1]] = each[9]
if version_max[each[1]].split('.')[0] == each[9].split('.')[0]:
if version_max[each[1]].split('.')[1] < each[9].split('.')[1]:
version_max[each[1]] = each[9]
if version_max[each[1]].split('.')[1] == each[9].split('.')[1]:
if version_max[each[1]].split('.')[2] < each[9].split('.')[2]:
version_max[each[1]] = each[9]
else:
version_max[each[1]] = each[9]
print(version_max['Mannequin Challenge'])
print(version_max['VR Roller Coaster'])
1.4 2.0.0
Thus, we can confirm from above that the apps Mannequin Challenge
and VR Roller Coaster
have correct ratings. Let's build the clean apple app store dataset using the dictionary we just created version_max
.
To do this, we will first create a new list of lists to store the apple clean dataset. To confirm that this dataset, we will check its length which should be 2 less than the original apple_apps
dataset
apple_clean = []
for each in apple_apps:
if (each[1] not in apple_apps) & (each[9] == version_max[each[1]]):
apple_clean.append(each)
print('The length of cleaned apple apps dataset:',len(apple_clean))
print('The length of original apple apps dataset:',len(apple_apps))
The length of cleaned apple apps dataset: 7195 The length of original apple apps dataset: 7197
Thus, we confirm that the apple apps dataset has now no duplicate entries.
The language that is used to develop apps at the company is English, and thus we'd consider apps that are directed towards and English-speaking audience. Let's check if we have apps other than English. To do this, we will write a function which checks if the app name is other than English.
def filter_english_apps(input_string):
english_apps = []
non_english_apps = []
count = 0
for letter in input_string:
if ord(letter) > 127:
count += 1
if count <= 3:
return True
else:
return False
print('Check to see the function we created to filter english apps works')
print(filter_english_apps('Docs To Go™ Free Office Suite'))
print(filter_english_apps('Instachat 😜'))
print(filter_english_apps('爱奇艺PPS -《欢乐颂2》电视剧热播'))
Check to see the function we created to filter english apps works True True False
Now that we have created the function, let's filter our both datasets
#print("Google Apps with English Apps\n")
android_english_apps = []
for each in android_clean:
if filter_english_apps(each[0]):
android_english_apps.append(each)
print('Lets take a glimpse of android app dataset with only english apps')
explore_data(android_english_apps,0,6,True)
print("\n")
ios_english_apps = []
for each in apple_clean:
if filter_english_apps(each[1]):
ios_english_apps.append(each)
print('Lets take a glimpse of apple app dataset with only english apps')
explore_data(ios_english_apps,0,6,True)
Lets take a glimpse of android app dataset with only english apps ['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'] ['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'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] ['Pixel Draw - Number Art Coloring Book', 'ART_AND_DESIGN', '4.3', '967', '2.8M', '100,000+', 'Free', '0', 'Everyone', 'Art & Design;Creativity', 'June 20, 2018', '1.1', '4.4 and up'] ['Paper flowers instructions', 'ART_AND_DESIGN', '4.4', '167', '5.6M', '50,000+', 'Free', '0', 'Everyone', 'Art & Design', 'March 26, 2017', '1.0', '2.3 and up'] ['Smoke Effect Photo Maker - Smoke Editor', 'ART_AND_DESIGN', '3.8', '178', '19M', '50,000+', 'Free', '0', 'Everyone', 'Art & Design', 'April 26, 2018', '1.1', '4.0.3 and up'] Number of rows: 9614 Number of columns: 13 Lets take a glimpse of apple app dataset with only english apps ['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'] ['420009108', 'Temple Run', '65921024', 'USD', '0.0', '1724546', '3842', '4.5', '4.0', '1.6.2', '9+', 'Games', '40', '5', '1', '1'] ['284035177', 'Pandora - Music & Radio', '130242560', 'USD', '0.0', '1126879', '3594', '4.0', '4.5', '8.4.1', '12+', 'Music', '37', '4', '1', '1'] ['429047995', 'Pinterest', '74778624', 'USD', '0.0', '1061624', '1814', '4.5', '4.0', '6.26', '12+', 'Social Networking', '37', '5', '27', '1'] Number of rows: 6181 Number of columns: 16
Isolating the free apps will be our last step in the data cleaning process. We see from the header of both the datasets, we can isolate the free apps using the price
column.
android_english_free = []
ios_english_free=[]
for each in android_english_apps:
# if each[6] == 'Free':
if each[7] == '0':
android_english_free.append(each)
for each in ios_english_apps:
if each[4] == '0.0':
ios_english_free.append(each)
print("Free android english apps are : \n")
explore_data(android_english_free,1,3,True)
print("Length of free android english apps: "+str(len(android_english_free)))
print("\n")
print("Free ios english apps are : \n")
explore_data(ios_english_free,1,3,True)
print("Length of free ios english apps: "+str(len(ios_english_free)))
Free android english apps are : ['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'] ['Sketch - Draw & Paint', 'ART_AND_DESIGN', '4.5', '215644', '25M', '50,000,000+', 'Free', '0', 'Teen', 'Art & Design', 'June 8, 2018', 'Varies with device', '4.2 and up'] Number of rows: 8864 Number of columns: 13 Length of free android english apps: 8864 Free ios english apps are : ['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: 3220 Number of columns: 16 Length of free ios english apps: 3220
As we mentioned in the introduction, 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. For instance, a profile that works well for both markets might be a productivity app that makes use of gamification.
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.
import operator
def create_freq_table(dataset, col_id):
freq_dict = {}
total = len(dataset)
for each in dataset:
if each[col_id] in freq_dict:
freq_dict[each[col_id]] +=1
else:
freq_dict[each[col_id]] = 1
return freq_dict
def sorted_freq_dict(freq_dict):
total = sum(freq_dict.values())
for k,v in freq_dict.items():
freq_dict[k] = round(freq_dict[k]/total*100,3)
sorted_freq_dict = sorted(freq_dict.items(), key=operator.itemgetter(1), reverse= True)
for each in sorted_freq_dict:
print(each[0],':',each[1])
Now, that we have created a function to return frequency table. Let's see the cols in each of the datasets which will help us to find the common genres in each market
print(google_header)
print(apple_header)
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ['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']
We see that in google-app dataset, the columns Genres
and Category
seems to work .Also, we can see that in ios-app dataset, the column prime_genre
seems to work. Let's see the most common genres for each market using these columns.
Let's check the google-app dataset for columns Genre
with col id:9 and column Category
with col id:1 .
print('With column \'Genre\', the freq distributn is:')
sorted_freq_dict(create_freq_table(android_english_free,1))
With column 'Genre', the freq distributn is: FAMILY : 18.908 GAME : 9.725 TOOLS : 8.461 BUSINESS : 4.592 LIFESTYLE : 3.903 PRODUCTIVITY : 3.892 FINANCE : 3.7 MEDICAL : 3.531 SPORTS : 3.396 PERSONALIZATION : 3.317 COMMUNICATION : 3.238 HEALTH_AND_FITNESS : 3.08 PHOTOGRAPHY : 2.944 NEWS_AND_MAGAZINES : 2.798 SOCIAL : 2.662 TRAVEL_AND_LOCAL : 2.335 SHOPPING : 2.245 BOOKS_AND_REFERENCE : 2.144 DATING : 1.861 VIDEO_PLAYERS : 1.794 MAPS_AND_NAVIGATION : 1.399 FOOD_AND_DRINK : 1.241 EDUCATION : 1.162 ENTERTAINMENT : 0.959 LIBRARIES_AND_DEMO : 0.936 AUTO_AND_VEHICLES : 0.925 HOUSE_AND_HOME : 0.824 WEATHER : 0.801 EVENTS : 0.711 PARENTING : 0.654 ART_AND_DESIGN : 0.643 COMICS : 0.62 BEAUTY : 0.598
print('With column \'Category\', the freq distributn is:')
sorted_freq_dict(create_freq_table(android_english_free,9))
With column 'Category', the freq distributn is: Tools : 8.45 Entertainment : 6.069 Education : 5.347 Business : 4.592 Productivity : 3.892 Lifestyle : 3.892 Finance : 3.7 Medical : 3.531 Sports : 3.463 Personalization : 3.317 Communication : 3.238 Action : 3.102 Health & Fitness : 3.08 Photography : 2.944 News & Magazines : 2.798 Social : 2.662 Travel & Local : 2.324 Shopping : 2.245 Books & Reference : 2.144 Simulation : 2.042 Dating : 1.861 Arcade : 1.85 Video Players & Editors : 1.771 Casual : 1.76 Maps & Navigation : 1.399 Food & Drink : 1.241 Puzzle : 1.128 Racing : 0.993 Role Playing : 0.936 Libraries & Demo : 0.936 Auto & Vehicles : 0.925 Strategy : 0.914 House & Home : 0.824 Weather : 0.801 Events : 0.711 Adventure : 0.677 Comics : 0.609 Art & Design : 0.598 Beauty : 0.598 Parenting : 0.496 Card : 0.451 Casino : 0.429 Trivia : 0.417 Educational;Education : 0.395 Board : 0.384 Educational : 0.372 Education;Education : 0.338 Word : 0.259 Casual;Pretend Play : 0.237 Music : 0.203 Entertainment;Music & Video : 0.169 Puzzle;Brain Games : 0.169 Racing;Action & Adventure : 0.169 Casual;Brain Games : 0.135 Casual;Action & Adventure : 0.135 Arcade;Action & Adventure : 0.124 Action;Action & Adventure : 0.102 Educational;Pretend Play : 0.09 Parenting;Education : 0.079 Board;Brain Games : 0.079 Simulation;Action & Adventure : 0.079 Entertainment;Brain Games : 0.079 Educational;Brain Games : 0.068 Casual;Creativity : 0.068 Art & Design;Creativity : 0.068 Parenting;Music & Video : 0.068 Education;Pretend Play : 0.056 Role Playing;Pretend Play : 0.045 Education;Creativity : 0.045 Education;Brain Games : 0.034 Role Playing;Action & Adventure : 0.034 Adventure;Action & Adventure : 0.034 Education;Music & Video : 0.034 Puzzle;Action & Adventure : 0.034 Educational;Creativity : 0.034 Educational;Action & Adventure : 0.034 Entertainment;Action & Adventure : 0.034 Education;Action & Adventure : 0.034 Entertainment;Creativity : 0.034 Simulation;Pretend Play : 0.023 Casual;Education : 0.023 Video Players & Editors;Music & Video : 0.023 Entertainment;Pretend Play : 0.023 Music;Music & Video : 0.023 Sports;Action & Adventure : 0.023 Puzzle;Creativity : 0.023 Board;Action & Adventure : 0.023 Adventure;Education : 0.011 Trivia;Education : 0.011 Racing;Pretend Play : 0.011 Strategy;Action & Adventure : 0.011 Health & Fitness;Action & Adventure : 0.011 Puzzle;Education : 0.011 Video Players & Editors;Creativity : 0.011 Health & Fitness;Education : 0.011 Books & Reference;Education : 0.011 Comics;Creativity : 0.011 Lifestyle;Pretend Play : 0.011 Simulation;Education : 0.011 Card;Action & Adventure : 0.011 Music & Audio;Music & Video : 0.011 Tools;Education : 0.011 Entertainment;Education : 0.011 Strategy;Creativity : 0.011 Lifestyle;Education : 0.011 Parenting;Brain Games : 0.011 Communication;Creativity : 0.011 Travel & Local;Action & Adventure : 0.011 Art & Design;Action & Adventure : 0.011 Art & Design;Pretend Play : 0.011 Casual;Music & Video : 0.011 Strategy;Education : 0.011 Role Playing;Brain Games : 0.011 Arcade;Pretend Play : 0.011
We can see that the most common apps in google app-store by Genre
column belong to Family, Game Category and by Category
column ,belong to the Tools, Entertainment Category. Thus, most of the apps in google-app store are used for more productive purpose.
Let's do the same thing with Apple App Store Dataset.We will find the most common apps in apple app store by prime_genre
column having column id : 11
print('With column \'prime_genre\', the freq distributn is:')
sorted_freq_dict(create_freq_table(ios_english_free,11))
With column 'prime_genre', the freq distributn is: Games : 58.137 Entertainment : 7.888 Photo & Video : 4.969 Education : 3.665 Social Networking : 3.292 Shopping : 2.609 Utilities : 2.516 Sports : 2.143 Music : 2.05 Health & Fitness : 2.019 Productivity : 1.739 Lifestyle : 1.584 News : 1.335 Travel : 1.242 Finance : 1.118 Weather : 0.87 Food & Drink : 0.807 Reference : 0.559 Business : 0.528 Book : 0.435 Navigation : 0.186 Medical : 0.186 Catalogs : 0.124
Thus, we can see that most of the apps in the Apple App Store belong to the Games and Entertainment Category.
By analyzing, the most common apps in both markets tend to differ. Most of the apps in the Apple App Store belonged to the Entertainment Category(Games, Photo and Video, Tools) which also leads to the possible user leads. Most of the apps are possibly used by kids and could be our potential user targets. We can cater to improve more engagement or more in-app ads inside games which will lead us to generate more revenue. Thus, the Apple App Store Market has user profile of kids/young generations.
However, the Google AppStore market tends to deviate. Most of the apps are designed for both practical purpose(Tools, Education) and entertainment(Entertainment) as per the Category column. The Genre column seems difficult to analyze since the name of the categories is somewhat not clear. Thus, we will place emphasis on the Category Column. Most of the apps in the Google App Store should thus, be on more balanced on both the productive and entertainment side. The app profile for Google App Store Market should be family(kids, parents) or much more matured audience than the apple app store app profile.
One way to find out what genres are the most popular (have the most users) is to calculate the average number of installs for each app genre. For the Google Play data set, we can find this information in the Installs column, but this information is missing for the App Store data set. As a workaround, we'll take the total number of user ratings as a proxy, which we can find in the rating_count_tot app.
Let's start with calculating the average number of user ratings per app genre on the App Store. To do that, we'll need to:
ios_apps_by_genre = create_freq_table(ios_english_free,11)
for genre in ios_apps_by_genre:
total = 0
len_genre = 0
for each in ios_english_free:
genre_app = each[11]
if genre_app == genre:
n_ratings = float(each[5])
total+=n_ratings
len_genre+=1
avg_ratings = total/len_genre
print(genre,":",avg_ratings)
Lifestyle : 16485.764705882353 Travel : 28243.8 Navigation : 86090.33333333333 Games : 22812.92467948718 Education : 7003.983050847458 Health & Fitness : 23298.015384615384 Business : 7491.117647058823 Shopping : 26919.690476190477 Catalogs : 4004.0 Music : 57326.530303030304 Productivity : 21028.410714285714 Photo & Video : 28441.54375 Reference : 74942.11111111111 News : 21248.023255813954 Food & Drink : 33333.92307692308 Weather : 52279.892857142855 Utilities : 18684.456790123455 Social Networking : 71548.34905660378 Entertainment : 14029.830708661417 Sports : 23008.898550724636 Finance : 31467.944444444445 Book : 39758.5 Medical : 612.0
As seen from above, the most popular genre in the Apple app store by user ratings is Navigation and Reference. Let's explore how many installs for the apps in the genre Navigation
for each in ios_english_free:
if each[11] == 'Navigation':
print(each[1],":",each[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
Thus, Waze is the most popular app in the Apple App Store , with 2nd to the Google Maps
To get the number of installs for the Google Market. We will start to analyze the Installs
column.
create_freq_table(android_english_free,5)
{'0': 1, '0+': 4, '1+': 45, '1,000+': 744, '1,000,000+': 1394, '1,000,000,000+': 20, '10+': 314, '10,000+': 904, '10,000,000+': 935, '100+': 613, '100,000+': 1024, '100,000,000+': 189, '5+': 70, '5,000+': 400, '5,000,000+': 605, '50+': 170, '50,000+': 423, '50,000,000+': 204, '500+': 288, '500,000+': 493, '500,000,000+': 24}
However, the install numbers don't seem precise enough — we can see that most values are open-ended (100+, 1,000+, 5,000+, etc.) as seen from above.
For instance, we don't know whether an app with 100,000+ installs has 100,000 installs, 200,000, or 350,000. However, we don't need very precise data for our purposes — we only want to find out which app genres attract the most users, and we don't need perfect precision with respect to the number of users.
We're going to leave the numbers as they are, which means that we'll consider that an app with 100,000+ installs has 100,000 installs, and an app with 1,000,000+ installs has 1,000,000 installs, and so on. To perform computations, however, we'll need to convert each install number from string to float. This means we need to remove the commas and the plus characters, otherwise the conversion will fail and raise an error.
To remove characters from strings, we can use str.replace(old, new) method (just like list.append() or list.copy()
android_apps_by_cat = create_freq_table(android_english_free,1)
for category in android_apps_by_cat:
total = 0
len_category = 0
for each in android_english_free:
category_app = each[1]
if category_app == category:
n_installs = each[5]
n_installs = n_installs.replace('+','')
n_installs = n_installs.replace(',','')
total+=float(n_installs)
len_category+=1
avg_installs = total/len_category
print(category,":",avg_installs)
VIDEO_PLAYERS : 24727872.452830188 COMICS : 817657.2727272727 PARENTING : 542603.6206896552 PHOTOGRAPHY : 17840110.40229885 WEATHER : 5074486.197183099 FAMILY : 3695641.8198090694 ENTERTAINMENT : 11640705.88235294 DATING : 854028.8303030303 GAME : 15588015.603248259 BOOKS_AND_REFERENCE : 8767811.894736841 LIFESTYLE : 1437816.2687861272 FINANCE : 1387692.475609756 PRODUCTIVITY : 16787331.344927534 MEDICAL : 120550.61980830671 TOOLS : 10801391.298666667 EVENTS : 253542.22222222222 EDUCATION : 1833495.145631068 HEALTH_AND_FITNESS : 4188821.9853479853 COMMUNICATION : 38456119.167247385 BEAUTY : 513151.88679245283 AUTO_AND_VEHICLES : 647317.8170731707 TRAVEL_AND_LOCAL : 13984077.710144928 HOUSE_AND_HOME : 1331540.5616438356 FOOD_AND_DRINK : 1924897.7363636363 SOCIAL : 23253652.127118643 NEWS_AND_MAGAZINES : 9549178.467741935 BUSINESS : 1712290.1474201474 PERSONALIZATION : 5201482.6122448975 SHOPPING : 7036877.311557789 LIBRARIES_AND_DEMO : 638503.734939759 MAPS_AND_NAVIGATION : 4056941.7741935486 ART_AND_DESIGN : 1986335.0877192982 SPORTS : 3638640.1428571427
As seen from above, the most popular app by category is Books and Reference
, with second to Communication
. Let's see the app names in the each category.
for each in android_english_free:
if each[1] == 'BOOKS_AND_REFERENCE':
print(each[0],':',each[5])
E-Book Read - Read Book for free : 50,000+ Download free book with green book : 100,000+ Wikipedia : 10,000,000+ Cool Reader : 10,000,000+ Free Panda Radio Music : 100,000+ Book store : 1,000,000+ FBReader: Favorite Book Reader : 10,000,000+ English Grammar Complete Handbook : 500,000+ Free Books - Spirit Fanfiction and Stories : 1,000,000+ Google Play Books : 1,000,000,000+ AlReader -any text book reader : 5,000,000+ Offline English Dictionary : 100,000+ Offline: English to Tagalog Dictionary : 500,000+ FamilySearch Tree : 1,000,000+ Cloud of Books : 1,000,000+ Recipes of Prophetic Medicine for free : 500,000+ ReadEra – free ebook reader : 1,000,000+ Anonymous caller detection : 10,000+ Ebook Reader : 5,000,000+ Litnet - E-books : 100,000+ Read books online : 5,000,000+ English to Urdu Dictionary : 500,000+ eBoox: book reader fb2 epub zip : 1,000,000+ English Persian Dictionary : 500,000+ Flybook : 500,000+ All Maths Formulas : 1,000,000+ Ancestry : 5,000,000+ HTC Help : 10,000,000+ English translation from Bengali : 100,000+ Pdf Book Download - Read Pdf Book : 100,000+ Free Book Reader : 100,000+ eBoox new: Reader for fb2 epub zip books : 50,000+ Only 30 days in English, the guideline is guaranteed : 500,000+ Moon+ Reader : 10,000,000+ SH-02J Owner's Manual (Android 8.0) : 50,000+ English-Myanmar Dictionary : 1,000,000+ Golden Dictionary (EN-AR) : 1,000,000+ All Language Translator Free : 1,000,000+ Azpen eReader : 500,000+ URBANO V 02 instruction manual : 100,000+ Bible : 100,000,000+ C Programs and Reference : 50,000+ C Offline Tutorial : 1,000+ C Programs Handbook : 50,000+ Amazon Kindle : 100,000,000+ Aab e Hayat Full Novel : 100,000+ Aldiko Book Reader : 10,000,000+ Google I/O 2018 : 500,000+ R Language Reference Guide : 10,000+ Learn R Programming Full : 5,000+ R Programing Offline Tutorial : 1,000+ Guide for R Programming : 5+ Learn R Programming : 10+ R Quick Reference Big Data : 1,000+ V Made : 100,000+ Wattpad 📖 Free Books : 100,000,000+ Dictionary - WordWeb : 5,000,000+ Guide (for X-MEN) : 100,000+ AC Air condition Troubleshoot,Repair,Maintenance : 5,000+ AE Bulletins : 1,000+ Ae Allah na Dai (Rasa) : 10,000+ 50000 Free eBooks & Free AudioBooks : 5,000,000+ Ag PhD Field Guide : 10,000+ Ag PhD Deficiencies : 10,000+ Ag PhD Planting Population Calculator : 1,000+ Ag PhD Soybean Diseases : 1,000+ Fertilizer Removal By Crop : 50,000+ A-J Media Vault : 50+ Al-Quran (Free) : 10,000,000+ Al Quran (Tafsir & by Word) : 500,000+ Al Quran Indonesia : 10,000,000+ Al'Quran Bahasa Indonesia : 10,000,000+ Al Quran Al karim : 1,000,000+ Al-Muhaffiz : 50,000+ Al Quran : EAlim - Translations & MP3 Offline : 5,000,000+ Al-Quran 30 Juz free copies : 500,000+ Koran Read &MP3 30 Juz Offline : 1,000,000+ Hafizi Quran 15 lines per page : 1,000,000+ Quran for Android : 10,000,000+ Surah Al-Waqiah : 100,000+ Hisnul Al Muslim - Hisn Invocations & Adhkaar : 100,000+ Satellite AR : 1,000,000+ Audiobooks from Audible : 100,000,000+ Kinot & Eichah for Tisha B'Av : 10,000+ AW Tozer Devotionals - Daily : 5,000+ Tozer Devotional -Series 1 : 1,000+ The Pursuit of God : 1,000+ AY Sing : 5,000+ Ay Hasnain k Nana Milad Naat : 10,000+ Ay Mohabbat Teri Khatir Novel : 10,000+ Arizona Statutes, ARS (AZ Law) : 1,000+ Oxford A-Z of English Usage : 1,000,000+ BD Fishpedia : 1,000+ BD All Sim Offer : 10,000+ Youboox - Livres, BD et magazines : 500,000+ B&H Kids AR : 10,000+ B y H Niños ES : 5,000+ Dictionary.com: Find Definitions for English Words : 10,000,000+ English Dictionary - Offline : 10,000,000+ Bible KJV : 5,000,000+ Borneo Bible, BM Bible : 10,000+ MOD Black for BM : 100+ BM Box : 1,000+ Anime Mod for BM : 100+ NOOK: Read eBooks & Magazines : 10,000,000+ NOOK Audiobooks : 500,000+ NOOK App for NOOK Devices : 500,000+ Browsery by Barnes & Noble : 5,000+ bp e-store : 1,000+ Brilliant Quotes: Life, Love, Family & Motivation : 1,000,000+ BR Ambedkar Biography & Quotes : 10,000+ BU Alsace : 100+ Catholic La Bu Zo Kam : 500+ Khrifa Hla Bu (Solfa) : 10+ Kristian Hla Bu : 10,000+ SA HLA BU : 1,000+ Learn SAP BW : 500+ Learn SAP BW on HANA : 500+ CA Laws 2018 (California Laws and Codes) : 5,000+ Bootable Methods(USB-CD-DVD) : 10,000+ cloudLibrary : 100,000+ SDA Collegiate Quarterly : 500+ Sabbath School : 100,000+ Cypress College Library : 100+ Stats Royale for Clash Royale : 1,000,000+ GATE 21 years CS Papers(2011-2018 Solved) : 50+ Learn CT Scan Of Head : 5,000+ Easy Cv maker 2018 : 10,000+ How to Write CV : 100,000+ CW Nuclear : 1,000+ CY Spray nozzle : 10+ BibleRead En Cy Zh Yue : 5+ CZ-Help : 5+ Modlitební knížka CZ : 500+ Guide for DB Xenoverse : 10,000+ Guide for DB Xenoverse 2 : 10,000+ Guide for IMS DB : 10+ DC HSEMA : 5,000+ DC Public Library : 1,000+ Painting Lulu DC Super Friends : 1,000+ Dictionary : 10,000,000+ Fix Error Google Playstore : 1,000+ D. H. Lawrence Poems FREE : 1,000+ Bilingual Dictionary Audio App : 5,000+ DM Screen : 10,000+ wikiHow: how to do anything : 1,000,000+ Dr. Doug's Tips : 1,000+ Bible du Semeur-BDS (French) : 50,000+ La citadelle du musulman : 50,000+ DV 2019 Entry Guide : 10,000+ DV 2019 - EDV Photo & Form : 50,000+ DV 2018 Winners Guide : 1,000+ EB Annual Meetings : 1,000+ EC - AP & Telangana : 5,000+ TN Patta Citta & EC : 10,000+ AP Stamps and Registration : 10,000+ CompactiMa EC pH Calibration : 100+ EGW Writings 2 : 100,000+ EGW Writings : 1,000,000+ Bible with EGW Comments : 100,000+ My Little Pony AR Guide : 1,000,000+ SDA Sabbath School Quarterly : 500,000+ Duaa Ek Ibaadat : 5,000+ Spanish English Translator : 10,000,000+ Dictionary - Merriam-Webster : 10,000,000+ JW Library : 10,000,000+ Oxford Dictionary of English : Free : 10,000,000+ English Hindi Dictionary : 10,000,000+ English to Hindi Dictionary : 5,000,000+ EP Research Service : 1,000+ Hymnes et Louanges : 100,000+ EU Charter : 1,000+ EU Data Protection : 1,000+ EU IP Codes : 100+ EW PDF : 5+ BakaReader EX : 100,000+ EZ Quran : 50,000+ FA Part 1 & 2 Past Papers Solved Free – Offline : 5,000+ La Fe de Jesus : 1,000+ La Fe de Jesús : 500+ Le Fe de Jesus : 500+ Florida - Pocket Brainbook : 1,000+ Florida Statutes (FL Code) : 1,000+ English To Shona Dictionary : 10,000+ Greek Bible FP (Audio) : 1,000+ Golden Dictionary (FR-AR) : 500,000+ Fanfic-FR : 5,000+ Bulgarian French Dictionary Fr : 10,000+ Chemin (fr) : 1,000+ The SCP Foundation DB fr nn5n : 1,000+
As seen from the above, most of the android apps in the book and reference category are mostly an ebook reader apps, with the highest user ratings being for Google Play Books
. It seems the users in this category are more oriented towards reading culture. A necessary strategy
towards gaining more revenue would be do give audio-visual books /reader
which can gain more users installing them.
for each in android_english_free:
if each[1] == 'COMMUNICATION':
print(each[0],":",each[5])
WhatsApp Messenger : 1,000,000,000+ Messenger for SMS : 10,000,000+ My Tele2 : 5,000,000+ imo beta free calls and text : 100,000,000+ Contacts : 50,000,000+ Call Free – Free Call : 5,000,000+ Web Browser & Explorer : 5,000,000+ Browser 4G : 10,000,000+ MegaFon Dashboard : 10,000,000+ ZenUI Dialer & Contacts : 10,000,000+ Cricket Visual Voicemail : 10,000,000+ TracFone My Account : 1,000,000+ Xperia Link™ : 10,000,000+ TouchPal Keyboard - Fun Emoji & Android Keyboard : 10,000,000+ Skype Lite - Free Video Call & Chat : 5,000,000+ My magenta : 1,000,000+ Android Messages : 100,000,000+ Google Duo - High Quality Video Calls : 500,000,000+ Seznam.cz : 1,000,000+ Antillean Gold Telegram (original version) : 100,000+ AT&T Visual Voicemail : 10,000,000+ GMX Mail : 10,000,000+ Omlet Chat : 10,000,000+ My Vodacom SA : 5,000,000+ Microsoft Edge : 5,000,000+ Messenger – Text and Video Chat for Free : 1,000,000,000+ imo free video calls and chat : 500,000,000+ Calls & Text by Mo+ : 5,000,000+ free video calls and chat : 50,000,000+ Skype - free IM & video calls : 1,000,000,000+ Who : 100,000,000+ GO SMS Pro - Messenger, Free Themes, Emoji : 100,000,000+ Messaging+ SMS, MMS Free : 1,000,000+ chomp SMS : 10,000,000+ Glide - Video Chat Messenger : 10,000,000+ Text SMS : 10,000,000+ Talkray - Free Calls & Texts : 10,000,000+ LINE: Free Calls & Messages : 500,000,000+ GroupMe : 10,000,000+ mysms SMS Text Messaging Sync : 1,000,000+ 2ndLine - Second Phone Number : 1,000,000+ Google Chrome: Fast & Secure : 1,000,000,000+ Firefox Browser fast & private : 100,000,000+ Ninesky Browser : 1,000,000+ Dolphin Browser - Fast, Private & Adblock🐬 : 50,000,000+ UC Browser - Fast Download Private & Secure : 500,000,000+ Ghostery Privacy Browser : 1,000,000+ InBrowser - Incognito Browsing : 1,000,000+ Lightning Web Browser : 500,000+ Web Browser : 500,000+ Contacts+ : 10,000,000+ ExDialer - Dialer & Contacts : 10,000,000+ PHONE for Google Voice & GTalk : 1,000,000+ Safest Call Blocker : 1,000,000+ Full Screen Caller ID : 5,000,000+ Hiya - Caller ID & Block : 10,000,000+ Mr. Number-Block calls & spam : 10,000,000+ Should I Answer? : 1,000,000+ RocketDial Dialer & Contacts : 1,000,000+ CIA - Caller ID & Call Blocker : 5,000,000+ Calls Blacklist - Call Blocker : 10,000,000+ Call Control - Call Blocker : 5,000,000+ True Contact - Real Caller ID : 1,000,000+ Video Caller Id : 1,000,000+ Sync.ME – Caller ID & Block : 5,000,000+ Burner - Free Phone Number : 1,000,000+ Caller ID + : 1,000,000+ Gmail : 1,000,000,000+ K-9 Mail : 5,000,000+ myMail – Email for Hotmail, Gmail and Outlook Mail : 10,000,000+ Email TypeApp - Mail App : 1,000,000+ All Email Providers : 1,000,000+ Newton Mail - Email App for Gmail, Outlook, IMAP : 1,000,000+ GO Notifier : 10,000,000+ Mail.Ru - Email App : 50,000,000+ Mail1Click - Secure Mail : 10,000+ Daum Mail - Next Mail : 5,000,000+ mail.com mail : 1,000,000+ SolMail - All-in-One email app : 500,000+ Hangouts : 1,000,000,000+ Vonage Mobile® Call Video Text : 1,000,000+ JusTalk - Free Video Calls and Fun Video Chat : 5,000,000+ Azar : 50,000,000+ LokLok: Draw on a Lock Screen : 500,000+ Discord - Chat for Gamers : 10,000,000+ Messenger Lite: Free Calls & Messages : 100,000,000+ AntennaPict β : 1,000,000+ Talkatone: Free Texts, Calls & Phone Number : 10,000,000+ Kik : 100,000,000+ K-@ Mail - Email App : 100,000+ KakaoTalk: Free Calls & Text : 100,000,000+ K-9 Material (unofficial) : 5,000+ M star Dialer : 100,000+ Free WiFi Connect : 10,000,000+ m:go BiH : 10,000+ N-Com Wizard : 50,000+ Opera Mini - fast web browser : 100,000,000+ Opera Browser: Fast and Secure : 100,000,000+ Opera Mini browser beta : 10,000,000+ Psiphon Pro - The Internet Freedom VPN : 10,000,000+ ICQ — Video Calls & Chat Messenger : 10,000,000+ Telegram : 100,000,000+ AT&T Messages for Tablet : 1,000,000+ T-Mobile DIGITS : 100,000+ Truecaller: Caller ID, SMS spam blocking & Dialer : 100,000,000+ Portable Wi-Fi hotspot : 10,000,000+ AT&T Call Protect : 5,000,000+ U - Webinars, Meetings & Messenger : 500,000+ UC Browser Mini -Tiny Fast Private & Secure : 100,000,000+ /u/app : 10,000+ [verify-U] VideoIdent : 10,000+ Viber Messenger : 500,000,000+ WeChat : 100,000,000+ WhatsApp Business : 10,000,000+ WhatsCall Free Global Phone Call App & Cheap Calls : 10,000,000+ X Browser : 50,000+ Yahoo Mail – Stay Organized : 100,000,000+ Free Adblocker Browser - Adblock & Popup Blocker : 10,000,000+ Adblock Browser for Android : 10,000,000+ CM Browser - Ad Blocker , Fast Download , Privacy : 50,000,000+ Adblock Plus for Samsung Internet - Browse safe. : 1,000,000+ Ad Blocker Turbo - Adblocker Browser : 10,000+ Brave Browser: Fast AdBlocker : 5,000,000+ AG Contacts, Lite edition : 5,000+ Oklahoma Ag Co-op Council : 10+ Bee'ah Employee App : 100+ tournaments and more.aj.2 : 100+ Aj.Petra : 100+ AK Phone : 5,000+ PlacarTv Futebol Ao Vivo : 100,000+ WiFi Access Point (hotspot) : 100,000+ Access Point Names : 10,000+ Puffin Web Browser : 10,000,000+ ClanHQ : 10,000+ Ear Agent: Super Hearing : 5,000,000+ Google Voice : 10,000,000+ Google Allo : 10,000,000+ AU Call Blocker - Block Unwanted Calls Texts 2018 : 1,000+ Baby Monitor AV : 100,000+ AV Phone : 1,000+ AW - free video calls and chat : 1,000,000+ Katalogen.ax : 100+ AZ Browser. Private & Download : 100,000+ BA SALES : 1+ BD Data Plan (3G & 4G) : 500,000+ BD Internet Packages (Updated) : 50,000+ BD Dialer : 10,000+ BD Live Call : 5,000+ Best Browser BD social networking : 10+ Traffic signs BD : 500+ BF Browser by Betfilter - Stop Gambling Today! : 10,000+ My BF App : 50,000+ BH Mail : 1,000+ Zalo – Video Call : 50,000,000+ BJ - Confidential : 10+ BK Chat : 1,000+ Of the wall Arapaho bk : 5+ AC-BL : 50+ BBM - Free Calls & Messages : 100,000,000+ DMR BrandMeister Tool : 10,000+ BBMoji - Your personalized BBM Stickers : 1,000,000+ BN MALLORCA Radio : 1,000+ BQ Partners : 1,000+ BS-Mobile : 50+ ATC Unico BS : 500+ BT One Voice mobile access : 5,000+ BT Messenger : 50,000+ BT One Phone Mobile App : 10,000+ SW-100.tch by Callstel : 1,000,000+ BT MeetMe with Dolby Voice : 100,000+ Bluetooth Auto Connect : 5,000,000+ AudioBT: BT audio GPS/SMS/Text : 50,000+ BV : 100+ Feel Performer : 10,000+ Tiny Call Confirm : 1,000,000+ CB Radio Chat - for friends! : 1,000,000+ CB On Mobile : 100,000+ Virtual Walkie Talkie : 1,000,000+ Channel 19 : 100,000+ Cb browser : 50+ CF Chat: Connecting Friends : 100+ retteMi.ch : 5,000+ Chrome Dev : 5,000,000+ CJ Browser - Fast & Private : 100+ CJ DVD Rentals : 100+ CK Call NEW : 10+ CM Transfer - Share any files with friends nearby : 5,000,000+ mail.co.uk Mail : 5,000+ ClanPlay: Community and Tools for Gamers : 1,000,000+ CQ-Mobile : 1,000+ CQ-Alert : 500+ QRZ Assistant : 100,000+ Pocket Prefix Plus : 10,000+ Ham Radio Prefixes : 10,000+ CS Customizer : 1,000+ CS Browser | #1 & BEST BROWSER : 1,000+ CS Browser Beta : 5,000+ My Vodafone (GR) : 1,000,000+ IZ2UUF Morse Koch CW : 50,000+ C W Browser : 100+ CW Bluetooth SPP : 100+ CW BLE Peripheral Simulator : 500+ Morse Code Reader : 100,000+ Learn Morse Code - G0HYN Learn Morse : 5,000+ Ring : 10,000+ Hyundai CX Conference : 50+ Cy Messenger : 100+ Amadeus GR & CY : 100+ Hlášenírozhlasu.cz : 10+ SMS Sender - sluzba.cz : 1,000+ WEB.DE Mail : 10,000,000+ Your Freedom VPN Client : 5,000,000+ CallApp: Caller ID, Blocker & Phone Call Recorder : 10,000,000+ Rádio Sol Nascente DF : 500+ DG Card : 100+ Whoscall - Caller ID & Block : 10,000,000+ DK Browser : 10+ cluster.dk : 1,000+ DK TEL Dialer : 50+ DM for WhatsApp : 5,000+ DM Talk New : 5,000+ DM - The Offical Messaging App : 10+ DM Tracker : 1,000+ Call Blocker & Blacklist : 1,000+ ReadyOp DT : 1,000+ DU Browser—Browse fast & fun : 10,000,000+ Caller ID & Call Block - DU Caller : 5,000,000+ BlueDV AMBE : 1,000+ DW Contacts & Phone & Dialer : 1,000,000+ Deaf World DW : 10,000+ Ham DX Cluster & Spots Finder : 5,000+ Mircules DX Cluster Lite : 5,000+ 3G DZ Configuration : 50,000+ chat dz : 100+ love sms good morning : 5,000+ Goodbox - Mega App : 100,000+ Call Blocker - Blacklist, SMS Blocker : 1,000,000+ [EF]ShoutBox : 100+ Eg Call : 10,000+ ei : 10+ EJ messenger : 10+ Ek IRA : 10+ Orfox: Tor Browser for Android : 10,000,000+ EO Mumbai : 10+ EP RSS Reader : 100+ Voxer Walkie Talkie Messenger : 10,000,000+ ES-1 : 500+ Hangouts Dialer - Call Phones : 10,000,000+ EU Council : 1,000+ Council Voting Calculator : 5,000+ Have your say on Europe : 500+ Programi podrške EU : 100+ Inbox.eu : 10,000+ Web Browser for Android : 1,000,000+ Everbridge : 100,000+ Best Auto Call Recorder Free : 500+ EZ Wifi Notification : 10,000+ Test Server SMS FA : 5+ Lite for Facebook Messenger : 1,000,000+ FC Browser - Focus Privacy Browser : 1,000+ EHiN-FH conferenceapp : 100+ Carpooling FH Hagenberg : 100+ Wi-Fi Auto-connect : 1,000,000+ Talkie - Wi-Fi Calling, Chats, File Sharing : 500,000+ WeFi - Free Fast WiFi Connect & Find Wi-Fi Map : 1,000,000+ Sat-Fi : 5,000+ Portable Wi-Fi hotspot Free : 100,000+ TownWiFi | Wi-Fi Everywhere : 500,000+ Jazz Wi-Fi : 10,000+ Sat-Fi Voice : 1,000+ Free Wi-fi HotspoT : 50,000+ FN Web Radio : 10+ FNH Payment Info : 10+ MARKET FO : 100+ FO OP St-Nazaire : 100+ FO SODEXO : 100+ FO RCBT : 100+ FO Interim : 100+ FO PSA Sept-Fons : 100+ FO AIRBUS TLSE : 1,000+ FO STELIA Méaulte : 100+ FO AIRBUS Nantes : 100+ Firefox Focus: The privacy browser : 1,000,000+ FP Connect : 100+ FreedomPop Messaging Phone/SIM : 500,000+ FP Live : 10+ HipChat - beta version : 50,000+
As seen from the above, in the communication category, 'WhatsApp' was the most popular installed app in the Google App Store. One possible recommendation is developing more apps in the Communication Category in the Android market or coming up with more in-app ads on the Communication and Social Category.
Thus, we have successfully analyzed the app profiles in both the Google and ios App Store Markets. Based on the overall analysis, it can be concluded that the app profiles for the google market cater to users who are more matured than the apple market users. A suggestion would be to introduce more productivity apps on the Apple App Store or variants of the existing high-revenue apps from the Android App Store.