How Much Does It Cost to Build App (Uber, Evernote, WhatsApp) in the Philippines
In one of the posts, I suggested finding an outsourcing company for first-time entrepreneurs in case they cannot find tech cofounders. One can build an MVP for cheap if he or she wants to put some work.
I decided to estimate how much does it cost to build an app like Uber, Evernote, or WhatsApp in the Philippines? Rough development estimate for Uber is $5,520, Evernote is $2,808, and WhatsApp is $3,430.
And I repeat in this post I will estimate how much does it cost to build an MVP, not a full-featured application. The difference between MVP is that it should only contain features that absolutely must be in the application. Any nice haves should be chopped.
Let’s start with Uber.
App like Uber
Minimum Features
Uber is an on-demand ride-hailing application. In order to work it should have 3 separate apps:
- Passenger app
- Driver app
- Management console for an administrator (optional for MVP)
How all apps work together
- When the driver registers thru the driver app he or she needs to be approved in the Management Console. Once approved driver can accept requests after signing up and changing his or her status to Open.
- Passenger creates an account and has to provide minimum details: email, phone, and credit card information.
- Once signed in passenger can request a pickup. Let’s assume that the request is instant, scheduling pickup is out of MVP scope. The fare will be calculated based on a simple formula which includes base fare, cost per mile and cost per minute. Fancy Uber’s calculation when they charge more when demand is high is out of MVP scope.
- The request will be sent to all drivers in the area.
- Drivers can see requests on the main app screen, selects request based on distance and estimated fare and accepts one.
- Passenger receives a confirmation that the order was accepted and can see the driver’s location and estimated time of arrival.
- The driver’s screen changes to navigation.
- When arrived the driver can tap on a button and the passenger should receive notification that the driver arrived.
- When a passenger gets in the car, the driver starts the ride, screen changes to navigation.
- When arrived the driver taps on the button to confirm the arrival, the fare will be calculated and charged to passenger’s credit card. Tips out of MVP scope.
- The passenger has an option to review the driver.
Offline features (when driver and passenger not communicating):
- Passengers can review tips history, manage profile (email, phone, credit cards)
- Drivers can review trips history and see daily and monthly earnings.
- Admins in management console can see a list of drivers, customers, and trips.
Features of passenger app
Passenger app is a mobile app where passengers request a pickup, set destination and pay.
Minimum features include
- Register/login page
- Price calculator
- Pickup request
- Tracking driver’s location
- Payment
- Review
- Trip history
Features of driver app
- Register/login page
- Accepting pickup request
- Navigation
- Reports
Technologies
Most modules in all 3 apps consist of front end and back end work, so we need 2 developers: front end and back end.
Choosing front end technology
Passenger and driver apps are mobile apps and management console is a web app. The mobile application can be native or hybrid. The advantage of native apps is that have better performance, but the advantage of hybrid applications is that they are cross platform because they built for any platform from a single code base.
Since we want to save money, we will not build separate applications for iOS and Android. Instead, we have to choose from cross-platform frameworks: Xamarin, React Native or Ionic.
Since the front-end developer must also work on web app Xamarin is not a good choice. Developers who know React Native can use React Js to build web apps. Developers with knowledge of Ionic can build web apps with Angular JS.
As far as I know, in Philippines Angular JS is more popular than React, so I am going to look for a front end developer who knows Angular JS and Ionic.
Choosing back end technology
There are a lot of back end frameworks: PHP, Java, Node.JS, .NET. I found the developers who worked with either Java or .NET are usually stronger than PHP developers because they worked in big companies who prefer either Java or .NET. Since Java is more popular, I will go with Java.
We will also need a database, so the question is should we choose NoSQL or relational database. NoSQL database like Mongo is better when the application is transaction intensive. Relational database is better when you work with financial transactions and need to run reports. So, I will go with the relational database.
There are 2 main open source RDBMS: MySQL and PostgreSQL. MySQL is more popular so I going to look for back end developer with Java/MySQL skills.
Modules and project plan estimates
Passenger App Modules
- Initial setup: create front end project, create a database, create API project
- Registration page: enter name, email, phone and credit card. We want to be out PCI scope, so we do not want to store credit card information in our database. Modern payment gateways like Stripe and Vantiv provide SDKs which return tokens when users enter their credit card information. You can store tokens in the database and charge against those tokens and still be PCI compliant because you don’t have credit card number.
- Login page: enter email/password. Reset password.
- Pickup request screen: enter pickup and destination addresses.
- Price calculator: calculated estimated cost of a ride between the pickup and destination addresses
- Tracking driver position: to track the driver’s location.
- Push notifications: Apple Push Notification Service (APN) when you build an Uber-like app for Apple devices.Firebase Cloud Messaging (FCM) when you are going to build the app for Android-powered devices.
- Review driver screen
- Trip history
Passenger module hours estimate
Feature | Front End | Back End |
Initial setup | 16 | 16 |
Registration page | 24 | 8 |
Login page | 8 | 4 |
Price calculator | 8 | |
Tracking driver position | 16 | 8 |
Push notifications | 32 | |
Review driver | 4 | 2 |
Trip history | 16 | 8 |
Driver App modules
- Registration page: enter name, email, phone
- Status: waiting approval/accepting requests/en route/arrived to pick up location/arrived destination/offline
- Open requests: requests ordered by distance. Can select from the list.
- Navigation: using Google Maps to get directions
- Reports: trip history, daily and monthly earnings
Driver module hours estimate
Feature | Front End | Back End |
Initial setup | 16 | |
Registration page | 16 | 8 |
Status | 16 | 8 |
Open requests | 16 | 8 |
Navigation | 40 | |
Reports | 24 | 24 |
Management Console modules
- Drivers: can see each driver details, can approve/disable driver
- Passengers: can see each passenger details, can approve/disable the passenger
- Trips: can see each trip details
- Users: add a new admin, edit details (name, email, password)
Management Console module hours estimate
Feature | Front End | Back End |
Drivers | 24 | 16 |
Passengers | 24 | 16 |
Trips | 24 | 16 |
Users | 32 | 16 |
Estimating cost of development
For this exercise, we will use OnlineJobs.ph portal to find developers we need.
First, let’s search for front end developer. He or she should be an expert in Android/iOS development, Ionic and Angular JS. Additional bonus if the developer has design skills. I also skip on candidates with low ID proof. After some research I found the one with the following skills:
“Have an experience on both mobile and web application development using Angular JS (Ionic Framework and MEAN Stack), Android App Development, iOS App Development, ReactJS, React Native. His rate was $9.95 per hour.”
Now we search for back end developer. For some reason this site did not allow to search for Java developers, so I found a candidate with experience in Python and Ruby on Rails. His rate was $12 per hour.
If we I use developers above, then the total project cost would be:
316 * 9.95 + 198 * 12 = $5,520
App like Evernote
While Uber is a very complicated project, Evernote is on the surface is a very simple one.
Minimum Features
Evernote is a note taking app. This is one of my favorite apps on my phone and I use it daily. Minimum features include an ability to build tree-like stacks, adding/editing/deleting notes, tagging, full-text search. Web clipping is out of MVP scope.
Technologies
Evernote application consists of a mobile app and back end API. I will use MySQL for user registration and stack hierarchy. Since full-text search is one of the most important features, I will not use a database to store notes, I will use Elasticsearch or similar service.
Evernote hours estimate
Feature | Front End | Back End |
Initial setup | 16 | 16 |
Registration page | 24 | 8 |
Login page | 8 | 4 |
Managing stacks | 40 | 16 |
Notes management | 32 | 16 |
Search | 16 | 32 |
Synchronization | 16 | 16 |
Estimating cost
For estimation I will use the same developers I found previously. The total project cost for Evernote would be:
152 * 9.95 + 108 * 12 = $2,808
Messaging app like WhatsApp
The most complicated part of any messaging or social media app is not the user interface. If the app is popular then the biggest problem becomes scalability because the number of messages served by WhatsApp, WeChat or Telegram is enormous.
Storing, synchronizing, searching requires special skills and special platforms. So, if you are serious about building social media you better find someone who has real experience building highly scalable systems. It is highly unlikely that freelancers can do such job, but, hey, we are only doing and an MVP which is not supposed to scale in the beginning.
Minimum Features
Our app supposed to allow to send messages and photos. Sending voice mails, voice and video calls are out of MVP scope.
WhatsApp hours estimate
Feature | Front End | Back End |
Initial setup | 16 | 16 |
Registration page | 24 | 8 |
Login page | 8 | 4 |
Import contacts | 24 | |
Manage contacts | 24 | 24 |
Chats page | 32 | 24 |
Group Chats | 32 | 16 |
Push notifications | 32 | |
Synchronization | 16 | 16 |
Technologies
The mobile app design itself is simple so we can use Ionic as a client framework. Ideally, we should’ve to use Mnesia as the database and YAWS as web-server for back end (technologies used by WhatsApp) it is unlikely we can find developers proficient with those technologies. So, we are going to use Python/MySQL developer for the back end.
Estimating cost
The total project cost for WhatsApp would be:
176 * 9.95 + 140 * 12 = $3,430
Conclusion
If you search the internet for estimates for apps like Uber, Evernote and WhatsApp you will find quotes in a wide range from $1000 to $250000. My estimations are no better or worse than anyone else’s. The point of this exercise is to give you some idea what it would take to build an MVP. Using a similar approach, you can estimate your own application.
And keep in mind, that estimations only included developer time. I didn’t include QA and PM cost because I assume that you have to manage and test your own application.
Please let me know if you any questions.