Category: You Asked, We Answered
How Much Does a Custom App Cost?
Creating a custom app for your business is sometimes a great idea. A custom app can help you streamline and improve your business operations, keep you in better contact with customers and clients, and possibly help you manage your finances. The possibilities with an app tailored directly for your business, institution, or organization are endless….but it can also be costly.
Due to this, the first question most business owners have when considering creating custom software for their business is “How much is an app going to cost?” That’s a very important question, but it’s not easy to answer. The price of an app can easily range in price from less than $50k to over a million dollars!
The following questions are covered in this article:
Why does the cost of an app vary so much?
Why such a disparity in price? Since an app is not a tangible product, most of the pricing is typically based on the time that the developers work on a particular app project. A custom app is not much different than a custom-built swimming pool or a brand-new house. An app can come with many different features and vary greatly in complexity. The more features and the more complex an app is, the more it will cost due to the time involved to create it.
What affects the price of an app?
Let’s run down the most common things that could affect the price of a custom business app.
Size and Functionality of the App
The larger and more complex the app, the longer it will take to build. Factors that can determine the size of the app include the type of registration your app will have, how many types of users will access it, how long the workflow is, and how many features it will have. An app’s features can include any of the following:
- Can the app take photos?
- Does it collect payment for a physical product?
- Does it collect and provide access to a digital product?
- Does it allow for chat between users?
- Does it allow the users to send attachments, whether video or documents, through chat?
- What types of information does the app collect from its users?
- What type of login is the app going to require?
- Does the app allow access to some content without login?
- How long does the app allow users to stay logged in?
- What types of notifications does the app provide users?
- What types of user info does the app store?
- Does the app store medical or financial information?
- Does the app track detailed statistics?
This is only a sampling of different features an app can have. For a worksheet that breaks down most of the options and features that an app might have, you can take a look at our app feature questionnaire and determine which options your business app will require to make it look and function according to your needs.
Customizability
If an app has the same settings for all users regardless of the type of user, it will be less expensive than having multiple settings for different users. The more customization the app provides to the users, particularly if it varies its setting for different users the more expensive it becomes.
Administrative Control
If an app is used primarily by employees or in a situation that requires very little oversight from administrators or an outside party, the app will be less expensive. An app that requires the product owner to delegate oversight capability to others, such as a medical app that collects sensitive info, will be more expensive. This is also the case for an app that needs to make certain that its users do not violate its Terms of Service, such as an app with chat functions or an app that allows users to post pictures.
The languages used to create the app
There are many different coding languages that a developer can use when creating a custom app. The languages a developer uses depends on the platform or platforms the app is going to be available on. The features of the app also affect the languages that will be used in its development. Some coding languages, such as JavaScript, C++, and Python are higher level languages that tend to be less complex and faster to write than Assembly languages, for example. Assembly is a lower level language that has no built in features. Therefore, the programmer has to code more of the functionalities from scratch which can be very time consuming and complex to do.
The type of development company
When developing an app, the app founder has a number of options as to what type of development company they would like to use, which can have a large influence on the app’s ultimate cost. Types of app developers include onshore, nearshore, and offshore developers. Local developers tend to be more expensive than developers who operate from other areas in the United States or Canada. In addition, developers from Asia, such as India and China, tend to be less expensive than ones closer by. There are a lot of other considerations besides the cost of developers, however, and the price of hiring a development company near you may be worth the extra price. You can learn more about the different types of developers you can choose from in the above link.
The infrastructure cost
When developers are developing apps, they do not create much of the backend infrastructure themselves. This infrastructure can include data storage and delivery, processing, security, and backups. Infrastructure services allow an app founder to scale an app as needed, and they only pay for what is actually used, versus a business creating such infrastructure on their own, which may cost much more in terms of funds.
These infrastructure services are delivered through a public cloud infrastructure. Amazon Web Services (AWS) is the most popular and frequently used supplier of this type of infrastructure, but there is also Google Cloud, Microsoft Asure, and a number of smaller infrastructure services. These services often start off as free trials. Free trials eventually wear off, however. In addition, an app may use more time accessing a service than allowed for free, or more memory is required as the app scales to accommodate its users. The price of these infrastructure services would need to be factored into the ultimate cost of the app.
Can I get my app running without breaking the bank?
When an app founder has an idea for an app, they will often go through several discovery meetings with the developer, which will help them fine-tune their app idea and determine how much the initial costs for their app will be. Because of how expensive apps can cost, the product owner may create an MVP (Minimum Viable Product) first. This is a bare-bones, no bells and whistles version of the app. An MVP only contains what the product owner deems as totally necessary for the app to function.
The product owner may then add extra features to the app over time depending on the user experience that a business wants the app to provide and feedback that it receives from users. An MVP can often be created for a more complicated app for less than $100K.
What if a custom app just isn’t in my company’s budget?
A custom app is definitely not for everyone, but that doesn’t necessarily mean that a business that cannot afford a custom app is out of luck when it comes to simplifying or scaling their business operations. There are many SaaS (Software as a Service) products available that are paid for on a subscription (monthly or yearly) basis.
Many SaaS apps offer free trials so business owners can try different products before committing. SaaS products are usually much cheaper than a custom software project, though they do come with limitations on what you can do. There is also a limit on how much they can be customized to suit a business’s needs, and it is sometimes difficult to switch from one SaaS product to another. They may still be worth looking into, however, to determine if they can help at a reduced price.
Matraex is a custom software and app design company located in Boise, Idaho. Designing custom software is an important decision, and we understand that you may have a lot of questions. We hope to help you figure out if designing an app is the right move for your business and who to trust your business to. Check out Matraex’s other informative blogs. If you have any additional app development questions, we’d love to answer them for you. Contact us or call us at (208) 344-1115, and we’ll help you with any questions you may have. You can also leave your question on our Google Business Page. Your question may even become a new blog!
Sign up to receive answers to your questions delivered directly to your inbox!
How to Protect Your Intellectual Property
In the beginning phases of developing an application, there are many things to keep in mind in order to protect an idea and the process through which the idea is implemented. One important first step is setting up possession of code. By setting this up at the beginning of the process, you can confirm ownership which will give you ultimate control over what happens during the project process.
What is Possession of Code?
Possession is defined as, “the state of having, owning, or controlling something.” This is no different within the world of software development. To avoid issues down the road, setting up access to the current code base is best practice. To understand this process, it can take a bit of training and research but it is well worth it to protect your project.
Time and time again, individuals run into the issue of obtaining their code from a previous developer when switching to a new freelancer, internal developer, or third party development firm. If you have possession of your code, you have access to invite new developers or revoke past developers if there comes a time when you no longer want a developer to make changes to your project.
NDA
Another way to protect your code is through an NDA (non-disclosure agreement). While ensuring that you have obtained possession of your code is important, an NDA is an equally important next step.
What is an NDA?
An NDA is a non-disclosure agreement. Its purpose is to create the legal framework that protects you and your application idea from being shared with anyone else. This article is a great resource that will tell you everything you need to know when it comes to non-disclosure
Do I need an NDA?
It is best practice to have an NDA in place when dealing with anything pertaining to intellectual property. An NDA ensures confidentiality and protection. Without an NDA, you are at risk of your idea being leaked.
Your ideas are an extension of your creativity and keeping them protected is of utmost importance. Ensuring possession and ownership and signing an NDA are two ways that you can ensure protection and have peace of mind and you dive into the world of software development.
Agile and Waterfall Methodologies in Software
Waterfall and Agile are well known approaches in software development. They are two unique methodologies providing different directions for various types of projects.
Agile Software Development – a type of development framework that expects the need for flexibility and applies a level of efficiency to the delivery of the finished product through consistent deliverables & communication.
Agile
- Frequent meetings
- Works well in conjunction with MVP
- High flexibility
- Short term deadlines – quick deliverables
- Collaboration between parties
- Reduced risk
- Cost effective
This graph shows the flow of an agile timeline. There is constantly a new deliverable and after each deliverable, there is communication between parties to review what is working and what needs to shift in order to continue improving the product. The time between each deliverable is typically two to four weeks, although it can be shorter. Due to consistent communication between parties, agile is more cost effective because the project can shift easily and frequently.
Waterfall Software Development – With a waterfall methodology, the scope and requirements of the project are defined upfront. The client receives large batch deliverables at the end of each development phase.
Waterfall
- Goals set from the beginning
- Requirements are clear and fixed
- Infrequent meetings
- Complete deliverables before moving onto next phase
- Low flexibility
- Higher cost
Looking at the graph to the right, you’ll see that Waterfall project timelines are longer than Agile. While working on a Waterfall project, there is often less communication as the requirements are less flexible in the beginning phases of the project. Due to this, there is more risk associated because of less flexibility to change the product. In Waterfall, each stage of the project needs to be completed before moving on to the next step.
Agile is more commonly used today because of the flexibility, cost efficiency, and reduced risk associated with this methodology.
Onshore vs. Offshore Development
The Difference Between Onshore & Offshore Development
When deciding to develop a new app, there are many choices to be made. A large decision is deciding where your app will be developed. This article will go over some of the nuances of onshore vs. offshore development. By the end of this segment, you should have a better understanding of which direction would be best suited for you and your company.
Offshore: Offshore development is hiring out your development needs to an individual or a company that does not reside in your same country.
Onshore: Onshore development is hiring out your development needs to an individual or a company that resides within the same country your business is located.
Onshore Development
In Person Connection
Meeting in person can cultivate relationships between two companies or individuals that are harder to cultivate online. The ability to meet face to face can help clearly communicate the needs of your business.
Clear Communication
Being able to clearly communicate can make the difference between project successes and failure.
Cost
Something to be aware of when dealing with onshore companies, is a term called “backdoor offshoring”. This is essentially when you hire a team in your country, and they hire out the work to an offshore freelancer or company. You can ask to meet with your developer in person and know exactly who is going to be assigned to your project and be in tune with the entirety of the project.
Offshore Development
Cost
Typically, offshore companies offer their services at a lower cost than those within the United States. Offshore companies have more employees that are ready and willing to work which in turn creates a faster turnaround time on projects. Many companies in the US are very popular and busy which may cause a delay in project startup. Many offshore companies have workers that are ready to work as soon as the next project comes up. Because of these factors, turnaround times can be much faster offshore than onshore. Although, this can vary between projects and their specific needs.
Availability
The world is vast and so is the talent pool outside of where you live. Offshoring means that you have access to many brilliant and talented individuals worldwide. Offshoring can be a great way to access developers with a wide range of skills.
Time Zones
One issue with offshore development is the difference in time zones. Very practically speaking, it can make it very difficult to find time to connect when questions arise, or you just simply need to get in touch with your developer. On the other hand, different time zones can be positive for founders that have a day job and are working on their software idea at night. An offset schedule can be a project advantage.
Communication
When working with individuals in other countries, it is safe to assume that English will not be their first language. Even if spoken with proficiency, there can still be unique challenges that present themselves.
No matter if you choose onshore or offshore development, it is wise that you know where your code is being stored and be sure to have access to it. If you choose the offshore route, looking up the law pertaining to code ownership and possession in that country is beneficial.
Does Your Business Need a Mobile App?
Mobile apps have increasingly become an integral part of the digital landscape. For many businesses, they are an indispensable asset and for others, the question still remains: “Should my business be utilizing a mobile app?” This article discusses a few things to consider before jumping into the world of app development and will give a better understanding of things to consider when deciding if an application is necessary for your business.
- Your audience
- The value of your app
- Your competitors
- Long term app support
- Current website
Your Audience
Consider who your audience and ideal customers are. Here is a great article from HubSpot that breaks down exactly how to figure out who your target audience is.
The Value of Your Mobile App
An app should add inherent value to both a business and its customers. Here are a few ways an app can add value:
- New Revenue
- Selling goods and services
- Process payments, track orders, and manage inventory
- Sell a new product
- Offer follow-up goods
- Build Relationships
- Connect to your customers through push notifications about new products, services, special offers, and events.
- Collect customer feedback and build relationships
- Better customer service
- Reduce Expenses
- Can help save time
- Answer questions
- Automate processes
Long Term App Support
Apps require maintenance of follow-up features and updates. Once an app is developed, there may be bug fixes to keep up with along with improving basic functionality of the app as time goes on. Consider the time commitment and cost associated with keeping an app updated.
Current Website
When deciding if you need a mobile app, consider whether you are able to accomplish what you need by adding small changes to your website. A well optimized website can provide many of the same functions as a mobile application. If you already have a website, think about the additional benefits a mobile app will provide and ask yourself the question, “Should my business be utilizing a mobile app?”
All in all, developing an app can be a very positive addition to your business when it adds value and helps you connect with your consumers. If you are interested in looking at the next steps, talking with a professional app development company is a great place to start in order to assess your business needs and determine if an app is right for you.
Marketing Websites vs Web Applications
We are often asked if we build “websites” – yes we do, but there is nuance to the answer. The websites that we build are better defined as “Web Applications”. And a “Web Application” is different from another type of website – a “Marketing Website”. How are these two different? In short: A Marketing Website presents information about a topic or business and a Web Application helps users get something done. The table below describes many of the differences between a Marketing Site and a Web Application. Since Matraex is the #1 Web Applications development firm in the Boise market – people looking for a local ‘Website Designer’ will often reach out to us – I added some links to the Google My Business page for several long term and reliable local resources to help people understand the different companies that comprise these different categories of “Website” builders.
Marketing Website Developers
Web Application Developers
- Matraex, Inc (this is us!!)
- Vynyl
- Ventive
The key differences between a Marketing Website and a Web Application
Marketing Website | Web Application | |
---|---|---|
Purpose | A marketing website’s goal is to provide information, most of these are corporate business sites providing details of a company’s offerings with resources, contact information and links to related industry | A Web Application is a website that helps a user accomplish something through its interfaces. |
Development process | A Marketing Website can be developed by creating and approving a design, building on the information and content and then applying the design to the content. | A Web Application starts as an idea and forms into a list of features (a roadmap) with the most important features first. The developers implement the items in order of the roadmap. More sophisticated applications often have multiple environments so the complex logic can be tested be approving features to be moved to launch. |
Time to launch | An entry Marketing Website can take between one week and one month depending on complexity and number of pages. | An entry Web Application MVP (minimum viable product), can take 2 to 6 months to launch. |
Time Requirements | Most time goes to creating content and managing SEO. A larger one time cost to design the interface and layout is a close second | Most time is spent in developing code to create features and functionality. |
Team | A project manager, a content creator, and a front-end developer. | Project manager and a full stack developer. Larger teams will have roles split into back-end and front-end developers. |
Hosting Cost | Less expensive – MANY SOLUTIONS! | More expensive – the hosting is often decided by the technology stack and development group. Modern applications use cloud based hosting which only charge for usage, but can scale to high levels |
Common Technology Platforms | WordPress, Wix, Square | PHP, React.js, NodeJS, ASP.NET, java |
Specialties | HTML / CSS / Design / Front End SEO / Content Generation / Design / Copywriting | Programming / Database / Logic / Backend Testing / User Experience / QA Innovation / Security |
How App Development is Done
Application development UI illustration in flat design. Mobile app building concept banner with industrial crane and team of workers developing and constructing applications. App development company.
There is a constant need for apps to help employees and everyday people complete tasks. Developing an app of your own can be both helpful for the general workforce and lucrative for yourself. The following is a step by step approach for how app development is done.
1. Brainstorm
The first step in developing an app is to decide which kind you should make. Take note of the different tasks you do at work or at home and see if any of them can be automated. Write down all the ideas that come to mind, even the bad ones. In my experience, bad ideas that don’t get ignored lead to good ideas, so write them down. Take a look at other apps on the market and determine if they are lacking anything, or if there are ways they could be better. All of this will help you pinpoint what sort of app you should develop.
2. The Design Document
Once you know what kind of app you want to build, the next step is to put it into words in the form of the design document. The purpose of this document is to keep the development project on track. The design document outlines all of the features and abilities you want your app to have. For more information on writing a design document click here.
3. The Prototype
Now you’re ready to actually build the app. You’ll start by creating the prototype. This will be a rudimentary version of your app. At this point, the main concern is to get all of the functionality in place. The prototype doesn’t need to be beautiful, the art and design of the app (while important) will be one of the last things to work on.
4. Testing the App
There will be a plethora of bugs to work out. The bugs come from mistakes in the code, weird usage the app’s design didn’t account for and other reasons. Testing will help you find the mistakes so you can fix them before your end users find them. Try to throw every conceivable scenario at your app to make sure it can handle them properly. When you’re working so close to an app, it can be hard to step back and spot problems that fresh eyes could find. For this reason, you’ll want to have friends and family test your app to further uncover any bugs.
5. Polishing the App
Now that you’ve finish testing and fixed all the bugs you were able to find, you’re ready to polish your prototype into a finished app. This includes choosing attractive color schemes, borders, buttons and art that you want to include in your app, as well as organizing your menus in a way that has a logical flow. Typically a skilled UI designer would work on this part, but that would add significantly to the cost of your app. If a UI designer is not within your budget then at the very least make sure your app is both easy to use and pleasing to look at.
6. Distribution
Now your app is finished and ready for distribution. There’s a few ways you can get your app to the masses. If you designed your app for a particular operating system, there are online digital stores you’ll be able to sell it in. For example, if you designed your app for Android devices, you’d be able to sell it on the Google Play Store or even on your own website. Document your apps features and include tutorials and screenshots. If you distribute and sell the app through your own personal website you’ll need both a server and a decent digital payment system, respectively.
If you have an idea for an app and would like our team of developers to build it for you, contact us by clicking here and get started with a free one hour consultation.
Hold On. Do Apps Honestly Need My Permission? Check These 3 Permissions Now.
We’ve all done it before, got bored, downloaded an app and (without a second thought) gave it permission to access our camera, microphone and contacts list. While there are legitimate reasons why apps may need access to your camera (like a video calling app) other times it makes no sense, like if a solitaire game app needs access to your microphone. Nowadays it’s necessary to think critically about the permissions we grant to software applications.
What are Mobile Permissions?
On both iPhone and Android, apps require your permission to access sensitive data on your phone. This includes but is not limited to: contacts, your camera, photos, your microphone, etc. The app retains this permission until it’s disabled. Sometimes you’ll be given an option to grant permission to the app at all times or just while the app is in use.
The Camera
Giving an app permission to access your camera or photos shouldn’t be taken lightly. Technically, by doing that, the app can take pictures and video with your phone, anywhere, anytime and could potentially post them online. I’ll let your imagination help you conclude why that could be a problem. If an app has a legitimate reason why it needs to access your camera, like sending video clips via Snapchat, or Facetime, then it makes sense why they need to have access to your camera. In cases like that, you’re most likely fine to give it permission. However, if an app wants to access your camera or photos, and there’s no feature in the app that warrants it (like a mobile card game or reading app like Kindle) then that’s a huge red flag and you should probably deny it permission.
The Microphone
The microphone can provide data every bit as sensitive as a camera can. Since our phones are on or near us almost every second, we probably don’t think twice about what we say around them. But if our phones had ears (and they do) what would they hear us talking about? Would they hear us mentioning PIN’s or social security numbers. Would they hear us give passwords, birthdays or email addresses? Usually, when an app asks for permission to access our microphones, it gives us the option to only grant it while the app is in use. Some apps will use your phone to listen to what shows and movies are playing around you to give advertisers a better idea of how to market to you. While that example isn’t super distressing, you don’t have to think far to figure out how access to your microphone could be used for more insidious purposes. Again, for this reason, think hard about whether or not an app really needs access to your microphone. If you can’t think of a good reason, then there’s a good chance that app wants to use it for iniquitous purposes.
Contacts
Apps that have some form of messaging usually ask for permission to access your contacts. This can be helpful to find out who else in your contacts list is also using the same app. But once again, if it doesn’t make sense for the app to use your contacts list, then it’s not a good idea to give the app access to it. For example, if you’re a sudoku buff and download a mobile version of the SINGLE PLAYER game, there is zero reason that app needs your contact list. Usually games like this and solitaire, where players don’t interact with other people, will want to use your contact list to send spam out in order to get more people to download the app.
What Technical Skills App Development Teams Must Have
Your business is booming and you’ve got an idea (and a need) for an app that will make managing your enterprise 100% easier. You start searching for a team of developers to create your new app. What skill sets should you be looking for in this development team? The following are 5 technical skills you will want your app development team to be well versed in.
1. Cross-Platform Abilities
One of the most polarizing topics in our society is whether Android or iOS is better than the other. Regardless of what side of the platform aisle you fall on, in order for your app to be a success, you don’t want it to have to pick a side. For this reason, your team of developers needs to know how to use a cross-platform tool, so the app can be neatly translated into iOS, Windows and Android.
2. Cloud Infrastructure
Have you ever stopped and wondered what the cloud actually is? The name conjures an image of a giant area in the sky where a bunch of 1s and 0s fly around until summoned to our phones or desktops. In reality, the cloud physically exists as a network of data centers (giant complexes with lots of computers inside) located around the world. Most apps will live in these data center networks, so it’s important that your app developers know how to interact with them and be able to recommend which network will fit your needs best.
3. Current Coding Language
The world is getting increasingly more mobile, so you’ll want to make sure that you team up with developers who are skilled at coding for mobile apps. There is an array of different coding languages well suited for mobile app development. Your development team should have a working knowledge of at least one of them and be able to explain why they selected that coding language to build your app.
4. Security
It goes without saying that security is essential for your app. While it’s true there will always be a risk, minimizing that risk is crucial. Your development team needs to have a clear understanding of security protocols as well as what tools and practices will be the best to secure your app.
5. Data Proficiency
Your app will be driven by data. Data is something your app needs to collect a lot of, so you can better understand your end results. You’ll need a developer who can build efficient databases so the app will run smoothly. Your app will collect data in many different forms and from many different sources. The development team needs to be familiar with these sources and forms of data so the app can interact with them properly.
Apps can make a world of difference for your business. They can increase sales, streamline processes, save time, improve productivity, security and more. In short, an app is well worth the investment. If you have an idea or need for an app, contact us today to get started.
What Coding Languages are Most in Demand
When starting a career for an app development company, you’ll want to set yourself apart from the crowd by knowing what coding languages are most in demand. One of the best ways to make yourself more marketable is by being proficient in as many high-demand programming languages as you can be. Learning a programming language takes time and energy, so you’ll want to focus your efforts on learning a language that will give you the best return on your efforts. The following is a list of 5 programming languages that any software developer would do well to have under their belt.
1. JavaScript
At the moment, JavaScript is one of the most widely used programming languages in the world and many hiring managers look for programmers who can use this language. JavaScript is popular because most web browsers utilize it and the language is one of the easier ones to learn.
JavaScript is used for game and web development, building web servers and mobile apps. Programmers can use JavaScript to make web elements like clickable buttons, interactive maps and animated graphics. JavaScript’s usability makes it one of the most marketable programming languages developers can learn.
2. HTML
HTML stands for Hyper Text Markup Language and is the foundational building block language of the web. This language is used for web documents, website maintenance and development. HTML formats what information means and how it is structured on a website. Programmers use HTML to structure and create the text on a website such as links, headings and paragraphs.
HTML is another commonly used programming language that will help programmers look more attractive to hiring managers.
3. Python
Python is a somewhat easy programming language to learn and is used by both beginning and experienced programmers. Python is in high demand and allows developers to utilize an array of different programming styles like reflective, functional and object-oriented.
Over half of hiring managers look for candidates who can use Python making this programming language a very marketable one to know.
4. CSS
CSS stands for cascading style sheets and is used for website development/design and web documents. CSS programs the size, position and color of the elements on a webpage. Knowing this language helps programmers be a bit more versatile, plus it’s a relatively easy language to learn.
5. PHP
PHP is a very popular scripting language used for making dynamic web pages. Also, common open source shop systems are carried out in PHP. Learning this programming language helps developers become more valuable and attractive to employers. PHP is also free to use because it’s an open source framework.
Don’t get hung up on which programming language you choose to learn. Decide on what kind of work you want to do and choose the language best suited for your goals. At the end of the day, learning any new skill will increase your abilities and make you more marketable to hiring managers.