How much does it take to build a mobile application in Nepal in 2024?

Adit Malakar
January 4, 2024
8 minutes min read
Introduction In today’s digital era, People consider mobile phones as necessary as a wallet or handbag. Mobile applications have become integral to our daily lives, catering to various needs and enhancing convenience. Nepal Mobile App Development landscape has seen substantial growth and evolution over the years. With the increasing reliance on mobile devices, the demand […]

Introduction

In today’s digital era, People consider mobile phones as necessary as a wallet or handbag. Mobile applications have become integral to our daily lives, catering to various needs and enhancing convenience. Nepal Mobile App Development landscape has seen substantial growth and evolution over the years. With the increasing reliance on mobile devices, the demand for innovative and functional applications continues to surge.

Understanding Mobile App Development

Mobile app development creates applications specifically designed to run on mobile devices, such as smartphones or tablets. It involves software development, design, testing, and deployment to produce applications that cater to the functionalities and user experiences unique to mobile platforms.

Various aspects are involved in mobile app development:

Platform Selection: Developers choose the platforms for which they’ll create the app, such as iOS (Apple devices) or Android (Google devices). Sometimes, apps are developed for both platforms simultaneously (cross-platform development).

Coding and Programming: Developers use programming languages like Swift or Objective-C for iOS and Java or Kotlin for Android. Cross-platform frameworks like React Native, Flutter, or Xamarin are popular as they allow building apps for multiple platforms using a single codebase.

Design and User Interface (UI/UX): Designing an intuitive and visually appealing interface is crucial for user engagement. This involves creating wireframe mockups and then implementing the design into the app.

Testing: Thorough testing is essential to ensure the app functions appropriately on different devices and under various conditions. This includes functional testing, usability testing, performance testing, and more.

Deployment: Once the app is developed and tested, it’s submitted to the respective app stores (Apple App Store, Google Play Store, etc.), where users can download and install it on their devices.

Updates and Maintenance: Apps require continuous updates to fix bugs, introduce new features, and adapt to evolving technology or user needs. This ongoing maintenance is crucial for the app’s success.

Types of Mobile Applications:

Native mobile apps: For a specific operating system, like the IOS or Android phones, they’re designed to run on one platform and can be written in an individual programming language. Because they are created to work on a specific operating system or platform, native mobile apps are faster, more reliable, and capable of being offline.

HTML5 Mobile Apps: These apps allow you to benefit from the write-once-runanywhere method. HTML 5 is the most commonly used method for creating simple applications. It is highly effective and affordable to use cross-platform HTML5 mobile apps.

Hybrid Mobile Apps: These apps have native viewer functionality and back-end programming.

Some of the top apps in the world, including Gmail, Twitter, Amazon, and others, are hybrid applications. Hybrid apps can use plugins that give developers access to a platform’s native capabilities. They also develop more quickly and require less maintenance.

Mobile App Development Cost In Nepal

In Nepal, making mobile apps is quite a big deal right now, and people often wonder how it’s done and how much it costs. Developing an app can start at around Rs. 8,000 and go up from there, depending on the app’s needs.

First, making an app look good (UI/UX design) might cost about Rs. 8,000 for simple ones. But if you want it to look super fancy, that can be around Rs. 20,000. Then come the technical parts that make the app work behind the scenes (backend), which can bump the cost up to Rs. 40,000.

After building the app, checking and testing it (QA) to ensure it works well can add another Rs. 30,000 to the bill. Once it’s out there, maintaining and supporting the app could cost around Rs. 12,000 yearly. Plus, there are fees to put the app on the Appstore and Playstore – $99 for Appstore and $25 for Playstore.

If you’re thinking of making a specific app, like an online store (E-Commerce), that might cost around Rs. 1.5 lakh for both Android and iOS. Apps for things like food delivery or ones that are super easy to use might cost about Rs. 2.5 lakhs. Some popular apps like Pathao, Foodmandu, and Daraz started in these cost ranges and grew big over time.

The cool thing is, even though these costs give you a rough idea, they can change based on how complex the app is and what it needs. 

Here is an estimated price list of some of the apps you might consider developing:

Type of Mobile App Approximate CostDevelopment Time
Social Chat/Social Media App20 Lakh – 25 Lakh2-6 months
E-Learning App1 Lakh – 2.5 Lakh2-8 months
Fintech App1 Lakh – 2.5 Lakh2-6 months
Healthtech App1 Lakh – 2.5 Lakh2-6 months
Food Aggregator App2 Lakh – 4.5 Lakh1-4 months
Enterprise App1 Lakh – 2.5 Lakh3-8 months
Mobile Games2 Lakh – 4 Lakh2-7 months
Mobile Commerce App1 Lakh – 2.5 Lakh1-7 months
Media Streaming App50 Thousand – 1 Lakh1-6 months
Cab Booking App3 Lakh – 5.5 Lakh2-6 months
Multi-vendor e-commerce App50 Thousand – 5 Lakh2-6 months
E-Commerce App20 Thousand – 50 Thousand1 month
News Portal App20 Thousand – 50 Thousand1 month
Tourism Apps20 Thousand – 50 Thousand1 month
School College App20 Thousand – 50 Thousand1 month
Gold Silver Rate App10 Thousand – 50 Thousand1 month
Informative App20 Thousand – 30 Thousand1 month
Online TV/Radio App30 Thousand – 1 Lakh1 month

Conclusion

In conclusion, building a mobile application in Nepal in 2024 involves various factors contributing to the time and cost. From conceptualization to development and deployment, numerous elements impact the overall investment. Factors such as complexity, features, design, platform, and expertise play a pivotal role in determining the timeline and budget for your app project.

In these considerations, selecting the right development partner becomes crucial. This is where we at The Value Crew stand out. Our goal is simple: to offer more than just an app. We believe in creating experiences that exceed expectations. Our team is dedicated to delivering value that goes beyond numbers—it’s about crafting apps that resonate with users. We’re here to navigate the complexities of app development costs while ensuring you get the best value for your investment.

Head over to our website https://thevaluecrew.com/ and message us to get started. Email us at [email protected] or call us at +977-9843418300 to begin building your dream app. We are excited to get your project like it’s our project.

BACK TO BLOG

Beware of DynamoDB TTL

Bibhuti Poudyal
January 10, 2021
3 minutes min read
Its a very basic requirement for applications to delete data item from the database after it has no use. Certain information like verification code, one time passwords, gift coupons, activation keys etc. don’t need to be stored once used. Typically, a cron job can be scheduled to get rid of such data items at certain […]

Its a very basic requirement for applications to delete data item from the database after it has no use. Certain information like verification code, one time passwords, gift coupons, activation keys etc. don’t need to be stored once used. Typically, a cron job can be scheduled to get rid of such data items at certain intervals. But modern databases have this feature built onto the system.

Dynamodb provides a TTL field to achieve this goal. Dynamodb docs states that

Amazon DynamoDB Time to Live (TTL) allows you to define a per-item timestamp to determine when an item is no longer needed. Shortly after the date and time of the specified timestamp, DynamoDB deletes the item from your table without consuming any write throughput.

At first, it looks like a cool feature. Allows you to free up your database by automatically deleting the old records. Cool, isn’t it ?

But if you are someone(like me) who instantly gets amazed and implements the feature right away without going into depth, you are likely to face the problems I did.

Here are few things to be considered before implementing this feature on your application.

TTL data type and value

The TTL field must be a number DataType. And the value should be in seconds i.e. timestamp in Unix epoch time format in seconds. In case of any other format, the TTL processes ignore the item.

TTL precision

This feature can work only if your task requires hour precision, but not minute or seconds precision.

As Dynamodb docs states

DynamoDB typically deletes expired items within 48 hours of expiration. The exact duration within which an item truly gets deleted after expiration is specific to the nature of the workload and the size of the table. Items that have expired and not been deleted will still show up in reads, queries, and scans.

In my case I was working with verification codes, sent as SMS, which needed to expire after XX minutes. For this TTL didn’t work as it didn’t guarantee minute precision, So I had to manually store timestamp and check for expiration within the lambda function.

References

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/TTL.html

BACK TO BLOG

Scalable schema for DynamoDB

Bibhuti Poudyal
January 10, 2021
4 minutes min read
DynamoDB is a NoSql database and models data in Table-Items-Attributes structure. It allows data-item to be schema less. It’s a huge advantage as it allows you to write data in any format as desired. Even if structure of your data changes eg: a new field is added/deleted at later point of time, it adapts to […]

DynamoDB is a NoSql database and models data in Table-Items-Attributes structure. It allows data-item to be schema less. It’s a huge advantage as it allows you to write data in any format as desired. Even if structure of your data changes eg: a new field is added/deleted at later point of time, it adapts to it well.

With freedom of schema flexibility, data format inconsistency comes alongside. Even if database provides the power of flexibility, the schema shouldn’t change to that point at which it affects the performance of the system. It becomes an overhead to write separate business logic to manage the data inconsistency. It’s a good idea to resolve this issue on database layer.

I came up with a simple, yet effective solution to solve this problem. It worked pretty well in my scenario, hope it works well in yours too. For demonstration purpose Nodejs runtime have been used for business logic.

Here is the dead-simple schema for all of your DynamoDB tables.

As you can see this schema provides all the required data and metadata fields. The data field will contain the core information and others are metadata.

Lets explain major fields one by one.

id

id is the primary key to uniquely identify each item in a table. As DynamoDB doesn’t provide automatic generation of this field, the developer is required to generate it manually. The uuidjs library seems to be the best fit.

v1(version 1) of uuid guarantees that it is always unique even if everyone is doing millions of database insertions/sec. An identifier has been pre-appended so that its more unique and easier to separate from others(its optional though).

Read more about the UUID algorithm here.

data

The data field is a map type attribute. Maps are enclosed in curly braces({ … }). It is similar to a JSON object. There are no restrictions on the data types, and the elements do not have to be of the same type.

example:

The structure is similar for both user and the product. Core data lies inside the data field.

Make sure that the value inside data field isn’t too inconsistent to manage. That inconsistency needs to be handed at either back-end or via front-end code. In case of very complicated inconsistency, the whole idea of this schema becomes useless.

timestamps

The timestamp field provides information on when the data was created and updated. For createdAt field, a timestamp needs to be inserted during data creation. For updatedAt field a simple function can be used to wrap the update logic. The function then automatically appends updatedAt field each time. Here’s a simple one which I wrote for my use

For implementing the soft delete functionality, you can use the deletedAt field. In order to track the item’s author createdBy field comes in handy.

This is my solution to tackle the minor changes in database schema while working with NoSql databases. I prefer to keep very little amount of data format inconsistency and normalize it on front-end during data rendering. If the amount is very high, its best to write a back-end script to normalize the data.

If you find any flaw, have some improvements or you have a different or more cleaner approach, please share in the comments below.