The aim for this project is to determine apps that are profitable for the App Store and Google Play Markets. We are working a data analyst for a company that builds Android and iOS mobile apps.
We only build apps that are free to download and install, and our main source of revenue consists of in-app ads. This means the number of users of our apps determines our revenue for any given app, thus, the more users who see and engage with the ads, the better. Our goal for this project is to analyze data to help our developers understand what type of apps are likely to attrach more users.
As of September 2018, there were approximately 2 million iOS apps available on the App Store, and 2.1 million Android apps on Google Play.
Collecting data for over 4 million apps requires a significant amount of time and money, so we'll try to analyze a sample of the data instead. To avoid spending resources on collecting new data ourselves, we should first try to see if we can find any relevant existing data at no cost. Luckily, here are two data sets that seem suitable for our goals:
A dataset containing data about approximately 10,000 Android apps from Google Play; the data was collected in August 2018. You can download the data set directly from this link.
A dataset containing data about approximately 7,000 iOS apps from the App Store; the data was collected in July 2017. You can download the data set directly from this link.
We'll start by opening and exploring two data sets. And we'll continue to explore the data.
from csv import reader
### The App Store data set ###
opened_file = open('AppleStore.csv')
read_file = reader(opened_file)
ios = list(read_file)
ios_header = ios[0]
ios = ios[1:]
### The Google Play Markets data ###
opened_file = open('googleplaystore.csv')
read_file = reader(opened_file)
android = list(read_file)
android_header = android[0]
android = android[1:]
To make them easier to explore, we created a function named explore_data()
that you 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_header)
print('\n')
explore_data(ios, 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 see that the AppStore data set has 7,197 apps and 16 columns. Quickly reviewing we see that the most relevant columns are track name
, currency
, price
, rating_count_tot
, rating_count_ver
, prime_genre
.
Now let's take a look at the Google Play data.
print(android_header)
print('\n')
explore_data(android, 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 that there are 10,841 apps on the Google Play and 13 columns. Quickly reviewing, the most relevant columns we'll use are App
, Category
, Reviews
, Installs
, Type
, Price
, Genres
.
The Google Play dataset has a dedicated discussion section, and we can see that one of the discussions describes an error for row 10472. Let's take a look and print the row to compare it against the header and another row that's correct.
print(android_header) # header row
print('\n')
print(android[10472]) # row with error
print('\n')
print(android[1]) # correct row
['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'] ['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']
Row 10472 is missing the value in the Category
column so it shifted everything over. Rating for the app should be 1.9
rather than 19
. Because of this, we'll delete this row.
print(len(android))
del android[10472] # don't run this more than once
print(len(android))
10841 10840
If you explore the Google Play data set long enough or look at the discussions section, you'll notice some apps have duplicate entries. For instance, Instagram has four entries:
for app in android:
name = app[0]
if name == "Instagram":
print(app)
['Instagram', 'SOCIAL', '4.5', '66577313', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device'] ['Instagram', 'SOCIAL', '4.5', '66577446', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device'] ['Instagram', 'SOCIAL', '4.5', '66577313', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device'] ['Instagram', 'SOCIAL', '4.5', '66509917', 'Varies with device', '1,000,000,000+', 'Free', '0', 'Teen', 'Social', 'July 31, 2018', 'Varies with device', 'Varies with device']
In total, there are 1,181 cases where an app occurs more than once:
duplicate_apps = []
unique_apps = []
for app in android:
name = app[0]
if name in unique_apps:
duplicate_apps.append(name)
else:
unique_apps.append(name)
print('Number of duplicate apps:', len(duplicate_apps))
print('\n')
print('Examples of duplicate apps:', duplicate_apps[:15])
Number of duplicate apps: 1181 Examples of duplicate apps: ['Quick PDF Scanner + OCR FREE', 'Box', 'Google My Business', 'ZOOM Cloud Meetings', 'join.me - Simple Meetings', 'Box', 'Zenefits', 'Google Ads', 'Google My Business', 'Slack', 'FreshBooks Classic', 'Insightly CRM', 'QuickBooks Accounting: Invoicing & Expenses', 'HipChat - Chat Built for Teams', 'Xero Accounting Software']
Above, we did the following:
android
data set (the Google Play data set), and for each iteration, we did the following:name
.name
was already in the unique_apps
list, we appended name
to the duplicate_apps list
.name
wasn't already in the unique_apps
list), we appended name
to the unique_apps list
.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. One thing we could do is remove the duplicate rows randomly, but we could probably find a better way.
If you examine the rows we printed for the Instagram 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 can use this information to build a criterion for removing the duplicates. The higher the number of reviews, the more recent the data should be.ather than removing duplicates randomly, we'll only keep the row with the highest number of reviews and remove the other entries for any given app.
reviews_max = {}
for app in android:
name = app[0]
n_reviews = float(app[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
In the previous code cell, we found that there are 1,181 cases of duplicate apps, so the length of our unique apps should equal the difference between the length of our data set and 1,181.
print('Expected length:', len(android) - 1181)
print('Actual length:', len(reviews_max))
Expected length: 9659 Actual length: 9659
Now, let's use the reviews_max
dictionary to remove the duplicates. For the duplicate cases, we'll only keep the entries with the highest number of reviews.
android_clean = []
already_added = []
for app in android:
name = app[0]
n_reviews = float(app[3])
if (reviews_max[name] == n_reviews) and (name not in already_added):
android_clean.append(app)
already_added.append(name)
Let's explore the new data set to confirm that the number of rows is 9,659.
explore_data(android_clean, 0, 3, True)
['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: 9659 Number of columns: 13
We have 9,659 rows, just as expected.
We use English for the apps we develop at our company, and we'd like to analyze only the apps that are designed for an English-speaking audience. However, if we explore the data long enough, we'll find that both datasets have apps with names that suggest they are not designed for an English-speaking audience. Below are some examples:
print(ios[813][1])
print(ios[6731][1])
print(android_clean[4412][0])
print(android_clean[7940][0])
爱奇艺PPS -《欢乐颂2》电视剧热播 【脱出ゲーム】絶対に最後までプレイしないで 〜謎解き&ブロックパズル〜 中国語 AQリスニング لعبة تقدر تربح DZ
We're not interested in keeping these apps, so we'll remove them. One way to do this is to remove each app with a name containing a symbol that isn't commonly used in English text — English text usually includes letters from the English alphabet, numbers composed of digits from 0 to 9, punctuation marks (., !, ?, ;), and other symbols (+, *, /).
Each character we use in a string has a corresponding number associated with it. For instance, the corresponding number for character 'a'
is 97, character 'A'
is 65, and character '爱'
is 29,233.
All these characters that are specific to English texts are encoded using the ASCII standard. Each ASCII character has a corresponding number between 0 and 127 associated with it, and we can take advantage of that to build a function that checks an app name and tells us whether it contains non-ASCII characters.
We can get the corresponding number of each character using the ord()
built-in function. If an app name contains a character that is greater than 127, then it probably means that the app has a non-English name.
def is_english(string):
for characted in string:
if ord(characted) > 127:
return False
return True
print(is_english('Instagram'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat 😜'))
True False False False
On the previous code cell, we see that the function couldn't correctly identify certain English app names that contained emojis and characters like ™
because these fall outside the ASCII range and have corresponding numbers over 127.
If we're going to use the function we've created, we'll 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. This means all English apps with up to three emoji or other special characters will still be labeled as English. Our filter function is still not perfect, but it should be fairly effective.
def is_english(string):
non_ascii = 0
for character in string:
if ord(character) > 127:
non_ascii += 1
if non_ascii > 3:
return False
else:
return True
print(is_english('Docs To Go™ Free Office Suite'))
print(is_english('Instachat 😜'))
print(is_english('爱奇艺PPS -《欢乐颂2》电视剧热播'))
True True False
android_english = []
ios_english = []
for app in android_clean:
name = app[0]
if is_english(name):
android_english.append(app)
for app in ios:
name = app[1]
if is_english(name):
ios_english.append(app)
explore_data(android_english,0,3, True)
print('\n')
explore_data(ios_english,0,3, True)
['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 ['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
Now we have 9,614 Android apps and 6,183 iOS apps.
As mentioned earlier, 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.
android_final = []
ios_final = []
for app in android_english:
price = app[7]
if price == '0':
android_final.append(app)
for app in ios_english:
price = app[4]
if price == "0.0":
ios_final.append(app)
print(len(android_final))
print(len(ios_final))
8864 3222
We now have 8864 Adroid apps and 3222 iOS apps remaining, which should still be enough for our analysis.
As we mentioned in the introduction, 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 risks and overhead, our validation strategy for an app idea has 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 in 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 determining the most common genres for each market. For this, we'll need to build frequency tables for prime_genre
column of the App Store data, and Category
and Genre
in the Google Play data.
We'll build two functions we can use to analyze the frequency tables:
One function to generate frequency tables that show percentages another function we can use to display the percentages in a descending order
def freq_table(dataset, index):
table = {}
total = 0
for row in dataset:
total += 1
value = row[index]
if value in table:
table[value] += 1
else:
table[value] = 1
table_percentages = {}
for key in table:
percentage = (table[key] / total) * 100
table_percentages[key] = percentage
return table_percentages
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])
We start by analyzing the frequency table for prime_genre
column of the App Store dataset
display_table(ios_final,-5)
Games : 58.16263190564867 Entertainment : 7.883302296710118 Photo & Video : 4.9658597144630665 Education : 3.662321539416512 Social Networking : 3.2898820608317814 Shopping : 2.60707635009311 Utilities : 2.5139664804469275 Sports : 2.1415270018621975 Music : 2.0484171322160147 Health & Fitness : 2.0173805090006205 Productivity : 1.7380509000620732 Lifestyle : 1.5828677839851024 News : 1.3345747982619491 Travel : 1.2414649286157666 Finance : 1.1173184357541899 Weather : 0.8690254500310366 Food & Drink : 0.8069522036002483 Reference : 0.5586592178770949 Business : 0.5276225946617008 Book : 0.4345127250155183 Navigation : 0.186219739292365 Medical : 0.186219739292365 Catalogs : 0.12414649286157665
We see that the most common genre is Games at 58%. The next most common is Entertainment at close to 8%. From the data, it looks like most of the apps are designed more for entertainment (games, photo and video, social networking, sports, and music) in comparison to apps designed for practical purposes (education, shopping, utilities, productivity, etc.)/
While theres a large number of apps for this particulate genre, it doesn't neccesarily imply that the genre has a large number of users.
Let's continue to examine the Category
and Genre
dataset for Google Play to see if we can uncover additional patterns and insight.
display_table(android_final, 1) # Category
FAMILY : 18.907942238267147 GAME : 9.724729241877256 TOOLS : 8.461191335740072 BUSINESS : 4.591606498194946 LIFESTYLE : 3.9034296028880866 PRODUCTIVITY : 3.892148014440433 FINANCE : 3.7003610108303246 MEDICAL : 3.531137184115524 SPORTS : 3.395758122743682 PERSONALIZATION : 3.3167870036101084 COMMUNICATION : 3.2378158844765346 HEALTH_AND_FITNESS : 3.0798736462093865 PHOTOGRAPHY : 2.944494584837545 NEWS_AND_MAGAZINES : 2.7978339350180503 SOCIAL : 2.6624548736462095 TRAVEL_AND_LOCAL : 2.33528880866426 SHOPPING : 2.2450361010830324 BOOKS_AND_REFERENCE : 2.1435018050541514 DATING : 1.861462093862816 VIDEO_PLAYERS : 1.7937725631768955 MAPS_AND_NAVIGATION : 1.3989169675090252 FOOD_AND_DRINK : 1.2409747292418771 EDUCATION : 1.1620036101083033 ENTERTAINMENT : 0.9589350180505415 LIBRARIES_AND_DEMO : 0.9363718411552346 AUTO_AND_VEHICLES : 0.9250902527075812 HOUSE_AND_HOME : 0.8235559566787004 WEATHER : 0.8009927797833934 EVENTS : 0.7107400722021661 PARENTING : 0.6543321299638989 ART_AND_DESIGN : 0.6430505415162455 COMICS : 0.6204873646209386 BEAUTY : 0.5979241877256317
The most common catergories in Google Play is family at about 19%, with games coming in second at close to 10%. It looks like the landscape within Google Play is much different compared to the App Store with majority of the apps focus on practical uses (education, shopping, utilities, productivity, events, etc.)
display_table(android_final, -4) # Genre
Tools : 8.449909747292418 Entertainment : 6.069494584837545 Education : 5.347472924187725 Business : 4.591606498194946 Productivity : 3.892148014440433 Lifestyle : 3.892148014440433 Finance : 3.7003610108303246 Medical : 3.531137184115524 Sports : 3.463447653429603 Personalization : 3.3167870036101084 Communication : 3.2378158844765346 Action : 3.1024368231046933 Health & Fitness : 3.0798736462093865 Photography : 2.944494584837545 News & Magazines : 2.7978339350180503 Social : 2.6624548736462095 Travel & Local : 2.3240072202166067 Shopping : 2.2450361010830324 Books & Reference : 2.1435018050541514 Simulation : 2.0419675090252705 Dating : 1.861462093862816 Arcade : 1.8501805054151623 Video Players & Editors : 1.7712093862815883 Casual : 1.7599277978339352 Maps & Navigation : 1.3989169675090252 Food & Drink : 1.2409747292418771 Puzzle : 1.128158844765343 Racing : 0.9927797833935018 Role Playing : 0.9363718411552346 Libraries & Demo : 0.9363718411552346 Auto & Vehicles : 0.9250902527075812 Strategy : 0.9138086642599278 House & Home : 0.8235559566787004 Weather : 0.8009927797833934 Events : 0.7107400722021661 Adventure : 0.6768953068592057 Comics : 0.6092057761732852 Beauty : 0.5979241877256317 Art & Design : 0.5979241877256317 Parenting : 0.4963898916967509 Card : 0.45126353790613716 Casino : 0.42870036101083037 Trivia : 0.41741877256317694 Educational;Education : 0.39485559566787 Board : 0.3835740072202166 Educational : 0.3722924187725632 Education;Education : 0.33844765342960287 Word : 0.2594765342960289 Casual;Pretend Play : 0.236913357400722 Music : 0.2030685920577617 Racing;Action & Adventure : 0.16922382671480143 Puzzle;Brain Games : 0.16922382671480143 Entertainment;Music & Video : 0.16922382671480143 Casual;Brain Games : 0.13537906137184114 Casual;Action & Adventure : 0.13537906137184114 Arcade;Action & Adventure : 0.12409747292418773 Action;Action & Adventure : 0.10153429602888085 Educational;Pretend Play : 0.09025270758122744 Simulation;Action & Adventure : 0.078971119133574 Parenting;Education : 0.078971119133574 Entertainment;Brain Games : 0.078971119133574 Board;Brain Games : 0.078971119133574 Parenting;Music & Video : 0.06768953068592057 Educational;Brain Games : 0.06768953068592057 Casual;Creativity : 0.06768953068592057 Art & Design;Creativity : 0.06768953068592057 Education;Pretend Play : 0.056407942238267145 Role Playing;Pretend Play : 0.04512635379061372 Education;Creativity : 0.04512635379061372 Role Playing;Action & Adventure : 0.033844765342960284 Puzzle;Action & Adventure : 0.033844765342960284 Entertainment;Creativity : 0.033844765342960284 Entertainment;Action & Adventure : 0.033844765342960284 Educational;Creativity : 0.033844765342960284 Educational;Action & Adventure : 0.033844765342960284 Education;Music & Video : 0.033844765342960284 Education;Brain Games : 0.033844765342960284 Education;Action & Adventure : 0.033844765342960284 Adventure;Action & Adventure : 0.033844765342960284 Video Players & Editors;Music & Video : 0.02256317689530686 Sports;Action & Adventure : 0.02256317689530686 Simulation;Pretend Play : 0.02256317689530686 Puzzle;Creativity : 0.02256317689530686 Music;Music & Video : 0.02256317689530686 Entertainment;Pretend Play : 0.02256317689530686 Casual;Education : 0.02256317689530686 Board;Action & Adventure : 0.02256317689530686 Video Players & Editors;Creativity : 0.01128158844765343 Trivia;Education : 0.01128158844765343 Travel & Local;Action & Adventure : 0.01128158844765343 Tools;Education : 0.01128158844765343 Strategy;Education : 0.01128158844765343 Strategy;Creativity : 0.01128158844765343 Strategy;Action & Adventure : 0.01128158844765343 Simulation;Education : 0.01128158844765343 Role Playing;Brain Games : 0.01128158844765343 Racing;Pretend Play : 0.01128158844765343 Puzzle;Education : 0.01128158844765343 Parenting;Brain Games : 0.01128158844765343 Music & Audio;Music & Video : 0.01128158844765343 Lifestyle;Pretend Play : 0.01128158844765343 Lifestyle;Education : 0.01128158844765343 Health & Fitness;Education : 0.01128158844765343 Health & Fitness;Action & Adventure : 0.01128158844765343 Entertainment;Education : 0.01128158844765343 Communication;Creativity : 0.01128158844765343 Comics;Creativity : 0.01128158844765343 Casual;Music & Video : 0.01128158844765343 Card;Action & Adventure : 0.01128158844765343 Books & Reference;Education : 0.01128158844765343 Art & Design;Pretend Play : 0.01128158844765343 Art & Design;Action & Adventure : 0.01128158844765343 Arcade;Pretend Play : 0.01128158844765343 Adventure;Education : 0.01128158844765343
It's not very clear what the difference is between Category
and Genre
, however we can see that Genre
has much more granular information and breakdowns. For the purpose of what we're trying to achieve currently, we only want to look at the high level information so we'll only reference Category
moving forward.
From what we've uncovered so far, the App Store is dominated by apps designed for fun, while Google Play has a variety and balance of both entertainment and functional/practical apps. We'll take a look at which app has the most number of users.
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. Install information is available for the Google Play data set, however this is not available for the App Store data. As a workaround, we'll take the total number of user ratings as a proxy using rating_count_tot
.
genre_ios = freq_table(ios_final, -5)
for genre in genre_ios:
total = 0
len_genre = 0
for app in ios_final:
genre_app = app[-5]
if genre_app == genre:
n_ratings = float(app[5])
total += n_ratings
len_genre += 1
ave_n_ratings = total / len_genre
print(genre, ":", ave_n_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
We can see that the app genre for 'Navigation', 'Reference', and 'Social Networking' are the most popular apps. However, this is likely due to very well known existing apps within these categories which would make them likely more popular than they really are.
for app in ios_final:
if app[-5] == 'Navigation':
print(app[1], ":", app[5])
Waze - GPS Navigation, Maps & Real-time Traffic : 345046 Google Maps - Navigation & Transit : 154911 Geocaching® : 12811 CoPilot GPS – Car Navigation & Offline Maps : 3582 ImmobilienScout24: Real Estate Search in Germany : 187 Railway Route Search : 5
As we can see, the ratings are dominated by Waze and Google Maps. This is likely the same for the noted Genres like Social Networking when we think of Facebook, Instagram, Pinterest, etc.
In this case, I would recommend exploring apps within other high rating apps genres where it is not dominated by a select few apps, perhaps Music or Productivity could be a viable option
for app in ios_final:
if app[-5] == 'Music':
print(app[1], ":", app[5])
Pandora - Music & Radio : 1126879 Spotify Music : 878563 Shazam - Discover music, artists, videos & lyrics : 402925 iHeartRadio – Free Music & Radio Stations : 293228 SoundCloud - Music & Audio : 135744 Magic Piano by Smule : 131695 Smule Sing! : 119316 TuneIn Radio - MLB NBA Audiobooks Podcasts Music : 110420 Amazon Music : 106235 SoundHound Song Search & Music Player : 82602 Sonos Controller : 48905 Bandsintown Concerts : 30845 Karaoke - Sing Karaoke, Unlimited Songs! : 28606 My Mixtapez Music : 26286 Sing Karaoke Songs Unlimited with StarMaker : 26227 Ringtones for iPhone & Ringtone Maker : 25403 Musi - Unlimited Music For YouTube : 25193 AutoRap by Smule : 18202 Spinrilla - Mixtapes For Free : 15053 Napster - Top Music & Radio : 14268 edjing Mix:DJ turntable to remix and scratch music : 13580 Free Music - MP3 Streamer & Playlist Manager Pro : 13443 Free Piano app by Yokee : 13016 Google Play Music : 10118 Certified Mixtapes - Hip Hop Albums & Mixtapes : 9975 TIDAL : 7398 YouTube Music : 7109 Nicki Minaj: The Empire : 5196 Sounds app - Music And Friends : 5126 SongFlip - Free Music Streamer : 5004 Simple Radio - Live AM & FM Radio Stations : 4787 Deezer - Listen to your Favorite Music & Playlists : 4677 Ringtones for iPhone with Ringtone Maker : 4013 Bose SoundTouch : 3687 Amazon Alexa : 3018 DatPiff : 2815 Trebel Music - Unlimited Music Downloader : 2570 Free Music Play - Mp3 Streamer & Player : 2496 Acapella from PicPlayPost : 2487 Coach Guitar - Lessons & Easy Tabs For Beginners : 2416 Musicloud - MP3 and FLAC Music Player for Cloud Platforms. : 2211 Piano - Play Keyboard Music Games with Magic Tiles : 1636 Boom: Best Equalizer & Magical Surround Sound : 1375 Music Freedom - Unlimited Free MP3 Music Streaming : 1246 AmpMe - A Portable Social Party Music Speaker : 1047 Medly - Music Maker : 933 Bose Connect : 915 Music Memos : 909 UE BOOM : 612 LiveMixtapes : 555 NOISE : 355 MP3 Music Player & Streamer for Clouds : 329 Musical Video Maker - Create Music clips lip sync : 320 Cloud Music Player - Downloader & Playlist Manager : 319 Remixlive - Remix loops with pads : 288 QQ音乐HD : 224 Blocs Wave - Make & Record Music : 158 PlayGround • Music At Your Fingertips : 150 Music and Chill : 135 The Singing Machine Mobile Karaoke App : 130 radio.de - Der Radioplayer : 64 Free Music - Player & Streamer for Dropbox, OneDrive & Google Drive : 46 NRJ Radio : 38 Smart Music: Streaming Videos and Radio : 17 BOSS Tuner : 13 PetitLyrics : 0
for app in ios_final:
if app[-5] == 'Productivity':
print(app[1], ":", app[5])
Evernote - stay organized : 161065 Gmail - email by Google: secure, fast & organized : 135962 iTranslate - Language Translator & Dictionary : 123215 Yahoo Mail - Keeps You Organized! : 113709 Google Docs : 64259 Google Drive - free online storage : 59255 Dropbox : 49578 Microsoft Word : 47999 Microsoft OneNote : 39638 Microsoft Outlook - email and calendar : 32807 Hotspot Shield Free VPN Proxy & Wi-Fi Privacy : 32499 Documents 6 - File manager, PDF reader and browser : 29110 Google Sheets : 24602 Microsoft Excel : 24430 Inbox by Gmail : 21561 T-Mobile : 19977 Paper by FiftyThree - Sketch, Diagram, Take Notes : 18219 MyScript Calculator - Handwriting calculator : 16555 VPN Proxy Master - Unlimited WiFi security VPN : 13674 Microsoft OneDrive – File & photo cloud storage : 12797 Ever - Capture Your Memories : 12755 Speak & Translate - Voice and Text Translator : 12062 Tayasui Sketches : 11505 Drawing Desk - Draw, Paint, Doodle & Sketch board : 11040 Microsoft PowerPoint : 10939 Email - Fast & Secure mail for Gmail iCloud Yahoo : 10778 Google Slides : 9920 HP All-in-One Printer Remote : 9819 Google Calendar – Make the most of every day : 7656 Verizon Cloud : 6482 Free VPN HexaTech - Unlimited VPN Proxy for iPhone : 5934 Productive habits & daily goals tracker : 4736 Adobe Spark Video, Animated Videos in minutes : 4302 Adobe Illustrator Draw : 3215 Concepts - Sketch, Design, Illustrate : 3101 Trello : 2793 Adobe Spark Page — Create Stunning Web Pages : 2528 Workflow: Powerful Automation Made Simple : 1498 ATracker - Daily Task and Time Tracking : 1114 Bear : 891 Family Organizer - Calendar Planner : 828 Fingerprint Login: PassKey Password & Apps Lock : 718 360云盘 : 437 Mail Master by NetEase : 361 Content Transf : 299 HOUND Voice Search & Assistant : 297 AutoScout24 - mobile used & new car market : 220 WEB.DE Mail : 168 GMX Mail : 102 MetaMoJi Note Lite : 93 Infinite Painter : 65 Jottit : 14 Free QR Code Reader simply to scan a QR Code : 10 Official QR Code reader "Q" - QR app. - : 0 Digiposte + : 0 BarcodeReader「ICONIT」 : 0
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. However, the install numbers don't seem precise enough — we can see that most values are open-ended (100+, 1,000+, 5,000+, etc.):
display_table(android_final, 5) # the Installs Columns
1,000,000+ : 15.726534296028879 100,000+ : 11.552346570397113 10,000,000+ : 10.548285198555957 10,000+ : 10.198555956678701 1,000+ : 8.393501805054152 100+ : 6.915613718411552 5,000,000+ : 6.825361010830325 500,000+ : 5.561823104693141 50,000+ : 4.7721119133574 5,000+ : 4.512635379061372 10+ : 3.5424187725631766 500+ : 3.2490974729241873 50,000,000+ : 2.3014440433213 100,000,000+ : 2.1322202166064983 50+ : 1.917870036101083 5+ : 0.78971119133574 1+ : 0.5076714801444043 500,000,000+ : 0.2707581227436823 1,000,000,000+ : 0.22563176895306858 0+ : 0.04512635379061372 0 : 0.01128158844765343
This data is not precise enough. 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.
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 a string to a float
. This means we need to remove the commas and the plus characters, or the conversion will fail and cause an error.
categories_android = freq_table(android_final, 1)
for category in categories_android:
total = 0
len_category = 0
for app in android_final:
category_app = app[1]
if category_app == category:
n_installs = app[5]
n_installs = n_installs.replace('+', '')
n_installs = n_installs.replace(',', '')
total += float(n_installs)
len_category += 1
ave_n_installs = total / len_category
print(category, ":", ave_n_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
From the list it looks like Video Playes and Social have highest number of installs. Similar to App Store this could be due to a handful of apps that are dominating these categories.
We'll take a look at other categories that may not be as dominated by a few apps that are popular in both the App Store and Google Play since we woud like to launch in both markets.
Since Music is not a category in Google Play, let's take a look at Productivity instead.
for app in android_final:
if app[1] == 'PRODUCTIVITY':
print(app[0], ":", app[5])
Microsoft Word : 500,000,000+ All-In-One Toolbox: Cleaner, Booster, App Manager : 10,000,000+ AVG Cleaner – Speed, Battery & Memory Booster : 10,000,000+ QR Scanner & Barcode Scanner 2018 : 10,000,000+ Chrome Beta : 10,000,000+ Microsoft Outlook : 100,000,000+ Google PDF Viewer : 10,000,000+ My Claro Peru : 5,000,000+ Power Booster - Junk Cleaner & CPU Cooler & Boost : 1,000,000+ Google Assistant : 10,000,000+ Microsoft OneDrive : 100,000,000+ Calculator - unit converter : 50,000,000+ Microsoft OneNote : 100,000,000+ Metro name iD : 10,000,000+ Google Keep : 100,000,000+ Archos File Manager : 5,000,000+ ES File Explorer File Manager : 100,000,000+ ASUS SuperNote : 10,000,000+ HTC File Manager : 10,000,000+ MyMTN : 1,000,000+ Dropbox : 500,000,000+ ASUS Quick Memo : 10,000,000+ HTC Calendar : 10,000,000+ Google Docs : 100,000,000+ ASUS Calling Screen : 10,000,000+ lifebox : 5,000,000+ Yandex.Disk : 5,000,000+ Content Transfer : 5,000,000+ HTC Mail : 10,000,000+ Advanced Task Killer : 50,000,000+ MyVodafone (India) - Online Recharge & Pay Bills : 10,000,000+ Microsoft PowerPoint : 100,000,000+ Microsoft Translator : 5,000,000+ My Airtel-Online Recharge, Pay Bill, Wallet, UPI : 50,000,000+ Samsung Notes : 100,000,000+ Do It Later: Tasks & To-Dos : 50,000,000+ Verizon Cloud : 50,000,000+ myAT&T : 50,000,000+ SwiftKey Keyboard : 100,000,000+ Hacker's Keyboard : 1,000,000+ MEGA : 50,000,000+ Security & Privacy : 1,000,000+ 7 Weeks - Habit & Goal Tracker : 500,000+ Loop - Habit Tracker : 1,000,000+ TickTick: To Do List with Reminder, Day Planner : 1,000,000+ Keeper: Free Password Manager & Secure Vault : 10,000,000+ Pushbullet - SMS on PC : 1,000,000+ Wunderlist: To-Do List & Tasks : 10,000,000+ Planner Pro-Personal Organizer : 1,000,000+ Todoist: To-do lists for task management & errands : 10,000,000+ Cozi Family Organizer : 1,000,000+ IFTTT : 1,000,000+ Trello : 5,000,000+ Easy Voice Recorder : 10,000,000+ Dashlane Free Password Manager : 1,000,000+ CM FILE MANAGER HD : 10,000,000+ Solid Explorer Classic : 1,000,000+ File Browser by Astro (File Manager) : 50,000,000+ File Explorer : 100,000+ The Maner : 5,000,000+ AndroZip™ FREE File Manager : 10,000,000+ Solid Explorer File Manager : 1,000,000+ Smart File Manager : 1,000,000+ Google Drive : 1,000,000,000+ Adobe Acrobat Reader : 100,000,000+ Google Sheets : 100,000,000+ Microsoft Excel : 100,000,000+ Polaris Office - Word, Docs, Sheets, Slide, PDF : 10,000,000+ WPS Office - Word, Docs, PDF, Note, Slide & Sheet : 100,000,000+ Google Slides : 100,000,000+ ColorNote Notepad Notes : 100,000,000+ Note Everything : 5,000,000+ Simple Notepad : 1,000,000+ Keep My Notes - Notepad & Memo : 5,000,000+ Sticky Note + : Sync Notes : 1,000,000+ Notepad : 10,000,000+ Squid - Take Notes & Markup PDFs : 1,000,000+ Ultimate Notepad : 5,000,000+ Notepad & To do list : 10,000,000+ JotterPad - Writer, Screenplay, Novel : 1,000,000+ Evernote – Organizer, Planner for Notes & Memos : 100,000,000+ Any.do: To-do list, Calendar, Reminders & Planner : 10,000,000+ Planning Center Services : 500,000+ Calendar+ Schedule Planner App : 1,000,000+ Today Calendar 2017 : 1,000,000+ To-Do Calendar Planner : 1,000,000+ New Calendar : 1,000,000+ Calendar Widget Month + Agenda : 5,000,000+ DigiCal Calendar Agenda : 5,000,000+ Time Recording - Timesheet App : 1,000,000+ Jorte Calendar & Organizer : 10,000,000+ Business Calendar 2 : 5,000,000+ Google Calendar : 500,000,000+ aCalendar - Android Phone : 10,000,000+ G Cloud Backup : 5,000,000+ Unclouded - Cloud Manager : 100,000+ Amazon Drive : 1,000,000+ SugarSync : 1,000,000+ pCloud: Free Cloud Storage : 1,000,000+ MediaFire : 5,000,000+ Cloud Print : 500,000,000+ Fake Call - Fake Caller ID : 10,000,000+ AutoCAD - DWG Viewer & Editor : 10,000,000+ Alt-C : 10,000+ My C Spire : 50,000+ Mobile Security & Antivirus : 10,000,000+ EX File Explorer File Manager : 1,000,000+ EBookDroid - PDF & DJVU Reader : 5,000,000+ Inputting Plus: Ctrl + Z/F/C/V : 50,000+ CTRL-F - Search the real world : 50,000+ Larry H Miller Automotive : 10,000+ Add-On: Alcatel (h) : 50,000+ J. Polep Plus Mobile : 100+ K-App Mitarbeiter Galeria Kaufhof : 100+ Calculator L : 100,000+ Emoji Android L Keyboard : 1,000,000+ Mobizen Screen Recorder - Record, Capture, Edit : 50,000,000+ Tap N Pay : 10,000+ N Files - File Manager & Explorer : 10,000+ WiFi-o-Matic : 50,000+ Multiling O Keyboard + emoji : 1,000,000+ Official QR Code® Reader "Q" : 500,000+ Q Actions - Digital Assistant : 500+ Q Link Wireless Zone : 500,000+ R-net for Android : 5,000+ Mat|r viewer : 100+ S Note : 10,000,000+ S’more - Earn Cash Rewards : 1,000,000+ SH Script Runner : 50,000+ AT&T Mobile Transfer : 10,000,000+ T-Mobile Content Transfer : 500,000+ Můj T-Mobile Business : 1,000,000+ U Assist - Screen Mirroring & Sharing App : 50,000+ U+Box : 10,000,000+ NQ Mobile Security & Antivirus : 10,000,000+ Air Conditioner Maintenance : 5,000+ Remote Control For All AC - Universal Remote : 10,000+ Ad Detect Plugin - Handy Tool : 500,000+ Safe Notes - Secure Ad-free notepad : 50,000+ Adblock Fast : 1,000,000+ Google AdSense : 1,000,000+ Best Applock - Locker & No Ads : 100,000+ TIMBER AD FILTER - Very useful ad block app : 100,000+ ESS Mobile for AE : 5,000+ Trimble Ag Mobile : 10,000+ Ag PhD Soils : 1,000+ Ag Trucking Mobile App : 100+ Ag Guardian : 100+ My Ag Report : 50+ Mix Tank – Tank Mixing Ag App : 10,000+ Extreme- Personal Voice Assistant : 1,000,000+ Puck AI Personal Assistant Robot : 1,000+ Builder (by Engineer.ai) : 100+ Friday: Smart Personal Assistant : 100,000+ Lyra Virtual Assistant : 1,000,000+ ai.Bot Box : 10,000+ MiAI (Artificial Intelligence) Assistant : 100+ Turbo AI™ - Personal assistant : 5,000+ AI Sight : 1,000+ AL Voice Recorder : 1,000,000+ AP ENPS Mobile : 5,000+ AQ Guards : 10+ QR Droid : 50,000,000+ Mind Map AR, Augmented Reality ARCore Mind Mapping : 5,000+ PDF Viewer & Book Reader : 5,000,000+ Alarm Clock: Stopwatch & Timer : 50,000,000+ Total AV : 100,000+ Mobile Security: Antivirus, Web Scan & App Lock : 10,000,000+ Professional AV Solution & Products information : 1,000+ Bits Watch Face : 100,000+ Tips Microsoft Dynamics Ax : 500+ Tips & Tricks Dynamics AX 365 : 100+ A-Z App Store : 500,000+ BA Calculator : 5,000+ Town of Princeton, BC : 100+ Electricity Bill Calculator BD : 10,000+ BD Attendance : 1,000+ BD Field Force : 1,000+ BG+Phone Backup : 1,000+ ALL-IN-ONE PACKAGE TRACKING : 1,000,000+ MinT BI : 10+ BJ Memo Widget : 50,000+ SKIN BK : 10+ BM Interventi : 10+ BAMMS for BM 1Park : 50+ BAMMS for BM SQ : 10+ BN Inscript Improved Input keyboard : 10+ Calendars (En, Bn, Ar) : 1,000+ BN DB1 App : 50+ BN Inscript Improved Keyboard : 10+ Add-On: bq (a) : 5,000+ Add-On: bq (c) : 1,000+ Add-On: bq (b) : 1,000+ BV Mobile Apps : 100+ BW Ultra : 10+ BW-IVMS : 100+ IP address BW : 500+ BW t&t : 10+ BZ Dealer : 500+ CA World '17 : 1,000+ Register.ca Mobile : 100+ CD Library : 10,000+ APagri CD : 10+ CE SODEXO PASS FRANCE : 50+ ACCEPT CE MARKING : 10+ CG - Calendars Add-On : 5,000+ CG - Conference Call Add-On : 1,000+ Somos CG : 100+ My CG : 10+ Chrome Canary (Unstable) : 1,000,000+ CI Remote for Go : 100+ IQ Test : 100,000+ Thistletown CI : 100+ CI Time : 100+ CircleCI Viewer : 1,000+ CI CAFETERIAS UBER : 100+ CJ'S TIRE AND AUTO INC. : 100+ Commission Manager : 1,000+ CJ Wilson's ZoomZoomnation : 500+ Inch/cm/Foot Conversion : 100,000+ cm, mm to inch, feet converter tool : 100,000+ Krypton by krypt.co : 1,000+ Fayr - Co-Parenting Simplified : 1,000+ CP Connect 2.0 : 500+ CQ Ukraine : 10+ CQ Electrical Group : 1+ iReadMe : 100+ Ultimate Calculator for CR : 500,000+ Ultimate Chest Tracker : 1,000,000+ CamScanner - Phone PDF Creator : 100,000,000+ Bomb and Nade Timer for CS:GO : 5,000+ Solar CT PV System Power : 10,000+ CT CONNECT : 50+ My CU - Caucasus University : 1,000+ Resume & CV Creator by Desygner : 5,000+ Resume Builder and CV maker app : 100,000+ Resume Free : 1,000,000+ Curriculum Vitae - Resume CV : 10,000+ Pocket RxTx Free : 100,000+ Cx Wize : 100+ CONNECT: The Mobile CX Summit : 50+ CX Summit : 50+ CY Security Antivirus Cleaner : 1,000,000+ Phone Clean Best Speed Booster : 1,000,000+ LOCX Applock Lock Apps & Photo : 10,000,000+ RoutePlan.cz : 100+ DB Manager : 1,000+ DF-Server Mobile : 100+ DG Report Reminder : 10,000+ DG Phone Call Task Switcher : 1,000+ DG Users : 100+ e-Boks.dk : 1,000,000+ Download Manager Pro FREE : 100,000+ Trimble DL : 10,000+ IDM Internet Download Manager : 100,000+ Shaggy's DM Assistant : 5+ DN Events : 500+ WFVS 2018 | WhatApp Full Video Status & Downloader : 50,000+ Mahalaxmi Dindarshika 2018 : 1,000,000+ Microsoft To-Do: List, Task & Reminder : 1,000,000+ To Do List : 5,000,000+ To Do Reminder with Alarm : 1,000,000+ Ike - To-Do List, Task List : 100,000+ My Effectiveness: To do, Tasks : 500,000+ Do it (Tomorrow) : 1,000,000+ Do Not Disturb : 100,000+ To-Do List Widget : 1,000,000+ NoteToDo. Notes. To do list : 1,000,000+ Memory Helper - To do list, Notepad, Notes, Memo : 500,000+ 2Do - Reminders, To-do List & Notes : 100,000+ Time Planner - Schedule, To-Do List, Time Tracker : 500,000+ MyLifeOrganized: To-Do List : 100,000+ Cal - Google Calendar + Widget : 1,000,000+ Clean My House – Chore To Do List, Task Scheduler : 100,000+ Goal Meter: Goal Tracker, Habit Changer,To-Do List : 100,000+ To-do list : 50,000+ Adobe Fill & Sign: Easy PDF Form Filler : 1,000,000+ Dr.Android Repair Master 2017 : 100,000+ DS file : 1,000,000+ DS note : 100,000+ DS cam : 500,000+ Synology Drive : 100,000+ DS-20000S : 1,000+ DT Manager : 500+ DT Freight : 1+ Clean My Android : 5,000,000+ APUS Booster - Space Cleaner & Booster : 10,000,000+ DV Web Design Tips : 10+ Dz Dinars Numbers to letters : 100,000+ Numbers Into Words : 50,000+ DZ Register : 1+ Epson iProjection : 1,000,000+ EB Scanner : 50+ Exército Brasileiro : 100,000+ ec-Work : 100+ New Holland Agriculture T5 EC : 1,000+ EC Taximeter : 10,000+ EC QR : 10+ EC Sampler : 1+ SCS eC : 100+ EF Staff : 100+ EF Calculator : 1,000+ eG Monitor : 100+ EG : 100+ EI! : 10+ Sai Baba - Sabka Malik Ek : 1,000+ Ek Vote : 500+ Ginger Keyboard - Emoji, GIFs, Themes & Games : 5,000,000+ EP Home Energy Hub : 100+ EP Cloud : 10+ ER Assist : 10+ ES Disk Analyzer - Storage Space : 100,000+ ES Material Theme for Pro : 1,000,000+ ES Holo Theme for Pro : 500,000+ ES Billing System (Offline App) : 100+ ESLock File Recovery Lite : 50,000+ iTranslate Translator & Dictionary : 10,000,000+ EU Economy : 5,000+ Eurostat Country Profiles : 10,000+ EU Brazil Green Business Forum : 10+ Simple EV Calc : 1,000+ EY Team Connect : 50+ EY ATL Fuel Calculator : 500+ EY Events Switzerland : 500+ EZ Inspections : 10,000+ EZ Display : 50,000+ EZ File Manager(Root Explorer) : 100,000+ EZ Notes Lite : 1,000+ EZ Switch Widget : 100,000+ MultiMessage for FB Messenger : 50,000+ IDM for Facebook ★ Downloader : 100,000+ Chelsea FC Official Keyboard : 1,000,000+ Avast Wi-Fi Finder : 1,000,000+ Safe Wi-Fi : 1,000+ Wi-Fi Networks : 10,000+ Fast Notes FJ : 500+ FK Events : 5+ Charlotte County, FL : 1,000+ FL House : 1,000+ Florida Cooling Supply HVAC : 500+ Fort Myers FL : 100+ MY GULFPORT FL : 50+ Future Cloud : 100,000+ FQ METER : 1,000+ PLMGSS FR : 10+
As we can see, aside from the commonly used Microsoft Word, there are various other apps within this category and several functions and features we could create for a new app. There are various apps targeting niches within a specific tasks like to do lists for cleaning a home, and to do list for various projects or transferring from one mobile to another (AT&T to T-Mobile). This allows an opportunity to select a niche within a niche and introduce new productivity features.
For this project, we analyzed data about mobile apps in both the App Store and Google Play so that we could make a recommendation on an app profile that could be profitable in both markets.
We concluded that building out an app in the Productivity category focusing on a niche feature within an already niche task could be a viable option in both markets. For example, creating an app for a specific task like decluterring the house but making it more a collaborative effort with the rest of the family members. It could include features like an "assigned person" feature and automated text nudges. It could be gamified for allowances for kids as well, etc.