from csv import reader
# Opening the ios apps dataset
opened_file1 = open('AppleStore.csv')
read_file1 = reader(opened_file1)
list1 = list(read_file1)
ios_apps_header = list1[0]
ios_apps = list1[1:]
# Opening the google play apps dataset
opened_file2 = open('googleplaystore.csv')
read_file2 = reader(opened_file2)
list2 = list(read_file2)
google_play_apps_header = list2[0]
google_play_apps = list2[1:]
To make the datasets easier for me to explore, I created a function named explore_data() that I can repeatedly use to print rows in a readable way.
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]))
print(ios_apps_header)
print('\n')
explore_data(ios_apps,0,3,True)
['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'] ['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
We can see the number of rows and columns in the ios_apps dataset are 7197 and 16 respectively. Some column names could be difficult to comprehend, so this is the link to the documentation of the dataset. A brief look into the documentation tells that the column names that could be useful for our purpose are 'track_name', 'rating_count_tot', 'user_rating' and 'prime_genre'.
print(google_play_apps_header)
print('\n')
explore_data(google_play_apps,0,3,True)
['App', 'Category', 'Rating', 'Reviews', 'Size', 'Installs', 'Type', 'Price', 'Content Rating', 'Genres', 'Last Updated', 'Current Ver', 'Android Ver'] ['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
We can see the number of rows and columns in the google_play_apps dataset are 10841 and 13 respectively. Some column names that I find useful for our analysis are 'App', 'Rating', 'Reviews', 'Installs' and 'Type'.
In the previous step, we opened the two data sets and explored the data. Before beginning our analysis, we need to make sure the data we analyze is accurate, or the results of our analysis will be wrong. This means that we need to do the following:
The Google Play dataset has a dedicated discussion section, and we can see that one of the discussions describes an error for a certain row. Next, we print that row.
print(google_play_apps[10472])
print('\n')
print("Number of columns in google_play_apps dataset is:", len(google_play_apps_header),'\n', "Number of entries in row 10472:", len(google_play_apps[10472]) )
['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'] Number of columns in google_play_apps dataset is: 13 Number of entries in row 10472: 12
Clearly, we can see that row 10472 has one less entry due to which the error was reported. Next, we delete that row from google_play_apps dataset.
del google_play_apps[10472]
The Google play data set has a number of duplicate entries. The following code supports this observation.
duplicate_apps = []
unique_apps = []
for row in google_play_apps:
name = row[0]
if name in unique_apps:
duplicate_apps.append(row)
else:
unique_apps.append(name)
for row in duplicate_apps:
if row[0] == 'Subway Surfers':
print(row)
print('\n')
print("The number of duplicate entries is:", len(duplicate_apps))
['Subway Surfers', 'GAME', '4.5', '27723193', '76M', '1,000,000,000+', 'Free', '0', 'Everyone 10+', 'Arcade', 'July 12, 2018', '1.90.0', '4.1 and up'] ['Subway Surfers', 'GAME', '4.5', '27724094', '76M', '1,000,000,000+', 'Free', '0', 'Everyone 10+', 'Arcade', 'July 12, 2018', '1.90.0', '4.1 and up'] ['Subway Surfers', 'GAME', '4.5', '27725352', '76M', '1,000,000,000+', 'Free', '0', 'Everyone 10+', 'Arcade', 'July 12, 2018', '1.90.0', '4.1 and up'] ['Subway Surfers', 'GAME', '4.5', '27725352', '76M', '1,000,000,000+', 'Free', '0', 'Everyone 10+', 'Arcade', 'July 12, 2018', '1.90.0', '4.1 and up'] ['Subway Surfers', 'GAME', '4.5', '27711703', '76M', '1,000,000,000+', 'Free', '0', 'Everyone 10+', 'Arcade', 'July 12, 2018', '1.90.0', '4.1 and up'] The number of duplicate entries is: 1181
We don't want to count certain apps more than once when we analyze data, so we need to remove the duplicate entries and keep only one entry per app.
If you examine the rows we printed for the "Subway Surfers" app, the main difference happens on the fourth position of each row, which corresponds to the number of reviews. The different numbers show the data was collected at different times.
We will not remove duplicate entries randomly, since the most accurate entry will be the latest one. So we will keep the entry with the highest number of reviews, since this entry will be the latest.
In the next code cell, we create a dictionary that contains unique app names as keys and their corresponding maximum reviews as values.
reviews_max = {}
for row in google_play_apps:
name = row[0]
n_reviews = float(row[3])
if name in reviews_max and reviews_max[name] < n_reviews:
reviews_max[name] = n_reviews
elif name not in reviews_max:
reviews_max[name] = n_reviews
print("Expected length:", len(google_play_apps) - 1181, "Actual length:", len(reviews_max))
Expected length: 9659 Actual length: 9659
Now that we have created the dictionary with unique app names, we will use it to clean the google_play_apps dataset (that contains a number of duplicate app entries).
android_clean = []
already_added = []
for row in google_play_apps:
name = row[0]
n_reviews = float(row[3])
if reviews_max[name] == n_reviews and name not in already_added:
android_clean.append(row)
already_added.append(name)
print("Expected length of android_clean:", 9659,'\n',"Actual length of android_clean:", len(android_clean))
Expected length of android_clean: 9659 Actual length of android_clean: 9659
Since we use English for the apps we develop at our company, we'd like to analyze only the apps that are designed for an English-speaking audience. As we explore the data, it is clear that both datasets have apps with names that suggest they are not designed for an English-speaking audience. We will remove these apps in the next few steps.
We create a function that takes a string as an argument and returns "True" if any of its character falls inside the ASCII range (0-127), otherwise it returns "False".
def eng_char_or_not(string):
for char in string:
if ord(char) > 127:
return False
return True
print(eng_char_or_not('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(eng_char_or_not('Instagram'))
print(eng_char_or_not('Docs To Go™ Free Office Suite'))
print(eng_char_or_not('Instachat 😜'))
False True False False
We can see that the function couldn't correctly identify certain English app names like 'Docs To Go™ Free Office Suite' and 'Instachat 😜'. This is because emojis and characters like ™ fall outside the ASCII range and have corresponding numbers over 127.
print(ord('™'))
print(ord('😜'))
8482 128540
If we continue to use our function, we will lose useful data since many English apps will be incorrectly labeled as non-English. To minimize the impact of data loss, we'll only remove an app if its name has more than three characters with corresponding numbers falling outside the ASCII range.
def eng_char_or_not(string):
count = 0
for char in string:
if ord(char) > 127:
count += 1
if count > 3:
return False
return True
print(eng_char_or_not('Docs To Go™ Free Office Suite'))
print(eng_char_or_not('Instachat 😜'))
print(eng_char_or_not('爱奇艺PPS -《欢乐颂2》电视剧热播'))
True True False
Now we use the modified function to filter out non-English apps from both datasets. We Loop through each dataset. If an app name is identified as English, append the whole row to a separate list.
ios_english_apps = []
android_english_apps = []
# Separating English apps from ios_apps dataset
for row in ios_apps:
name = row[1]
if eng_char_or_not(name):
ios_english_apps.append(row)
# Separating English apps from google_play_apps dataset
for row in android_clean:
name = row[0]
if eng_char_or_not(name):
android_english_apps.append(row)
print(explore_data(ios_english_apps,0,3,True))
print(explore_data(android_english_apps,0,3,True))
['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: 6183 Number of columns: 16 None ['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'] Number of rows: 9614 Number of columns: 13 None
We only build apps that are free to download and install, and our main source of revenue consists of in-app ads. Our datasets contain both free and non-free apps; we'll need to isolate only the free apps for our analysis.
# Isolating free English ios apps
free_english_ios_apps = []
for row in ios_english_apps:
price = row[4]
if price == '0.0':
free_english_ios_apps.append(row)
# Isolating free English android apps
free_english_android_apps = []
for row in android_english_apps:
price = row[7]
if price == '0':
free_english_android_apps.append(row)
print(len(free_english_ios_apps))
print(len(free_english_android_apps))
3222 8864
As we stated in the beginning of this project, our goal is to determine the kinds of apps that are likely to attract more users because the number of people using our apps affect our revenue.
To minimize losses, our validation strategy for an app idea has three steps:
3.If the app is profitable after six months, we build an iOS version of the app and add it to the App Store.
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 in both markets. For instance, a profile that works well for both markets might be a productivity app that makes use of gamification.
Step1 : We create two functions named freq_table() and display_table(). freq_table() takes in two inputs: dataset (which will be a list of lists) and index (which will be an integer) and returns the frequency table (as a dictionary) for any column we want with frequencies expressed as percentages. The display_table() does the following:
def freq_table(dataset,index):
frequency_table = {}
for row in dataset:
genre = row[index]
if genre in frequency_table:
frequency_table[genre] += (1/len(dataset))*100
else:
frequency_table[genre] = (1/len(dataset))*100
return frequency_table
def display_table(dataset, index):
table = freq_table(dataset, index)
table_display = []
for key in table:
key_val_as_tuple = (table[key], key)
table_display.append(key_val_as_tuple)
table_sorted = sorted(table_display, reverse = True)
for entry in table_sorted:
print(entry[1], ':', entry[0])
return "---"
Step2 : We use the display_table() function we created in the code cell above to display the frequency table of the columns prime_genre (from free_english_ios_apps dataset), Genres (from free_english_android_apps dataset), and Category (from free_english_android_apps dataset). The indices of the columns prime_genre, Genres and Category are 11,9 and 1 repectively.
print("Frequency table for prime_genre (from free_ios_android_apps dataset) column")
print('\n')
print(display_table(free_english_ios_apps,11))
print('\n')
print("Frequency table for Category (from free_english_android_apps dataset) column")
print('\n')
print(display_table(free_english_android_apps,1))
print('\n')
print("Frequency table for Genres (from free_english_android_apps dataset) column")
print('\n')
print(display_table(free_english_android_apps,9))
Frequency table for prime_genre (from free_ios_android_apps dataset) column Games : 58.1626319056464 Entertainment : 7.883302296710134 Photo & Video : 4.965859714463075 Education : 3.6623215394165176 Social Networking : 3.2898820608317867 Shopping : 2.6070763500931133 Utilities : 2.5139664804469306 Sports : 2.1415270018621997 Music : 2.048417132216017 Health & Fitness : 2.0173805090006227 Productivity : 1.7380509000620747 Lifestyle : 1.5828677839851035 News : 1.3345747982619496 Travel : 1.2414649286157668 Finance : 1.1173184357541899 Weather : 0.8690254500310364 Food & Drink : 0.8069522036002481 Reference : 0.558659217877095 Business : 0.5276225946617009 Book : 0.4345127250155184 Navigation : 0.186219739292365 Medical : 0.186219739292365 Catalogs : 0.12414649286157665 --- Frequency table for Category (from free_english_android_apps dataset) column FAMILY : 18.907942238266926 GAME : 9.724729241877363 TOOLS : 8.46119133574016 BUSINESS : 4.591606498194979 LIFESTYLE : 3.90342960288811 PRODUCTIVITY : 3.8921480144404565 FINANCE : 3.7003610108303455 MEDICAL : 3.5311371841155417 SPORTS : 3.3957581227436986 PERSONALIZATION : 3.3167870036101235 COMMUNICATION : 3.2378158844765483 HEALTH_AND_FITNESS : 3.079873646209398 PHOTOGRAPHY : 2.944494584837555 NEWS_AND_MAGAZINES : 2.7978339350180583 SOCIAL : 2.6624548736462152 TRAVEL_AND_LOCAL : 2.335288808664261 SHOPPING : 2.2450361010830324 BOOKS_AND_REFERENCE : 2.14350180505415 DATING : 1.861462093862813 VIDEO_PLAYERS : 1.7937725631768928 MAPS_AND_NAVIGATION : 1.398916967509025 FOOD_AND_DRINK : 1.2409747292418778 EDUCATION : 1.1620036101083042 ENTERTAINMENT : 0.9589350180505433 LIBRARIES_AND_DEMO : 0.9363718411552363 AUTO_AND_VEHICLES : 0.9250902527075828 HOUSE_AND_HOME : 0.8235559566787015 WEATHER : 0.8009927797833946 EVENTS : 0.7107400722021667 PARENTING : 0.6543321299638993 ART_AND_DESIGN : 0.6430505415162459 COMICS : 0.6204873646209389 BEAUTY : 0.5979241877256319 --- Frequency table for Genres (from free_english_android_apps dataset) column Tools : 8.449909747292507 Entertainment : 6.069494584837599 Education : 5.34747292418777 Business : 4.591606498194979 Productivity : 3.8921480144404565 Lifestyle : 3.8921480144404565 Finance : 3.7003610108303455 Medical : 3.5311371841155417 Sports : 3.46344765342962 Personalization : 3.3167870036101235 Communication : 3.2378158844765483 Action : 3.1024368231047053 Health & Fitness : 3.079873646209398 Photography : 2.944494584837555 News & Magazines : 2.7978339350180583 Social : 2.6624548736462152 Travel & Local : 2.3240072202166075 Shopping : 2.2450361010830324 Books & Reference : 2.14350180505415 Simulation : 2.041967509025268 Dating : 1.861462093862813 Arcade : 1.8501805054151597 Video Players & Editors : 1.771209386281586 Casual : 1.7599277978339327 Maps & Navigation : 1.398916967509025 Food & Drink : 1.2409747292418778 Puzzle : 1.1281588447653441 Racing : 0.9927797833935037 Role Playing : 0.9363718411552363 Libraries & Demo : 0.9363718411552363 Auto & Vehicles : 0.9250902527075828 Strategy : 0.9138086642599293 House & Home : 0.8235559566787015 Weather : 0.8009927797833946 Events : 0.7107400722021667 Adventure : 0.6768953068592063 Comics : 0.6092057761732854 Beauty : 0.5979241877256319 Art & Design : 0.5979241877256319 Parenting : 0.4963898916967507 Card : 0.451263537906137 Casino : 0.42870036101083014 Trivia : 0.4174187725631767 Educational;Education : 0.3948555956678699 Board : 0.38357400722021645 Educational : 0.372292418772563 Education;Education : 0.33844765342960276 Word : 0.2594765342960288 Casual;Pretend Play : 0.23691335740072195 Music : 0.20306859205776168 Racing;Action & Adventure : 0.1692238267148014 Puzzle;Brain Games : 0.1692238267148014 Entertainment;Music & Video : 0.1692238267148014 Casual;Brain Games : 0.13537906137184114 Casual;Action & Adventure : 0.13537906137184114 Arcade;Action & Adventure : 0.12409747292418771 Action;Action & Adventure : 0.10153429602888087 Educational;Pretend Play : 0.09025270758122744 Simulation;Action & Adventure : 0.07897111913357402 Parenting;Education : 0.07897111913357402 Entertainment;Brain Games : 0.07897111913357402 Board;Brain Games : 0.07897111913357402 Parenting;Music & Video : 0.06768953068592058 Educational;Brain Games : 0.06768953068592058 Casual;Creativity : 0.06768953068592058 Art & Design;Creativity : 0.06768953068592058 Education;Pretend Play : 0.05640794223826715 Role Playing;Pretend Play : 0.04512635379061372 Education;Creativity : 0.04512635379061372 Role Playing;Action & Adventure : 0.03384476534296029 Puzzle;Action & Adventure : 0.03384476534296029 Entertainment;Creativity : 0.03384476534296029 Entertainment;Action & Adventure : 0.03384476534296029 Educational;Creativity : 0.03384476534296029 Educational;Action & Adventure : 0.03384476534296029 Education;Music & Video : 0.03384476534296029 Education;Brain Games : 0.03384476534296029 Education;Action & Adventure : 0.03384476534296029 Adventure;Action & Adventure : 0.03384476534296029 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 ---
Step3: Now, we start with analysing the frequency table we generated for the prime_genre column of App Store dataset.
Clearly, the most common genre among free english apps is "Games" constituting about 58.16% of the apps. The next most common genre is "Entertainment" which is about 7.88% of the apps. Other genres include "Social Networking"(about 3.2%), "Shopping"(abouy 2.6%) and other apps like "Education" which amounts to only around 3.7%.
Most of the apps (about 75% of them!) are designed for entertainment purposes such as games, photo and video, social networking, sports and music. About 12% of the apps are designed for practical purposes such as education, shopping, utilities, productivity and lifestyle. Other less common genres are "Health and Fitness"(about 2%), "News"(about 1.3%), "Travel"(about 1.2%), "Finance"(about 1.1%), "Weather"(about 0.8%), "Food and Drink"(about 0.8%), "Reference"(about 0.5%), "Business"(about 0.5%), "Book"(about 0.4%), "Navigation"(about 0.2%), "Medical"(about 0.2%) and "Catalogs"(about 0.1%).
A large percentage of apps of a particular genre (Game in this case) doen't automatically imply that apps of that genre generally have a large number of users. A Social Networking app, for instance, could have more users than a game. Hence, we cannot recommend an app profile for the App Store market based on this frequency table alone.
Next, we analyze the frequency table we generated for the Category and Genres column of the Google Play dataset.
Most common genres among free english android apps are "Tools", "Entertainment", "Education" and "Business" which comprise roughly 8%, 6%, 5% and 4% of the apps respectively. And the most common category of free english android apps are "Family", "Game", "Tools" and "Business" with their proportions of nearly 19% ,9%, 8% and 4% of the apps respectively .
The trends for the Google play market are vastly different from those we observed for the App Store with similar weightage of entertainment apps and apps designed for practical purposes such as Education, Business, Lifestyle and Productivity.
We can see that the frequency table we generated for both datasets reveal the most frequent app genres and do not tell anything about what genres have the most users. We will have to design another way to resolve this issue.
We want to determine the kind of apps with the most users. We can do this by calculating 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.
We start with the App Store dataset by generating a frequency table for the prime_genre column to get the unique app genres (below, we'll need to loop over the unique genres).
ios_genres_ft = freq_table(free_english_ios_apps,11)
print(ios_genres_ft)
{'Social Networking': 3.2898820608317867, 'Photo & Video': 4.965859714463075, 'Games': 58.1626319056464, 'Music': 2.048417132216017, 'Reference': 0.558659217877095, 'Health & Fitness': 2.0173805090006227, 'Weather': 0.8690254500310364, 'Utilities': 2.5139664804469306, 'Travel': 1.2414649286157668, 'Shopping': 2.6070763500931133, 'News': 1.3345747982619496, 'Navigation': 0.186219739292365, 'Lifestyle': 1.5828677839851035, 'Entertainment': 7.883302296710134, 'Food & Drink': 0.8069522036002481, 'Sports': 2.1415270018621997, 'Book': 0.4345127250155184, 'Finance': 1.1173184357541899, 'Education': 3.6623215394165176, 'Productivity': 1.7380509000620747, 'Business': 0.5276225946617009, 'Catalogs': 0.12414649286157665, 'Medical': 0.186219739292365}
Next, we loop over the ios_genres_ft frequency table we generated in the code cell above and calculate Average user ratings per app genre of the App Store.
for genre in ios_genres_ft:
total = 0
len_genre = 0
for app in free_english_ios_apps:
genre_app = app[11]
if genre_app == genre:
ratings = float(app[5])
total += ratings
len_genre += 1
avg_ratings = total/len_genre
print(genre,':',avg_ratings)
Social Networking : 71548.34905660378 Photo & Video : 28441.54375 Games : 22788.6696905016 Music : 57326.530303030304 Reference : 74942.11111111111 Health & Fitness : 23298.015384615384 Weather : 52279.892857142855 Utilities : 18684.456790123455 Travel : 28243.8 Shopping : 26919.690476190477 News : 21248.023255813954 Navigation : 86090.33333333333 Lifestyle : 16485.764705882353 Entertainment : 14029.830708661417 Food & Drink : 33333.92307692308 Sports : 23008.898550724636 Book : 39758.5 Finance : 31467.944444444445 Education : 7003.983050847458 Productivity : 21028.410714285714 Business : 7491.117647058823 Catalogs : 4004.0 Medical : 612.0
Based on the output of the code cell above, the "Navigation" genre appears to have the highest number of user ratings.
for app in free_english_ios_apps:
genre = app[11]
ratings = app[5]
if genre == 'Navigation':
print(app[1],':',ratings)
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
But, as we can see in the output of the code cell above, the highest figure for the 'Navigation' genre is largely dominated by Giants such as Waze and Google Maps. Moreover, users are only going to visit the app when they are traveling which minimizes our revenue as it depends on the in-app ads.
A similar case appears to be for 'Social Networking' and 'Music' with the big ones such as Facebook, Pintrest and Pandora occupying a huge share of ratings. Most of the apps couldn't even cross the 1000 mark in contrast to the bigger ones crossing a million ratings.
It appears that the popularity of entertainment and navigation apps could be misleading as the ratings in these genres are heavily unbalanced with a few big players occupying a giant proportion of the ratings.
for app in free_english_ios_apps:
genre = app[11]
ratings = app[5]
if genre == 'Shopping':
print(app[1],':',ratings)
Groupon - Deals, Coupons & Discount Shopping App : 417779 eBay: Best App to Buy, Sell, Save! Online Shopping : 262241 Wish - Shopping Made Fun : 141960 shopkick - Shopping Rewards & Discounts : 130823 Amazon App: shop, scan, compare, and read reviews : 126312 Target : 108131 Zappos: shop shoes & clothes, fast free shipping : 103655 Walgreens – Pharmacy, Photo, Coupons and Shopping : 88885 Best Buy : 80424 Walmart: Free 2-Day Shipping,* Easy Store Shopping : 70286 OfferUp - Buy. Sell. Simple. : 57348 Apple Store : 55171 Shop Savvy Barcode Scanner - Price Compare & Deals : 54630 Ibotta: Cash Back App, Grocery Coupons & Shopping : 44313 letgo: Buy & Sell Second Hand Stuff : 38424 CVS Pharmacy : 35981 Victoria’s Secret – The Sexiest Bras & Lingerie : 34507 Etsy: Shop Handmade, Vintage & Creative Goods : 30434 Gilt : 26353 Mercari: Shopping Marketplace to Buy & Sell Stuff : 24244 Shopular Coupons, Weekly Deals for Target, Walmart : 22729 RetailMeNot Shopping Deals, Coupons, Savings : 18544 Poshmark: Buy & Sell Fashion : 18035 Whole Foods Market : 17906 5miles: Buy and Sell Used Stuff Locally : 16105 Sephora Makeup & Beauty App – Insider Tips & Style : 15593 Cartwheel by Target : 14682 SHEIN Shopping - Women's Clothing & Fashion : 12663 Ebates: Cash Back, Coupons & Rebate Shopping App : 12617 Wayfair - Shop Furniture, Home Decor, Daily Sales : 12578 CVS : 12402 SNKRS : 12298 Macy's : 11013 AliExpress Shopping App : 10647 ASOS : 9725 Jet: Online Shopping Deals & Bulk Wholesale Prices : 9006 Romwe shopping- Fashion Clothing for women : 8558 Black Friday 2017 Ads App - BlackFriday.fm : 8221 Sam's Club: Wholesale Shopping & Bulk Buy Deals : 8149 Kohl's App: Scan, Shop, Pay and Save! : 7174 Flipp - Weekly Ads, Shopping List, and Coupons : 6677 AEO|Aerie: Jeans, Dresses, Swimsuits & Bralettes : 6408 Nike+ : 5464 Sam’s Club Scan & Go : 5448 Close5 - Buy & Sell Stuff Locally : 5010 Checkout 51: Grocery Coupons & Cash Back Savings : 4878 Retale - Coupons, Weekly Ads & Stores Nearby : 4861 Kmart – Download Now, Shop Online & Pick Up Today! : 4186 Honest App: Shop baby & diaper products : 3173 GOAT: Buy & Sell Sneakers : 3116 ZARA : 2731 Depop - Buy, Sell and Share : 2478 Foot Locker : 2477 Fuel Rewards® program : 2249 KIXIFY - Buy & Sell Sneakers : 1735 JCPenney : 1661 淘宝HD-Taobao for iPad : 1103 Inkly: Greeting Cards, Postcards, Flowers & Gifts : 1034 Amazon Prime Now : 895 Red-shop the world : 768 UA Shop by Under Armour : 741 H&M : 687 boohoo.com : 655 Footaction : 364 My College Bookstore : 225 Shpock Boot Sale & Classifieds App. Buy & Sell : 212 天猫HD : 198 Kirkland's Spin to Win : 177 Vestiaire Collective - Pre-Owned Luxury Fashion : 169 Lush Cosmetics : 164 京东 HD : 150 Missguided : 113 The Clymb — Gear Deals : 104 OVO Store : 95 eBay Kleinanzeigen - Free. Easy. Local. : 74 Gumtree Classifieds: Buy & Sell - Local for Sale : 72 WEAR - Fashion Lookbook : 66 UNiDAYS: Student Discounts for Shopping Top Brands : 53 JD Sports : 18 Showroomprive - Private Fashion Sales : 11 minne - shopping handmade item : 8 DaWanda - The marketplace for unique products : 0 vente-privee : 0 gogogo : 0
Now, this one seems promising in terms of division of ratings. And, on top of that, online shopping is now more popular than ever and users spend hours scrolling for the product they want. This could maximize our in-app ads dependent revenue. Moreover, three-fourth of the apps on the App Store are of "for-fun" genre so, it could have a chance to stand alone among a huge number of apps.
Other genres that seem popular include weather, book, food and drink, or finance. The book genre again, has unbalanced trends and it kind of overlaps with the idea we proposed above as the popular apps of the genre are nothing but e-book markets, and the other genres don't seem too interesting to us:
Now, we will analyze the Google play apps. We have data about the number of installs for the Google Play market, so we should be able to get a clearer picture about genre popularity.
print(display_table(free_english_android_apps,5))
1,000,000+ : 15.726534296029072 100,000+ : 11.552346570397244 10,000,000+ : 10.548285198556075 10,000+ : 10.198555956678813 1,000+ : 8.393501805054239 100+ : 6.915613718411619 5,000,000+ : 6.82536101083039 500,000+ : 5.561823104693188 50,000+ : 4.772111913357437 5,000+ : 4.512635379061404 10+ : 3.5424187725631953 500+ : 3.249097472924202 50,000,000+ : 2.3014440433213004 100,000,000+ : 2.1322202166064965 50+ : 1.9178700361010799 5+ : 0.7897111913357411 1+ : 0.5076714801444041 500,000,000+ : 0.2707581227436822 1,000,000,000+ : 0.22563176895306852 0+ : 0.04512635379061372 0 : 0.01128158844765343 ---
However, the install numbers don't seem precise enough — we can see that most values are open-ended (100+, 1,000+, 5,000+, etc.). We don't know whether an app with 100,000+ installs has 100,000 installs, 200,000, or 350,000. To resolve this issue:
android_genres_ft = freq_table(free_english_android_apps,1)
for category in android_genres_ft:
total = 0
len_category = 0
for app in free_english_android_apps:
category_app = app[1]
if category_app == category:
installs = app[5]
installs = installs.replace(',','')
installs = installs.replace('+','')
installs = float(installs)
total += installs
len_category += 1
avg_installs = total/len_category
print(category,':',avg_installs)
ART_AND_DESIGN : 1986335.0877192982 AUTO_AND_VEHICLES : 647317.8170731707 BEAUTY : 513151.88679245283 BOOKS_AND_REFERENCE : 8767811.894736841 BUSINESS : 1712290.1474201474 COMICS : 817657.2727272727 COMMUNICATION : 38456119.167247385 DATING : 854028.8303030303 EDUCATION : 1833495.145631068 ENTERTAINMENT : 11640705.88235294 EVENTS : 253542.22222222222 FINANCE : 1387692.475609756 FOOD_AND_DRINK : 1924897.7363636363 HEALTH_AND_FITNESS : 4188821.9853479853 HOUSE_AND_HOME : 1331540.5616438356 LIBRARIES_AND_DEMO : 638503.734939759 LIFESTYLE : 1437816.2687861272 GAME : 15588015.603248259 FAMILY : 3695641.8198090694 MEDICAL : 120550.61980830671 SOCIAL : 23253652.127118643 SHOPPING : 7036877.311557789 PHOTOGRAPHY : 17840110.40229885 SPORTS : 3638640.1428571427 TRAVEL_AND_LOCAL : 13984077.710144928 TOOLS : 10801391.298666667 PERSONALIZATION : 5201482.6122448975 PRODUCTIVITY : 16787331.344927534 PARENTING : 542603.6206896552 WEATHER : 5074486.197183099 VIDEO_PLAYERS : 24727872.452830188 NEWS_AND_MAGAZINES : 9549178.467741935 MAPS_AND_NAVIGATION : 4056941.7741935486
Based on the results of code cell above it is clear that communication apps have the most number of installs. This number is heavily skewed up by a few apps that have over one billion installs (WhatsApp, Facebook Messenger, Skype, Google Chrome, Gmail, and Hangouts), and a few others with over 100 and 500 million installs:
for app in free_english_android_apps:
if app[1] == 'COMMUNICATION' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
WhatsApp Messenger : 1,000,000,000+ imo beta free calls and text : 100,000,000+ Android Messages : 100,000,000+ Google Duo - High Quality Video Calls : 500,000,000+ Messenger – Text and Video Chat for Free : 1,000,000,000+ imo free video calls and chat : 500,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+ LINE: Free Calls & Messages : 500,000,000+ Google Chrome: Fast & Secure : 1,000,000,000+ Firefox Browser fast & private : 100,000,000+ UC Browser - Fast Download Private & Secure : 500,000,000+ Gmail : 1,000,000,000+ Hangouts : 1,000,000,000+ Messenger Lite: Free Calls & Messages : 100,000,000+ Kik : 100,000,000+ KakaoTalk: Free Calls & Text : 100,000,000+ Opera Mini - fast web browser : 100,000,000+ Opera Browser: Fast and Secure : 100,000,000+ Telegram : 100,000,000+ Truecaller: Caller ID, SMS spam blocking & Dialer : 100,000,000+ UC Browser Mini -Tiny Fast Private & Secure : 100,000,000+ Viber Messenger : 500,000,000+ WeChat : 100,000,000+ Yahoo Mail – Stay Organized : 100,000,000+ BBM - Free Calls & Messages : 100,000,000+
If we removed all the communication apps that have over 100 million installs, the average would be reduced roughly ten times:
under_100_m = []
for app in free_english_android_apps:
n_installs = app[5]
n_installs = n_installs.replace(',', '')
n_installs = n_installs.replace('+', '')
if (app[1] == 'COMMUNICATION') and (float(n_installs) < 100000000):
under_100_m.append(float(n_installs))
sum(under_100_m) / len(under_100_m)
3603485.3884615386
We see the same pattern for the video players category, which is the runner-up with 24,727,872 installs. The market is dominated by apps like Youtube, Google Play Movies & TV, or MX Player. The pattern is repeated for social apps (where we have giants like Facebook, Instagram, Google+, etc.), photography apps (Google Photos and other popular photo editors), or productivity apps (Microsoft Word, Dropbox, Google Calendar, Evernote, etc.).
Again, the main concern is that these app genres might seem more popular than they really are. Moreover, these niches seem to be dominated by a few giants who are hard to compete against.
The game genre seems pretty popular, but previously we found out this part of the market seems a bit saturated, so we'd like to come up with a different app recommendation if possible.
The Shopping genre looks fairly popular as well, with an average number of installs of 7,036,877. It's interesting to explore this in more depth, since we found this genre has some potential to work well on the App Store, and our aim is to recommend an app genre that shows potential for being profitable on both the App Store and Google Play.
Let's take a look at some of the apps from this genre and their number of installs:
for app in free_english_android_apps:
if app[1] == 'SHOPPING':
print(app[0], ':', app[5])
Amazon for Tablets : 10,000,000+ OfferUp - Buy. Sell. Offer Up : 10,000,000+ Shopee - No. 1 Online Shopping : 10,000,000+ Shopee: No.1 Online Shopping : 10,000,000+ Kroger : 5,000,000+ Walmart : 10,000,000+ eBay: Buy & Sell this Summer - Discover Deals Now! : 100,000,000+ letgo: Buy & Sell Used Stuff, Cars & Real Estate : 50,000,000+ Amazon Shopping : 100,000,000+ Lazada - Online Shopping & Deals : 50,000,000+ OLX - Buy and Sell : 50,000,000+ The wall : 1,000,000+ Flipp - Weekly Shopping : 10,000,000+ Shrimp skin shopping: spend less, buy better : 5,000,000+ Lotte Home Shopping LOTTE Homeshopping : 5,000,000+ Horn, free country requirements : 1,000,000+ Jiji.ng : 1,000,000+ GS SHOP : 10,000,000+ The birth : 50,000,000+ Home & Shopping - Only in apps. 10% off + 10% off : 10,000,000+ EHS Dongsen Shopping : 1,000,000+ bigbasket - online grocery : 5,000,000+ Bukalapak - Buy and Sell Online : 10,000,000+ Life market : 1,000,000+ Jabong Online Shopping App : 10,000,000+ Family Dollar : 1,000,000+ Jumia online shopping : 10,000,000+ Mercado Libre: Find your favorite brands : 50,000,000+ Carousell: Snap-Sell, Chat-Buy : 10,000,000+ Blibli.com Online Shopping : 10,000,000+ Club Factory Everything, Unbeaten Price : 10,000,000+ Real Estate, Car, Shopping and Others : 10,000,000+ ZALORA Fashion Shopping : 10,000,000+ Magazine Luiza Online Shopping : 10,000,000+ ROMWE - Women's Fashion : 10,000,000+ Buscapé - Offers and discounts : 10,000,000+ Myntra Online Shopping App : 50,000,000+ 11st : 10,000,000+ Coupang : 10,000,000+ Wemep - Special price representative (special / shopping / shopping app / coupon / shipping) : 10,000,000+ Target - now with Cartwheel : 10,000,000+ Flipkart Online Shopping App : 100,000,000+ Sam's Club: Wholesale Shopping & Instant Savings : 5,000,000+ Chilindo : 1,000,000+ Rossmann PL : 5,000,000+ Jingdong - pick good things, go to Jingdong : 1,000,000+ CheckPoints 🏆 Rewards App : 1,000,000+ Extreme Coupon Finder : 1,000,000+ SnipSnap Coupon App : 1,000,000+ Checkout 51: Grocery coupons : 10,000,000+ Coupon Sherpa : 500,000+ Gyft - Mobile Gift Card Wallet : 500,000+ SavingStar - Grocery Coupons : 1,000,000+ The Coupons App : 10,000,000+ Shopkick: Free Gift Cards, Shop Rewards & Deals : 10,000,000+ Key Ring: Cards Coupon & Sales : 1,000,000+ Ibotta: Cash Back Savings, Rewards & Coupons App : 10,000,000+ RetailMeNot - Coupons, Deals & Discount Shopping : 10,000,000+ Kohl's: Scan, Shop, Pay & Save : 5,000,000+ Stocard - Rewards Cards Wallet : 10,000,000+ Nike : 1,000,000+ Poshmark - Buy & Sell Fashion : 10,000,000+ Mercari: The Selling App : 10,000,000+ Blidz - Hunt Free Deals On Trending Items! : 50,000+ Shopular: Coupons, Weekly Ads & Shopping Deals : 1,000,000+ LivingSocial - Local Deals : 5,000,000+ Coupons.com – Grocery Coupons & Cash Back Savings : 1,000,000+ Ebates: Cash Back, Coupons, Rewards & Savings : 1,000,000+ FidMe Loyalty Cards & Deals at Grocery Supermarket : 1,000,000+ Ratings by Consumer Reports : 100,000+ HauteLook : 500,000+ Nordstrom : 500,000+ Modcloth – Unique Indie Women's Fashion & Style : 500,000+ Fancy : 5,000,000+ Twice: Buy, Sell Clothing : 100,000+ Slice: Package Tracker : 1,000,000+ LightInTheBox Online Shopping : 5,000,000+ Best Buy : 5,000,000+ JackThreads: Men's Shopping : 1,000,000+ zulily - Shop Daily Deals in Fashion and Home : 1,000,000+ MiniInTheBox Online Shopping : 1,000,000+ Zappos – Shoe shopping made simple : 5,000,000+ Urban Outfitters : 500,000+ Tophatter - 90 Second Auctions : 10,000,000+ Shopfully - Weekly Ads & Deals : 10,000,000+ Wanelo Shopping : 1,000,000+ Etsy: Handmade & Vintage Goods : 10,000,000+ Overstock – Home Decor, Furniture Shopping : 1,000,000+ Find&Save - Local Shopping : 500,000+ Receipt Hog - Receipts to Cash : 1,000,000+ ShopSavvy Barcode & QR Scanner : 10,000,000+ Savory - Deals,Freebies,Sales : 100,000+ AliExpress - Smarter Shopping, Better Living : 100,000,000+ Newegg Mobile : 1,000,000+ REI – Shop Outdoor Gear : 100,000+ The Home Depot : 5,000,000+ Wish - Shopping Made Fun : 100,000,000+ Boxed Wholesale : 1,000,000+ La La-Shop Designer Brands Street : 500,000+ ASOS : 10,000,000+ CL Mobile - Classifieds for Craigslist : 1,000,000+ CIRCLE K : 500,000+ SPEED L : 50,000+ Shop 'n Save : 100,000+ O Shopping : 100,000+ R Studio : 5,000+ AB Click2Shop : 100,000+ AE + Aerie: Jeans, Dresses, Swimsuits & Bralettes : 1,000,000+ AE Checkout Plugin : 10,000+ Bazar.af : 500+ AzadBazar.af : 100+ All States Ag Parts : 10,000+ AJ RETAILS : 10+ AJ Percent Off Calculator : 10,000+ AJ Nails Supply : 100+ Wayfair - Shop All Things Home : 5,000,000+ A-Y Collection : 100+ ePazar.bg : 1,000+ Remix Second Hand : 100,000+ Grabo.bg : 100,000+ B&H Photo Video Pro Audio : 1,000,000+ BJ's Wholesale Club : 100,000+ BJ’s Mobile App : 500,000+ BJ's Express Scan : 10,000+ BJ Toys : 500+ BL Flowers Digital : 100+ B&M Stores : 100,000+ BM CRM : 5+ postit.bm : 500+ My College Bookstore : 100,000+ Compas BP Store : 10+ IKEA Store : 10,000,000+ Bar BQ Night Middlesbrough : 100+ 4-T's Bar-BQ & Catering : 10+ GearBest Online Shopping : 5,000,000+ BU Bookstore : 1,000+ Hilverda De Boer B.V. App : 500+ Schulman B.V. : 100+ OLX Uganda Sell Buy Cellphones : 100,000+ GITZ.bz : 10+ BZ Delivery : 500+ ePN Cashback AliExpress : 500,000+ Save.ca : 100,000+ C.B. Shop : 100+ tutti.ch - Free Classifieds : 500,000+ ricardo.ch : 500,000+ Annonces.ci : 1,000+ CJ WOW SHOP : 100,000+ CJmall : 10,000,000+ Calvin Klein – US Store : 50,000+ ck-modelcars Shop : 5,000+ ck-modelcars-UK Shop : 5,000+ CK Multimedia - Gaming Accessories : 500+ CL Mobile Pro - Classifieds for Craigslist : 100,000+ CL Pro App for Craigslist : 10,000+ CL Pro Client for Craigslist : 5,000+ Pro App for Craigslist : 500,000+ cPro Marketplace: Buy. Sell. Rent. Date. Jobs. : 10,000,000+ Postings (Craigslist Search App) : 5,000,000+ Foods Co : 10,000+ Co-op Connections : 1,000+ Dine In CT - Food Delivery : 1,000+ Eshopcy.com.cy : 5,000+ CY Digital Net : 500+ foody Cyprus - online ordering : 10,000+ Šmelina .cz inzeráty inzerce : 10,000+ Alzashop.com : 500,000+ Strava.cz : 100,000+ Dollar General - Digital Coupons, Ads And More : 5,000,000+ DG Coupon : 100,000+ DG - Digital Coupons - Free Coupon and Discount : 10,000+ Krazy Coupon Lady : 1,000,000+ Go Go Coupons - Free Coupon and Discount : 1,000+ Sharaf DG : 500,000+ Coupon Mob - Discount Coupons : 100+ DG OFF - 100% Free Coupons & Deals : 10+ DHgate-Shop Wholesale Prices : 5,000,000+ Shopee: No.1 Belanja Online : 10,000,000+ DM Collection : 100+ Find Fast Food : 100,000+ DT CLOTHINGS : 10+ DT Technologies : 10+ DTPay : 1,000+ DX : 500,000+ DZ Mobile Market : 10,000+ DZ PROMOS - Promotions & Sale Alerts in Algeria : 50,000+ Ouedkniss : 1,000,000+ dekoreko-dz : 500+ eBay Kleinanzeigen for Germany : 10,000,000+ EP Mobil : 100+ Groupon - Shop Deals, Discounts & Coupons : 50,000,000+ TattooSupplies.eu : 1,000+ efootwear.eu - online store : 100,000+ E.W. James & Sons : 500+ Tenh Ey : 10+ FirstCry Baby & Kids Shopping, Fashion & Parenting : 5,000,000+ WICShopper : 500,000+ Lalafo Pulsuz Elanlar : 1,000,000+ Slickdeals: Coupons & Shopping : 1,000,000+
The Shopping genre includes a variety of apps for food, clothing, gadgets, books and almost anything like nails and even tattoos!.
for app in free_english_android_apps:
if app[1] == 'SHOPPING' and (app[5] == '1,000,000,000+'
or app[5] == '500,000,000+'
or app[5] == '100,000,000+'):
print(app[0], ':', app[5])
eBay: Buy & Sell this Summer - Discover Deals Now! : 100,000,000+ Amazon Shopping : 100,000,000+ Flipkart Online Shopping App : 100,000,000+ AliExpress - Smarter Shopping, Better Living : 100,000,000+ Wish - Shopping Made Fun : 100,000,000+
However, it looks like there are only a few very popular apps, so this market still shows potential. Let's try to get some app ideas based on the kind of apps that are somewhere in the middle in terms of popularity (between 1,000,000 and 100,000,000 downloads):
for app in free_english_android_apps:
if app[1] == 'SHOPPING' and (app[5] == '1,000,000+'
or app[5] == '5,000,000+'
or app[5] == '10,000,000+'
or app[5] == '50,000,000+'):
print(app[0], ':', app[5])
Amazon for Tablets : 10,000,000+ OfferUp - Buy. Sell. Offer Up : 10,000,000+ Shopee - No. 1 Online Shopping : 10,000,000+ Shopee: No.1 Online Shopping : 10,000,000+ Kroger : 5,000,000+ Walmart : 10,000,000+ letgo: Buy & Sell Used Stuff, Cars & Real Estate : 50,000,000+ Lazada - Online Shopping & Deals : 50,000,000+ OLX - Buy and Sell : 50,000,000+ The wall : 1,000,000+ Flipp - Weekly Shopping : 10,000,000+ Shrimp skin shopping: spend less, buy better : 5,000,000+ Lotte Home Shopping LOTTE Homeshopping : 5,000,000+ Horn, free country requirements : 1,000,000+ Jiji.ng : 1,000,000+ GS SHOP : 10,000,000+ The birth : 50,000,000+ Home & Shopping - Only in apps. 10% off + 10% off : 10,000,000+ EHS Dongsen Shopping : 1,000,000+ bigbasket - online grocery : 5,000,000+ Bukalapak - Buy and Sell Online : 10,000,000+ Life market : 1,000,000+ Jabong Online Shopping App : 10,000,000+ Family Dollar : 1,000,000+ Jumia online shopping : 10,000,000+ Mercado Libre: Find your favorite brands : 50,000,000+ Carousell: Snap-Sell, Chat-Buy : 10,000,000+ Blibli.com Online Shopping : 10,000,000+ Club Factory Everything, Unbeaten Price : 10,000,000+ Real Estate, Car, Shopping and Others : 10,000,000+ ZALORA Fashion Shopping : 10,000,000+ Magazine Luiza Online Shopping : 10,000,000+ ROMWE - Women's Fashion : 10,000,000+ Buscapé - Offers and discounts : 10,000,000+ Myntra Online Shopping App : 50,000,000+ 11st : 10,000,000+ Coupang : 10,000,000+ Wemep - Special price representative (special / shopping / shopping app / coupon / shipping) : 10,000,000+ Target - now with Cartwheel : 10,000,000+ Sam's Club: Wholesale Shopping & Instant Savings : 5,000,000+ Chilindo : 1,000,000+ Rossmann PL : 5,000,000+ Jingdong - pick good things, go to Jingdong : 1,000,000+ CheckPoints 🏆 Rewards App : 1,000,000+ Extreme Coupon Finder : 1,000,000+ SnipSnap Coupon App : 1,000,000+ Checkout 51: Grocery coupons : 10,000,000+ SavingStar - Grocery Coupons : 1,000,000+ The Coupons App : 10,000,000+ Shopkick: Free Gift Cards, Shop Rewards & Deals : 10,000,000+ Key Ring: Cards Coupon & Sales : 1,000,000+ Ibotta: Cash Back Savings, Rewards & Coupons App : 10,000,000+ RetailMeNot - Coupons, Deals & Discount Shopping : 10,000,000+ Kohl's: Scan, Shop, Pay & Save : 5,000,000+ Stocard - Rewards Cards Wallet : 10,000,000+ Nike : 1,000,000+ Poshmark - Buy & Sell Fashion : 10,000,000+ Mercari: The Selling App : 10,000,000+ Shopular: Coupons, Weekly Ads & Shopping Deals : 1,000,000+ LivingSocial - Local Deals : 5,000,000+ Coupons.com – Grocery Coupons & Cash Back Savings : 1,000,000+ Ebates: Cash Back, Coupons, Rewards & Savings : 1,000,000+ FidMe Loyalty Cards & Deals at Grocery Supermarket : 1,000,000+ Fancy : 5,000,000+ Slice: Package Tracker : 1,000,000+ LightInTheBox Online Shopping : 5,000,000+ Best Buy : 5,000,000+ JackThreads: Men's Shopping : 1,000,000+ zulily - Shop Daily Deals in Fashion and Home : 1,000,000+ MiniInTheBox Online Shopping : 1,000,000+ Zappos – Shoe shopping made simple : 5,000,000+ Tophatter - 90 Second Auctions : 10,000,000+ Shopfully - Weekly Ads & Deals : 10,000,000+ Wanelo Shopping : 1,000,000+ Etsy: Handmade & Vintage Goods : 10,000,000+ Overstock – Home Decor, Furniture Shopping : 1,000,000+ Receipt Hog - Receipts to Cash : 1,000,000+ ShopSavvy Barcode & QR Scanner : 10,000,000+ Newegg Mobile : 1,000,000+ The Home Depot : 5,000,000+ Boxed Wholesale : 1,000,000+ ASOS : 10,000,000+ CL Mobile - Classifieds for Craigslist : 1,000,000+ AE + Aerie: Jeans, Dresses, Swimsuits & Bralettes : 1,000,000+ Wayfair - Shop All Things Home : 5,000,000+ B&H Photo Video Pro Audio : 1,000,000+ IKEA Store : 10,000,000+ GearBest Online Shopping : 5,000,000+ CJmall : 10,000,000+ cPro Marketplace: Buy. Sell. Rent. Date. Jobs. : 10,000,000+ Postings (Craigslist Search App) : 5,000,000+ Dollar General - Digital Coupons, Ads And More : 5,000,000+ Krazy Coupon Lady : 1,000,000+ DHgate-Shop Wholesale Prices : 5,000,000+ Shopee: No.1 Belanja Online : 10,000,000+ Ouedkniss : 1,000,000+ eBay Kleinanzeigen for Germany : 10,000,000+ Groupon - Shop Deals, Discounts & Coupons : 50,000,000+ FirstCry Baby & Kids Shopping, Fashion & Parenting : 5,000,000+ Lalafo Pulsuz Elanlar : 1,000,000+ Slickdeals: Coupons & Shopping : 1,000,000+
This range seems to be dominated by grocery, clothing, gadgets and overall shopping markets, so it's probably not a good idea to build similar apps since there'll be some significant competition.
We could develop a market for app designs for local shop owners, since, we are only intrested in development of an app and not our own digital market with warehouses and logistics.
However, it looks like the market is already full of such ideas, so we need to add some special features such as a software to predict popular products based on present sale records.
In this project, we analyzed data about the App Store and Google Play mobile apps with the goal of recommending an app profile that can be profitable for both markets.
We concluded that developing a market for app designs for local shop owners could be profitable for both the Google Play and the App Store markets. The internet is already full of such ideas so we may want to add some special features like a software to predict popular products based on present sale records.