Category: Mobile

  <script src="" type="text/javascript"></script>

React Native: Building Mobile Products (MVP)

React Native for Building Great Cross Platform Products



hat is React Native?


React Native is a Javascript framework that was built by Facebook and re-licensed for use by third parties in 2017. It allows developers to create apps for both iOS and Android web stores using a single codebase and a single programming language. With React Native, developers have the ability to write one React code that compiles to native applications on both iOS and Android, rather than having to construct parallel codebases in multiple programming languages.

What are the Benefits to React Native Development?

Time and Cost Savings

Prior to the release of React Native a company was required to either find engineers that had experience with both iOS Android programming languages, or to hire separate developers to work on each platform individually.


In contrast, React Native allows you to have a single team of developers experienced in one primary programming language who can work on both platforms simultaneously in one single codebase. Depending on the functionalities of your app, at least 90% of the codebase can be shared across both platforms and since all the versions of your software are written in mostly the same code, updating and adding features becomes much faster and easier.


Though there are some differences between iOS and Android that need to be accounted for when using React Native, the time and cost savings of having one codebase are a huge benefit.

Open Source Libraries and the React Community

When using React Native you are taking advantage of the wider open source community and ecosystem that exists around React and Javascript.; A tremendous number of libraries exist that can be used for common mobile application features, meaning you won’t have to spend so much time writing code to add extra features to your app- it’s likely that that functionality has already been built and shared with the community.


Additionally, the number of engineers employed by Facebook, as well as a big open source community means a continued improvement in the platform over time.

Shared Web App Code

If your mobile app also calls for a web browser/desktop application, React Native can provide some reuse and sharing of code between those platforms. Because React Native is just React and JavaScript code, an experienced development team could get a head start on a web application.


Additionally, Electrode Native is an open source tool that will allow you to migrate existing React apps to React Native.

Who Uses React Native?

Because it’s such a reliable and powerful cross platform development tool, React Native is being used by many top companies to develop their mobile apps.


Facebook uses React Native for their social media site as well as for Facebook ads manager and Facebook analytics. Instagram was able to share around 85% of code between its Android and iOS apps by using React Native, allowing their team to deliver the app much more quickly than would have been possible using a Native solution. And Tesla’s app, an integral part of its user interface that enables users to remotely monitor and control their Tesla car or Powerwall from their iPhone or Android, was developed using React Native.


With React Native, developing and supporting apps for both iOS and Android is less effort it once was. From the ability to develop apps across platforms using one codebase to the benefits of utilizing the open source community, React Native provides an optimal framework for developing awesome cross platform products.


Android or iOS for retail?

Develop apps for both platforms using cross-platform development tools, like React Native or Flutter 

Many retailers face a difficult decision: should their mobile retail shopping app support Android or iOS? They feel their limited resources cannot be stretched to build and support both platforms, so they often pick just one. Some retailers may have already committed to one platform, but are unsure if they made the right choice. Others have not yet developed on either platform and are exploring options for their first mobile shopping app. With our past experience working with large retailers, we believe that to maximize revenue from mobile, companies need a presence on both Android and iOS in order to avoid losing the opportunities that each platform provides.

This article will explore the options available for retailers with only one app or no native mobile app at all. We will show you why supporting both platforms is the only choice, and how using a cross-platform development tool like React Native or Flutter, provides the resources to support both platforms at 60% of the cost.

Should you have a mobile retail app at all?

Our research shows that any retailer interested in keeping up in the current, competitive omni-channel environment needs a mobile presence. The number of retailer mobile apps actively used by consumers has doubled in 2019, from an average of four apps per phone to eight. According to studies:

  • 72% of consumers use apps for browsing products
  • 60% for accessing discount coupons
  • 57% for making purchases
  • 86% are happy with the customer experience provided by retail mobile native apps.

What about relying on a mobile website instead of a native app? Let’s look at the data:

  • The average time a user spends on their mobile phone: 4 hours, 10 minutes
  • How long a user spends time browsing the mobile web: 32 minutes 
  • How long a user spends time using mobile apps: 3 hours 40 minutes 

Users no longer consider the mobile web as a viable alternative as 90% of mobile usage time is spent on apps. The mobile web does not seem as responsive to user inputs as a native app. For the user, a native app is a much more immersive experience. For the retailer, a native app offers a superior branding opportunity. Clearly, not having a mobile retail presence is a costly mistake for any retailer. Your customer expects the convenience of mobile shopping, and the responsive performance of a native app.

What each platform offers

Both platforms have plenty to offer. Internally, there may be discussions about whether marketers should target heavy spenders among iOS users, or whether they should cater to Android users, who continue to outnumber iOS users 6-1?

The decision will depend on many factors, such as your app category or your target audience. In some regions and demographics, Android dominates, while in other areas, iOS dominates. It is important to prioritize your targets and tactics based on the audience you want to engage.

A case for Android

According to IDC, Android phones have 85% of the global market share as of 2019, while Apple iOS has only 12%. The other 2% is split amongst all other mobile operating systems.

Statistics show that Android users spend slightly more time interacting in the app than iOS users do. In the case of retail shopping apps, Android users spend an average of 7.6 minutes vs. the 6.6 minutes iOS users spend.

So, given the high lead in market share, Android seems like the logical choice for your first app, right? Not so fast…

A case for iOS

It is generally accepted that iOS users are more profitable for retailers than Android users. Figures released by Google and compiled by Benedict Evans provide some hard data on just how big that gap is.

“Google Android users in total are spending around half as much on apps on more than twice the user base, and hence app ARPU (Average revenue per user) on Android is roughly a quarter of iOS.”

A study in 2014 shows that the median iPhone app user earns $85,000 per year, which is 40% more than the median Android phone user, with an annual income of $61,000. Even though Android has far more downloads than iOS, iPhone users spend twice as much on their phone than their Android counterparts. Another study of small retail purchases found that on average, Android users spent $11.54 per transaction. iPhone users, on the other hand, spent $32.94. Independent research indicates that the perception that iOS users are the “Big Spender” platform is more than a stereotype — It’s an observation supported by facts.

Impressive engagement rates suggest that iOS users offer better value for money than their Android counterparts. So obviously iOS development is more cost-effective than Android, right? Well, there is still more to consider…

Regional differences

The physical location of your target audience can make a large difference in the type of platform used. Note that iOS is favored in regions with large amounts of disposable income. Android sees high usage in lower-income areas of developed markets. In emerging markets, Android extends its lead even further.

The demographics and income profiles of the target region can also have a significant impact on the choice of the platform the retailer chooses to concentrate on. User age, gender, education, and other factors not covered here may also impact the platform choice. The decision process can become quite complex with no conclusive answer.

The cost of developing for both platforms

To maximize revenue from mobile, companies need a presence on both Android and iOS to avoid losing the opportunities that each platform provides. We have seen that Android downloads far exceed iOS downloads. We have also seen that the iOS purchase value exceeds that of Android. To further complicate matters, target regions, and other demographics matter. Even the type of purchase may favor one platform over the other, so the most ideal solution is to develop apps for both platforms.

Recall that the reason we were forced to choose between the two platforms in the first place was to control development and support costs. Two apps, one for each platform, will cost twice as much as developing one app, says conventional thinking. We are glad to report that this is no longer the case. Cross-platform development tools, like Facebook’s React Native or Google’s Flutter, have come to save us.

Buy one, get one free

Both React Native and Flutter are an excellent cross-platform development framework. The initial investment in app development using these frameworks will yield applications for both platforms with native app performance.

They offer strong support and backing of the biggest technology companies with a highly-attractive UI and excellent native performance. Once the developer is up-to-speed using the programming environment, development time is faster than any alternatives.

To learn more about React Native and its advantages over other cross-platform development tools like Iconic or Flutter, check out our blog post Why React Native should be your next mobile development framework.

If you do not have any app neither Android nor iOS

Developing in React Native or Flutter will yield an app for both platforms with the same resource cost as building for a single platform. We estimate that it is 60% cheaper to use React Native or Flutter as your development platform than using Swift and Kotlin. The code is only written once for both apps. Also, from our experience developing in native and cross-platform applications, we estimate developing with React Native or Flutter is about 15% more resource-efficient than the native languages.

If you already have an app on one platform

Already have one platform app developed? Using a cross-platform tool still makes sense. Using React Native or Flutter for developing your second app will incur the same development resources as developing using a native language, possibly slightly less. However, both applications will now use common code, saving future costs for maintenance and upgrades. Consistency of look and feel between the two apps will also have a positive effect on corporate branding.

Conclusion – You can afford to have mobile apps on both platforms

The days of choosing between Android or iOS have long past. It is now a requirement to support both platforms. Ignoring either platform has direct negative consequences on your revenue stream. Fortunately, the days of having to choose platforms based on development costs are behind us. Both React Native or Flutter development tools can build a cross-platform application for both Android and iOS with the same performance as development based on native application language for the same cost as a single platform. The cost savings extend to app maintenance as well. Contact Towa Software for further information or a quote for us to build out or update your mobile application portfolio.



User Guide on Mobile App Development Cost Calculator

Lots of people want to know the cost of mobile app development. Actually, this question is quite difficult, because the accurate cost of any project is fairly a complex task, it depends on the scope of work and the features, the product should have. However, to make our potential clients’ life easier we developed an online calculator for an app development cost.

It should be kept in mind that the estimation is imperfect, but still, it will provide you with some understanding of the budget required for your app development. You can find the calculator on our site in the Business Application menu.

The project value estimate is based on the calculation of the total time needed for each chosen feature development or implementation, including Backend Development, Interface Design, Mobile, Quality Assurance, and Project Management. The hours needed for each phase are then multiplied by the rates of the engineers’ work and the final cost of the project is determined.

The first thing you should register is what kind of an app you want and pick the platform: iOS, Android, or Both. Then you will be given the list of features you can include in your app. In the right-side panel, you can see the total cost of each development phase.

You can also send a PDF file to your email, with the information gathered and the cost of every feature development in the context of a particular stage.

The following features are possible for integration into any app we develop, and you can define the set you need particularly later with our business consultants.

  • E-mail login It’s a typical login scenario when the user has to provide his email/username and password for authorization. This feature also includes e-mail verification function and the password recovery in case of need.
  • Social login. It’s a secure way of user authorization, which does not require a password but allows signing in with social media credentials. Though relatively new, this form of login is now preferred by more than 75% of users. The most popular platforms for that are Facebook and Google, followed by Twitter, Yahoo, LinkedIn, and other platforms.
  • Dashboard. To balance an enjoyable experience of your users and your management data, a data dashboard is a feature to implement. It’ll provide an at-a-glance view of KPIs relevant to your business processes. The dashboard usually contains numbers, charts, and other data types visualized. A dashboard is useful because it can provide relevant information which can be turned into action. Each client indicates which data exactly he or she wants to see in the dashboard of the app ordered.
  • Activity Feed. It is a list of the user current activities in the app. It helps to track the most interesting recent activity taking place in the application.
  • Rating System. It allows users to rate the content of the app or other users. Recommendations are a very powerful thing nowadays and thus your users can see who provides expert opinion or most useful advice, who is most reliable or trustworthy in some aspect. The credibility of the content thus becomes more valuable automatically.
  • Camera /Photos. Today, there is hardly a person who does not have a high-powered digital camera in their pocket. The smartphone camera can become quite useful and beneficial through granting your app access to it. It will allow taking and saving photos right away.
  • Gallery — Photo / Video. The feature which can be implemented to make it possible for the user to store photos and videos in the application, create albums, and adjust visibility settings.
  • Camera / Video. You can also provide camera permission to shoot and save videos in the app.
  • GeoLocation. The current user location can be useful for many reasons, allowing to spot the place he is in and find the way around in the first turn as well as for the app to provide the most up-to-date info based on locality.
  • Maps. The maps can be integrated into the app to visualize the user locale or some objects position on the map as well as for creating routes. Here offline mode is also worth consideration.
  • Compass. A good feature for many apps to prompt the user the way around to certain places nearby.
  • Custom User Interface. In case you want to add up personalization to the software solution you develop, it’s one of the options — allow the users to choose the interface to their individual liking.
  • Accept Payments.In case your app has something to do with commerce, various secure payment options are a must. The most usual systems we work with are Stripe, PayPal and Apple pay. However, we can integrate almost any payment method. Once we faced the integration of two local Scandinavian payment facilities and adjusted their flawless functioning. The variety of payment systems will facilitate transactions for your users and add up to your app rating.
  • Sync Across All Devices. Nowadays it’s possible to synchronize the app data across various devices. You can implement auto-synchronization or a back-up function to synchronize data when it’s necessary.
  • User Profiles. You can customize the way your user profile has, how the information associated with a user arranged and what settings are available.
  • Audio / Music. In case you want the users to listen to audio messages or music, you can provide them with such opportunity in-app. While streaming can be convenient, it eats up mobile data, so the feature is valuable for the applications dealing with audio data or music.
  • Messaging. The feature which can be implemented to facilitate communication between the app users.
  • Shopping Cart. In case your app sells goods or services, shopping cart is an inevitable feature, which will help you gain and keep your users, people now value the opportunity to make orders in a single click.
  • Search. To facilitate quick and convenient data obtaining and usage, the function of search is absolutely necessary. It will help your users get the necessary info right away and in no time.
  • Task List. In case you need some kind of administrative functions and team management, you can benefit from a task list feature.
  • Barcodes. Scanning of barcodes has become a required feature for many popular mobile apps. It helps to compare prices in stores, tracking assets through the supply chain or managing inventory. A proper barcode scanner can turn your app into a powerful business tool.
  • QR Code. It facilitates the detection of QR Codes for scanning and retrieving additional data. Nowadays it is possible to detect a QR code on an invoice or shipping note and additionally save it as a PDF. The feature can be quite convenient for business purposes.
  • Calendar Integration. To plan and track the activities, users will always appreciate having all in one place and that’s where an integrated calendar can come quite handy.
  • Social Sharing. It’s not only a means of data sharing and social involvement but a powerful tool to engage the audience and convert it into paying customers. Being a modern trend it’s a feature worth considering.
  • 3rd Party API Integration may be useful for a number of reasons, it’s a common thing nowadays to integrate payment options in such a way, however, a number of other services may be integrated in such a way: Redmine, Jira, Slack, Channel Manager, Google Calendar, etc.
  • User Privacy Settings. The privacy of a user should always be the first priority, however, you can implement certain settings by default or use a customized approach so that each user can adjust the privacy and visibility of his info to his liking and preferences.
  • SMS Integration. It may become quite a handy function allowing to send SMS right from the app, without the necessity to switch to smartphone functions. It’s a handy feature to integrate for certain system notifications, to confirm authorization, for instance, or to notify the user that the car has arrived in case of uber-like taxi service.
  • Push Notifications. Most use cases required to notify the customer about a promo in a timely manner. To have the ability to send push notification right from the start is important to keep an active community of users.  It’s a feature to integrate for certain user notifications, promo, call to action, and trigger events..
  • Approval / Moderation. In case you allow your users the possibility of providing feedback, leaving reviews or commenting, approval or moderating function is essential, to manage the content published by the users.
  • Reporting.The feature should be integrated for the convenience of data administration and quick access to various data layers. It’s reasonable to implement it for management and analytical functions.
  • Content Management System. To publish information of various kind and administrate it, you should be able to manage your content and schedule it. To have such functionality Content Management System should be implemented into the app you work on.
  • Payment Administration. Payment system integration has two sides to it: – possibility to make payment for the users and the possibility to manage payments for the admins, in case you integrate a payment system think of the possibility.
  • User Administration. To provide the users with certain opportunities and manage their roles inside the app consider user admin feature implementation.
  • Ticketing System.It’s the opportunity to create and close support queries by managing and streamlining the process of issue resolution. Through the individual elements called tickets a context is provided what issue is set in and its related characteristics — category, priority, etc. To have a single point of contact between the service provider and the consumer you should consider implementing the system into your app.
  • Feedback System. At present people rely more on the reviews and feedback from other people than on some formal information about the place or service they are going to use. A good idea is to include the feature to your app.

We hope now, after reading this guide you have a better understanding of the solution you want to create and the features your mobile app requires for and a Minimum Viable Product (MVP).

Make the calculations, send us an inquiry, and let’s review it. We know how to deliver a cutting-edge product and valuable services, even in a very tight budget, plus we are always open to discussion.