Category: Blog, Business, Cost, Development

Pros and Cons of Using Third-Party Software in Your App Development

Learn when it’s worth to use 3-rd party software in your app development and understand its key advantages & disadvantages.

Pros and Cons of Using Third-Party Software in Your App Development

Building a new application from scratch takes a lot of time and effort. That’s why developers today use so many tools, libraries, and platforms to avoid reinventing the wheel and writing common features from scratch.

Are you wondering whether to use third-party software when building your application? You’re in the right place. Read this article to learn what third-party software is, the pros and cons of using it, and get expert recommendations from our development team with 10 years of experience on the market.

What is third-party software?

In its broadest definition, third-party software refers to reusable software components supplied or developed for a particular purpose by a different company/person from the one that built the existing product on a particular system (source).

Third-party solutions come in various forms. Here’s our breakdown of the most common types of third-party software:

1. Libraries

Libraries come in handy for writing web or mobile applications by delivering source code for a component. They can be open-source (available to everyone at no cost) or closed-source/proprietary (where a purchase may be necessary).

Examples:

  • SnapKit (iOS) – library for building application layout from code, helping developers to be more productive and achieve more with fewer lines of code,
  • Lottie (Android) – library for designing animations that developers can enrich with interactions, you can find example animations here,
  • Moya – (iOS) library for networking and communication with the backend, very popular among iOS developers looking to save a few days of work.

2. Platforms

Platforms are integrated, ready-made solutions that developers can use to realize a specific feature – for example – user logging, chat, or maps. They’re SaaS (Software as a Service) products to which developers can outsource certain functionalities for a fee (usually monthly), or in some cases for free.

Examples:

  • Firebase – it delivers ready-made components for logging in, a database for storing application data that can replace an application backend, the option to use deep links, remote configuration of application features (perfect for A/B testing!), a space directly to Facebook.
  • Auth0 – this platform allows developers to rapidly integrate authentication and authorization for web, mobile, and legacy applications so you can focus on your core business.
  • Google Maps Platform – the Google Maps Platform is a set of APIs and SDKs that allows developers to embed Google Maps into mobile apps and web pages, or to retrieve data from Google Maps.

3. Tools

A variety of tools that in many ways make the app development more effective and increase the quality of the final product.

Examples:

  • SwiftLint – an open-source tool for enforcing Swift style and conventions. Developers can set their coding style rules and enforce them during development. SwiftLint has a command-line tool, Xcode plugin, AppCode, and Atom integration. So, it always fits any development environment. It’ll show us warnings and/or errors if we violate the linting rules (learn more here).
  • Danger – a tool used by many developers to automate common code review chores.  You can use it to codify your team’s norms, leaving humans to think about harder problems. Danger leaves messages inside your Pull Requests based on rules that you create.
  • Zeplin – a tool for UI designers and developers, enabling them to collaborate efficiently and save time. Among others, it allows designers to share the design system with the team, and generate development resources automatically. Everyone in the team can access the latest design resources and gets notified of changes without you having to ping them.

In this article, we focus on the above-mentioned 3-rd party “platforms” mentioned in point 2. Our clients often ask us about the pros and cons of using this type of solution in software development, which is why we decided to share our insights with a broader audience.

Pros of using 3rd-party software in your app development

We believe that using 3rd party software in a reasonable way:

  • improves the efficiency of the app development process,
  • increases the quality of the product,
  • reduces app development costs significantly.

Below you can find the key pros of 3rd-party software.

Pay just for what you need

When using a third-party solution, you pay a monthly fee for the used limit instead of having to pay a high up-front cost for building the feature from scratch. Sometimes you pay the fee after passing a set limit – at the beginning, you might get away with not paying anything for using the solution.

Faster development process

The greatest perk of using third-party software is that developers don’t have to write everything from the ground up. For example, if you’d like to add a login feature to your app, your team can simply use Auth0 and focus more on the features that form the core of your app and its competitive advantage. It makes the app development process much much faster.

Significant cost savings

Using third-party services comes at a much lower cost – both upfront and during the app’s operation over time. Some third-party platforms might be available free of charge until a certain level. Then it’s likely that you’ll be paying a monthly fee for the used resources. As a result, the cost of using a feature is spread over time, and you end up paying monthly fees instead of a high upfront fee.

For example, a solution for instant chats, Pusher, offers 200k messages and 100 concurrent connections free of charge. If you need to support 1 million messages and 500 connections monthly, you pay only $49.99/month. And if your chat grows a lot, you can take advantage of larger plans. Building the same chat from scratch would cost at least $50k – you could get 1000 months on Pusher’s smaller plan for that.

Read also: What’s the average app development cost in 2021?

Faster time-to-market

By accelerating the development speed, you can bring your application to market faster. As a result, you can quickly verify your idea, check whether it solves the problem of your target users, and achieve a product-market fit.

A shorter feedback loop from users

By releasing the product or MVP faster to the market, you can quickly verify the value of your application to users and learn what they think about it. Their feedback will help you to build an even better app.

Potentially greater capabilities

Platforms are examples of mature software that might be too sophisticated for the client’s initial requirements. They help us to build applications that offer greater capabilities than needed, but at the same time, they offer a real value for the application’s future development.

Easy integration for developers

Many platforms available on the market today are equipped with modern SDKs that allow easy and fast integration. For example, it usually takes only 2 days to implement the user authentication feature with Auth0, while building the same from scratch would take several weeks.

Less maintenance effort

Third-party platforms come with another advantage – there’s no need to maintain their code in shape. This is the job of the provider, not the company using the resource. As a result, developers get less code to take care of and maintain, making their job easier.

Using third-party solutions is a smart move in MVP development

All of the benefits we mentioned above – faster time-to-market, accelerated development process, and shorter feedback loop from users – means that third-party solutions are a great match for MVP development.

When a client approaches us with an idea for an app, we usually advise them to start with a simple MVP that brings value to users. Following the agile methodology of software development, our teams focus on the most important elements of the app.

Example scenario:

Imagine an app for car cleaning. The core idea is ordering your car to be cleaned via the application. This is what builds the app’s competitive advantage. Other features don’t make the app stand out, so it makes sense to focus on the core feature when developing an MVP for this app.

This is where third-party solutions come in. For example, we can use Auth0 for logging in and authentication. The platform offers various options for logging in with passwords, phone numbers, two-factor authentication, etc.

The team doesn’t have to write this feature from scratch, helping to bring the MVP faster to get tested in the market. You can use such a solution for free until a certain level and then pay for its usage – but not for its development.

As a result, the cost of building your app is much lower – building such functionality from scratch would drive the project’s costs up by a lot. The more third-party platforms you use, the faster the development team will deliver your MVP.

Now you can see how third-party software slashes the development costs and speeds up the moment of releasing the app to the world. This is a huge product win because you get to verify your idea on the market early on and pivot if necessary.

And once your app gains traction and starts to generate revenue, you can replace the third-part solution with your own code.

Cons of using third-party software in your app development

Less flexibility

Naturally, using third-party solutions comes with some limitations. When we’re not using the default methods supported by the solution provider, we usually need to work hard to adapt the provider’s tool to our needs. Developers can do that, but at some point, it just becomes too expensive.

If you’re looking to build a feature that is really original / custom, finding the right third-party solution might be impossible.

Also, it’s smart to consider the migration costs before jumping on the third-party bandwagon. For example, it’s common to use third-party software for authentication during MVP development. But then it might turn out that the flow of logging in needs to be changed because of the market specificity and user needs. For instance, we might need to add a new field where the user states their height and limit that value to 2 meters.

This is when you move to custom code and solution. The cost of this migration is different in each case. That’s why analyzing this cost at the project’s outset is a smart move.

Vendor lock-in

When using a third-party solution, you’re inevitably dependent on the provider. This poses a risk to the stability of your software. That’s why it’s a common practice to write core application features from scratch and use third-party solutions only for its non-core elements.

Risk of rising costs

Being dependent on the provider also means that the application’s costs might go up when the provider changes the pricing. It sometimes happens that the costs of third-party solutions grow drastically at a certain scale.

How to minimize this risk? Avoid building core application features with third-party solutions. While this risk isn’t that important in MVP development where you’re looking to verify the idea when scaling the app, consider whether this risk is acceptable to you.

What’s more, at some stage of application growth with a rapidly growing scale, the costs of using a given 3rd-party platform may increase drastically. It may turn out that because of scaling up, a particular solution is no longer cost-effective for you.

Example of 3rd-party platforms pricing

Auth0:

Auth0 pricing

Auth0 pricing – to see more, go here

Mapbox:

When to replace third-party solutions in your project?

When paying for it doesn’t make sense anymore

As your application grows, its scale might make using third-party solutions just too expensive. When the costs of using the platform get really high, you can save up a lot by building your own solution from scratch.

When you need more customization and flexibility

Another scenario where ditching a third-party solution makes sense is when we need more flexibility, and the solution just doesn’t allow it. It’s important to take a good look at your features from the business perspective and decide how important they are. If your competitors offer a functionality that is similar, it might be a good opportunity to gain a competitive advantage by building a unique feature from scratch and differentiate your app from your competitors.

Our recommendations for using third-party software

Have a plan b

It’s worth asking yourself: what happens when we’re forced to stop using a third-party solution for some reason? It’s good to have a plan b – a migration strategy where you list all alternatives to your solution. The strategy should also point out how your own solution would be implemented and estimate the cost of migration both between different providers and between a provider and your custom solution.

Consider the feature at hand

When deciding whether to use a third-party solution or write up functionality on your own, ask yourself these questions:

  • Is it a core or non-core feature?
  • How important is this feature for my application?
  • If it’s a non-core feature, how often will it be used?

Your answers will indicate whether third-party software is a safe bet.

Decide whether you’re building something specific or generic

If you’re looking to build a generic functionality, it’s worth it to use third-party software. But if what you need is something specific – something that a third-party solution might not deliver – just don’t use it.

Note that some platforms allow adding custom components. So, if a third-party platform doesn’t include everything, check whether adding a feature could be an option.

Carry out a pricing analysis and licensing terms

Developers tend to consider the SDK and integrations, but you also need to assess third-party software from the cost perspective. Carry out a pricing analysis to understand which platforms match your budget best.

Also, analyze the licensing terms – especially regarding the scale. Consider what would happen in case of the dynamic growth of your user base. For example, if you have an e-commerce store, the number of shoppers in your mobile application might get just as high as in your e-store.

Analyze project threats

When deciding on a third-party solution, check what level of security it offers, what its data management policy is, and whether it complies with regulations such as GDPR. The platforms we use in our development projects are well-known and recognized on the market as reliable providers, so we can be certain of their security.

Read also: What is Mobile (and Web) Application Security? | Introduction for App Owners

If you’re looking for product-market fit, third-party software is a good pick

The primary benefit of using third-party software is that it speeds up the development process and makes it cheaper. If you’re still looking for a product-market fit and want to check how your idea performs on the market, you probably don’t want to spend a lot of money on experimenting with your app. Third-party software helps to keep costs at bay and deliver something you can test fast.

Consider changes and don’t get attached too much

Even if you used a third-party solution for your MVP or product, it doesn’t mean that you need to stick to it at all costs. Changes are normal in software development. Your application is bound to change due to the changes in the market, among your customers, or in your business. And so will its technical requirements. Migrating a feature to code written by your development team is a common scenario, so there’s no need to be afraid of third-party software.

Examples of third-party platforms we use in our projects

Auth0

This platform allows developers to rapidly integrate authentication and authorization for web, mobile, and legacy applications so you can focus on your core business. The integration of Auth0 on the backend takes about 2 days of development. And the implementation of such a feature on your own would take 3-4 weeks, so that’s a lot of time and money savings. What’s more, thanks to Auth0, you avoid the risk that comes with creating your own solution to authenticate and authorize users.

Stripe

A great payments solution that comes with outstanding API and SDK. Developers love working with it.  It allows your app to accept payments, send payouts, and more.

Socket.io 

This real-time, bidirectional, and event-based communication helps us build features like instant chat messaging. It works on every platform, browser, or device, offering great reliability and speed.

Voximplant

A serverless platform for voice, video, and messaging APIs trusted by thousands of developers around the world to innovate and scale real-time communications.

Mandril

This is a paid Mailchimp add-on designed to help applications or websites that need to send a transactional email like password resets, order confirmations, and welcome messages.

Firebase

It’s Google’s mobile platform that helps you quickly develop high-quality apps. It delivers ready-made components for logging in, a database for storing application data that can replace an application backend, the option to use deep links, remote configuration of application features (perfect for A/B testing!), a space for hosting files like photos, and access to lots of helpful analytics.

AWS (Amazon Web Services)

A secured cloud service platform providing computing power, database hosting, content delivery services, and many other products. In our opinion, it’s a great choice for hosting the entire server infrastructure in the cloud.

ARCore

Google’s platform for building Augmented Reality in mobile applications. ARCore uses three key capabilities to integrate virtual content with the real world as seen through your phone’s camera: motion tracking, environmental understanding, and lighting estimation. Read more here.

Firebase ML

Part of Firebase, but this solution deserves a separate point. Firebase ML delivers machine learning based on artificial intelligence and can be used, for example, to recognize text, images, etc. Basically, anything where ML can be used.

Firebase Crashlytics (formerly Crashlytics)

It is a lightweight, real-time crash reporter that helps you track, prioritize, and fix stability issues that erode your app quality (source).

Mapbox

A great source of custom online maps for websites and applications. It allows teams to build better mapping, navigation, and search experiences across platforms.

Wrap up

We hope that this article helps you understand the advantages of using third-party solutions and the role they play in modern software development.

If you have any questions on how our teams use third-party software in building applications – especially in MVP development – feel free to drop us a line.

Our experts have many years of experience in building applications with the help of third-party solutions to achieve an optimal balance between cost, speed, and functionality.

About the authors

Jakub Janus

Jakub Janus

Web Developer

Marcin Chojnacki

Marcin Chojnacki

iOS Developer

Wojciech Szwajkiewicz

Wojciech Szwajkiewicz

CEO of Droids On Roids