This is my archive

Serverless use cases: see what companies follow the serverless approach

Serverless technologies are an emerging trend that has the potential to revolutionize the way we architect and build applications in a faster, more efficient manner. Serverless frameworks provide developers with the ability to create robust enterprise-level applications without having to worry about servers or infrastructure. This blog post will discuss Serverless use cases and examples, as well as best practices for using Serverless frameworks in your next project!

Why businesses leverage Serverless

Serverless architectures are a potential game-changer for organizations that need to scale their applications quickly and efficiently. Serverless frameworks allow developers, system administrators, and DevOps teams to focus on solving business problems rather than maintaining servers or infrastructure.

Serverless technologies include AWS Lambda functions as well as Cloud Functions from Google Cloud Platform (GCP), Azure Functions, IBM OpenWhisk Serverless Framework – these all help businesses with the following:

As the volume of demand increases and decreases, serverless computing and architecture generally scale up and down on autopilot. Additionally, this solution may significantly reduce operational costs and server maintenance. 

How companies scale their business and serve their customers by going serverless

Serverless framework use cases span a variety of industries, from fintech to healthcare providers. Serverless architectures are also being used in emerging fields such as the Internet of Things (IoT), artificial intelligence (AI), machine learning, and blockchain technologies – just to name a few!

Here are a few companies that stand out with their serverless offerings.

Netflix going serverless

It goes without saying that Netflix is one of the biggest fish in the broadcasting market, serving millions of customers all around the world. Of course, it requires a huge backend infrastructure to carry a seamless customer experience.

Amazon Web Services Lambda is used by Netflix to run tasks that would otherwise require a great deal of computing time and effort.

During the AWS re:Invent event in 2014, Neil Hunt, Chief Product Officer, has explained the change AWS Lambda brought to their existing infrastructure management. 

As of now, Netflix’s media encoding process is automated by event-based triggers. As well as backing up and deploying instances at scale, they made it easy to validate the completion. Each infrastructure process falls into place thanks to the continuous monitoring of AWS resources. 

AWS Lambda makes publishing easier as well. Netflix receives thousands of files every day from publishers, and each of those files must be encoded and sorted before delivery to the user. AWS Firebase triggers an event once the files have been uploaded to S3 in order to call the Lambda function that splits the video into 5-minute parts to be encoded into 60 different streams required by Netflix. Using a series of rules and events, the final part of the video is aggregated and deployed.

AWS Lambda is capable of alerting and shutting down instances if unauthorized access is detected as well. Moreover, Netflix can easily pinpoint the cause of an issue when something goes wrong, given that Lambda routinely verifies that the files are accurate, valid, and backed up. 

Read more on how Netflix completed the migration. 

Zalora going serverless

Asia’s largest fashion retailer, Zalora, features a collection of almost 8,000 products and operates in 8 countries of Australasia. Thus, as you can imagine, there are quite a few orders to be processed. Serverless comes into play here. 

Zalora heavily relies on serverless technology to serve millions of orders every single month. 

“We outgrew what the server world offered to us and it was the right time for us to switch over to a provider like AWS”
Karthik Subramanian, CTO @Zalora

The company uses AWS to ensure that its customers have a pleasant experience when shopping on the site. The same applies to the mobile app that also runs on serverless technology.  Using AWS and Lambda, Zalora doesn’t have any problems with the scalability of the number of requests they receive, and Zalora can offer customers faster access to features using a serverless framework. Zalora has also been able to control costs by scaling with AWS. Starting from the smallest SAP HANA-certified instance size 244 GB, Zalora could scale the Amazon Elastic Compute Cloud (Amazon EC2) instances to meet growing customer demands. Zalora’s cloud consumption on Amazon Web Services increased nearly 900 percent in two years.

AWS Lambda and AWS Step Functions, in addition to serverless computing features, are also used by Zalora to automate operational tasks. Therefore, the SAP refresh time has been reduced from five days to two days, and the refreshing quality has been improved. As a full-service, centralized backup system, AWS Backup is available to Zalora. AWS is believed to have increased Zalora’s product delivery time by 3 times.

Figma going serverless

Figma simplifies the process of creating professional designs for people. A design platform based on open standards developed in 2012, Figma competes with Adobe Photoshop in offering an alternative.

With millions of clients and projects all over the world, it goes without saying that it needs an infrastructure that stands out. The use of serverless architecture allows designers, developers, and marketers to focus on design and collaboration rather than managing files. 

Figma also allows multiple people to work simultaneously on one task and project, and of course, that’s caused by the right implementation of serverless technologies. It works in the cloud, without any installation, making it a seamless experience for users. 

Nordstrom going serverless

Nordstrom is a major department store chain based in Seattle, Washington. The company has always been on the front lines of technology innovation. 

Rather than using data-driven applications, they switched to event-driven applications and created an open-source Serverless architecture retail store called Hello Retail as a proof-of-concept. 

Nordstrom created an event-driven app with the help of AWS Lambda. The Hello, Retail! experiment by Nordstrom demonstrates how they use Kinesis and several other AWS services. Serverless, event-based, and based on an immutable, ordered, and distributed ledger, this project is made up entirely of serverless components.

Coca-Cola going serverless

The Coca-Cola Company has been migrating to serverless technology since 2016 and they are still moving everything in the cloud, but since they still have old technologies in use, traditional servers are being used until they can decommission them. The Coca-Cola CEO Michael Connor spoke at the AWS Re-invent conference about a few case studies they did on serverless in which they saw a 65% cost reduction by using it.

Coca-Cola vending machines located around the world are linked to Coca-Cola headquarters through an integrated communication system. 

What Coca-Cola did before going serverless? 

They have about decade-old vending machines. 

When the client purchases a drink, the machine contacts the payment gateway to confirm the purchase, making the API rest call to use the AWS API Gateway, which triggers a lambda response. The transaction will be handled entirely by the AWS Lambda service. In the case of mobile transactions, a fifth step is required, which is a push notification to a user’s phone that submits the information to Android Pay or Apple Pay.

Until 2016, they have been using 6 EC2 T2.Medium machines cost them almost $13k annually to run. Adding up all the costs for all the features they needed, it came to $4,490/year after moving to a serverless framework. 

This roughly means $8,500 savings per one machine per year. With an estimated, whopping 3 million vending machines around the world, this brings more than 25 million dollars in savings. 

The Coca-Cola Company has taken serverless to such a high degree that they have made it so that whenever you have an idea for a project to be considered by the architecture review board, the idea needs to be based on serverless. The others are basically rejected. 

T-Mobile going serverless

Similar to Coca-Cola, T-Mobile has adopted a “serverless first” policy for any new services it develops. In fact, their experiment with AWS serverless architecture resulted in a reorganization of their whole company.

“Jazz and serverless computing on AWS have cut out so many time-consuming development and deployment steps. That’s time we can spend innovating and iterating on the solutions customers want to see. Jazz and serverless computing on AWS are major accelerators in how quickly we can give our customers what they want.”
Satish Malireddi, Principal Cloud Architect, @T-Mobile

In order to work with cloud-native APIs, functions, and websites on serverless, T-Mobile developed Jazz. Test, automation, security, architecture, and integration are just some of T-Mobile’s requirements before deploying applications. By using a reusable code template and an easy intake process, Jazz simplifies these tasks. The developers can innovate more rapidly and provide a better customer experience when they use a serverless framework, as they save a lot of time. The T-Mobile team claims they have also saved money since switching from paying for actual resources to only paying for what is actually used, another great benefit of serverless that each modern business should definitely consider. 

By offering fully customizable templates, admins are able to define new ones easily, and developers can expose them as services. Developers can build serverless applications using Jazz’s rich ecosystem that supports Serverless Framework. 

You can even view it on Github.

T-Mobile uncovered a number of benefits from using AWS serverless technologies for its APIs, microservices, and time- and event-based processing, including smoother scaling, improved resources, reduced patching, and time savings. Increasing flexibility in responding to customer demands was made possible by an even stronger focus on exploration and innovation. 

Over to you

Are those the only companies that benefit from a serverless approach? Definitely not! We are sure that more companies are going to join the list in the future.

How does a business analysis improve the software development process?

Imagine that you have an idea for a digital product, budget for it, and maybe you have chosen a company that performs the software development process for you. You want to start working on it and see the first results. You can’t wait for it! You are convinced that there is nothing that can go wrong. But is it a good idea to start coding your application right away?

Practice shows that even the best-polished ideas may have defects or gaps that could be critical from the end-user and business point of view. The pre-implementation business analysis comes with help here. It is a useful tool that will help you collect information on various areas – on the functional requirements, characteristics of the market to which the product is dedicated, the end-user needs and expectations, the sphere of finance, or market competition. Of course, you cannot forget about the risks, the cost of the project, and the work schedule. It sounds a little like a buckle that holds the whole project together, which is what business analysis is.

The role of business analysis in the software development process

Business analysis should start at the very beginning of the project. Definitely, before the development & UX/UI teams fully jumped into the software development process. However, it doesn’t mean that software developers and UX/UI designers should be omitted. On the contrary, their experience brings great value to the business analysis of a new project. These people have already solved many technical and business problems, and they can handle them at this early stage of a new product. Also, participating in the analysis at this point brings long-term benefits to the project. The whole team – especially UX/UI designer and Project Manager – are crucial roles during this phase. A full understanding of the product idea and its specific requirements will direct the team in the right direction and help to design tailor-made solutions in the future.

A business analyst usually handles business analysis, but sometimes this role is also handled by a Project Manager with a business analysis skillset. This role is a bridge between the client (business part) and the development team (technical part). A business analyst has a challenging task. He has to translate business requirements into functional and, consequently, partly technical requirements.

How to conduct an effective business analysis?

Business analysis is a step towards creating a product that will satisfy your customers and surprise the competition. You can follow the sequence of steps below to perform the analysis.

Interviews with the client

Usually, it is a series of smaller workshops. During those sessions, business analysts or dedicated project managers cover questions about the purpose of the product, user’s expectations, competition, and the functions that the ready solution should have.

To conduct workshops, various tools and methods available on the market may be used, depending on the area you want to explore. However, all of them focus on understanding, vision, product, users, finances, competition, and risk.

Understanding

A common understanding of the experience and strengths of the parties cooperating in the project allows defining the conditions for future cooperation and competence areas. You may be asked, for example, about your industry experience or market research. All of this to better understand your needs.

Sample questions:

Vision

​Defining the vision and the roots of the product idea allows you to define the long-term goal of the product’s functioning on the market and better plan its implementation and development strategy. In addition, understanding the high-level ideas of creating a product will positively influence the understanding of your needs by the team and a better fit.

Sample questions:

Product

This part of the analysis focuses on analyzing the individual functionalities of the product to define the connections and relations between them, focuses on how users will perceive the product, and how the whole idea relates to the vision of the whole product. As a result, you can expect a clear image of your product that your audience would like to see.

Sample questions:

Users

By analyzing the part dedicated for end-users, you can discover what they expect from your product, their needs, and how the product will meet them. It is also important to understand how they will interact with your product which allows the whole team to focus on the critical parts of the product from the user’s point of view.

Sample questions:

Finances

The financial analysis is an opportunity for the entire team to understand the possibilities and financial expectations with which you start the project and will allow you to understand the earning plan on the finished product to design it more effectively.

Sample questions:

Competition

By taking a closer look at the competition operating on the same market will enable you to approach the design of a new solution more efficiently. This helps avoid making similar mistakes as other companies’ solutions which allows you to focus on what is positively perceived by users.

Sample questions:

Risk

Risk-free projects don’t exist – prediction of as many risks as possible and preparation of a plan for risk mitigation in the early stage of the project is the key to success in any project. At this stage, you will be able to understand what challenges you will face with your team while creating a product.

Sample questions:

Technical

A discussion at an early stage of a project implementation focused on the technological possibilities and limitations is as important as analyzing business assumptions. Many technical problems can appear due to the complexity of application features and constraints imposed by the selected technology. By analyzing these parameters, you and the team will know what you face and which elements will require more of your attention.

Sample questions:

Analysis of the collected information

Initially, all the team members, especially the Product Owners, should carefully review the collected information. All inconsistent elements which require details or closer inspection should be pointed out. It is also the time to clarify the elements that raise questions and doubts.

Final team involvement

After analyzing the collected information, the whole team gets involved. Depending on a project in a project can be evolved iOS and Android developers (for mobile applications) or back-end and front-end developers (for web applications). For any project, there is always a PM, UX/UI designer, and tester involved in ensuring the quality and standards of the produced software. Team together reviews the information again to ensure that they can bring value to the final product and create solutions at a satisfactory level of quality. 

Creating an analysis document

Once the team double-checks the collected requirements, a person responsible for the project documentation should double-check and include all the details. This document contains all information obtained from the client about the project. All requirements, expectations, and test results are included in it. Furthermore, the document should be a valid benchmark for the entire team’s activities from the start of software development. 

software development process roadmap
software development process roadmap

Creating the scope of the project – why would software developers be grateful?

Collected requirements with the help of the development team and project manager are reflected in the project’s scope – the scope of work to be performed for the product to be considered finished. The project scope for IT projects is reflected in the project backlog. It is a list of all the tasks necessary to produce a ready-to-use product. 

Keeping in mind the importance of an in-depth description of all the needs, a properly crafted scope of the project could dramatically decrease the development time. Software testers would quickly jump into the project, ensuring that software quality is on edge. Software developers will make fewer mistakes. The need for changes will potentially be drastically reduced, positively impacting the project budget.

Software development life cycle – how to schedule the whole analysis

This step includes the estimation of working time and the necessary budget and setting the criteria for the acceptance of the system by the client. Then, graphically, the project’s scope can be overlaid on the timeline in a software development process roadmap.

At the end of this process appears a set of requirements necessary for the implementation of your application. At this point, it is essential to verify and validate requirements again. Therefore, the entire team focuses on monitoring the appropriate quality of the conditions. According to the best standards, the requirements must be consistent – as flawless as possible, technically feasible, and testable. If these criteria are not met, they will soon require programming improvement, leading to additional time, budget, and resources investment.

When sending an inquiry, the focus is usually on the solution, while the software development process is a highly complex set of tasks. Without being aware of the flow of such a process and trying to predict possible complications, you risk additional costs and possible extension of the implementation time, which is very valuable.

The pre-implementation business analysis brings several benefits:

The benefits of business analysis in the software development process
The benefits of business analysis in the software development process

Summary

Is it possible to implement an IT project without pre-implementation business analysis? Yes, the current market proves that it is possible but challenging due to the risks that increase with the project’s scope. In the case of large and complex projects, a pre-implementation analysis is a necessity and standard. With simpler ones, IT expert advice and close cooperation between companies may be enough. It should be noted, however, that this will not replace a professionally conducted analysis. The question is, is it worth counting on luck in this matter?

Serverless architecture with AWS explained

There is no better way to explain the boom for serverless architecture and cloud computing than to quote Gartner’s words:

“Serverless architectures enable developers to focus on what they should be doing — writing code and optimizing application design — making way for business agility”. 

A serverless architecture (or serverless computing, in other words) is a hot technology with a catchy yet slightly misleading name. Though it may imply a completely server-free approach, serverless services and applications de facto run on servers. The magic beneath is that organizations and app creators don’t have to worry about managing the physical servers that host their codes.

How does serverless architecture work, what are its benefits, when to use it, and what are the most popular vendors? Let’s consider the answers in this short guide.

serverless architecture benefits
Serverless architecture benefits

What is serverless architecture? 

Long story short, it is a model of cloud services in which the developer focuses solely on creating business logic and not the infrastructure on which it is to be executed. As mentioned before, physical servers do actually exist. The point is that when creating a serverless solution, you don’t have to hire a highly specialized DevOps engineer responsible for setting up the machines, configuring networks, or updating operating systems. This leads to a significant cost saving, as DevOps are currently almost the most high-paid specialists on the market.

The whole responsibility of server management is handed over to serverless service providers, with Amazon, Microsoft, and Google being the Big Three. At the same time, serverless architecture is a different approach to software development. App builders combine various services (building blocks) that are available in the public cloud. This way, code written by developers is run using only precisely the number of resources that are necessary to support them. 

When a predefined event occurs, the serverless platform runs the task. Thus, the developers or platform owners don’t have to predict how many times the function or event will be used – they simply pay a minimal fee each time the core is run. 

This approach delivers highly scalable solutions with improved app performance at optimized costs. 

To put this more straightforwardly, it’s usually a cheaper solution. 

The whole system relies on cloud vendors and we can distinguish between two models: 

When to use a serverless architecture? 

Serverless architecture is an excellent solution for online business needs. It allows quick scaling, faster and cheaper software development, as well as improved performance. All of these are great news to business-oriented IT professionals because all of the resources saved on back-end development can be furtherly invested in future development. 

Including serverless architecture in your business may benefit your goals, especially if you’re planning your app to:

About Amazon Web Services (AWS)

AWS is the largest and most popular public cloud in the World. Currently, it includes over 160 services from an extensive range. Examples include computing power, storage, artificial intelligence, blockchain, Internet of Things, Augmented Reality, and even the Amazon Ground Station service for satellites.

What made AWS so famous? Amazon claims a couple of possible reasons:

advantages of the Amazon Web Services
advantages of the Amazon Web Services

Six reasons to go serverless

Although serverless architecture is not a magic solution for any organization’s problems, it does offer several substantial advantages. 

A significant increase in go-to-market speed

Let’s state the obvious: less time spent on development, deployment, and other operations mean that your users will be able to enjoy your app much sooner. FaaS functions are a lot easier and faster to deploy than whole dedicated servers.

Cutting an app’s operational costs 

When deciding on the serverless approach, you outsource some part of the development and maintenance to a third-party provider. Then, for a fee, they manage the servers and databases of thousands of companies, with which you share servers and hardware, etc. This sharing economy solution appears to be much cheaper and more efficient when it comes to the time your developers need to maintain your application. Plus, you pay only for what is used.

Reduced development costs

The serverless BaaS approach comes down to sharing whole application components with other companies that use the exact same logic in their products. There’s no need to spend more time and money on reinventing the wheel. Serverless allows you to utilize ready-to-use back-end mechanisms that have been polished to perfection by many developers and are proven in battle. 

Reduced scaling costs

The Feature-as-a-Service model allows your application to scale automatically, growing together with your customer base. The process is completely taken care of by a provider and, importantly, you can start small then let the server costs grow proportionally to your business development. After all, you only pay for the capacity that you need at any given moment. 

Easier operation management

Without any back-end infrastructure to worry about (as this is entirely the vendor’s responsibility), you don’t even have to think about the infrastructure maintenance tasks that would keep you up at night. Neither, software updates, security, nor any system administration are your problems any longer.

More efficient capacity management

With the old approach, you would have to make decisions regarding the capacity you might need for a while, based on, at best, predictions by your team. Unfortunately, this often means underestimating or overestimating. The former creates a problem for your users and potential server crashing issues. The latter means not utilizing the total capacity that you are paying for. In both cases, you lose money. Fortunately, such problems won’t occur with serverless architecture. 

Top serverless alternatives to Amazon Web Services

Although AWS is the reigning king of serverless solutions, there are plenty of others you can choose from. Let’s consider a few of the most frequently used ones.

Google Cloud Platform

Google Cloud’s serverless solution allows developers to build applications using containers, making the dev experience easier. Google Cloud Platform is perfect for apps that use Big Data, advanced analytics, and machine learning. One of its most significant advantages is fast response times. 

Microsoft Azure Serverless

Azure holds the market tightly, especially when it comes to enterprise customers – most of which utilize Windows and Microsoft software. So when they entered the cloud market, Microsoft simply took its old on-premises software like Windows Server, Office, Sharepoint, .Net, and others, then moved them to the cloud. 

Qinling

Qinling is a FaaS for OpenStack. The main goal of this project was to create a platform that would support serverless functions (like AWS Lambda), function package storage solutions (such as local, Swift, or S3), and container management platforms (Kubernetes, for example).

Serverless frameworks

Anyone who enters the world of serverless architecture must learn about serverless frameworks. Building serverless platforms demand a tool for developing and deploying, which is what serverless frameworks are for. There are a couple of frameworks for building serverless apps including Apex, Gordon, or ClaudiaJS for Javascript; Sparta for Golang; or the most universal Serverless Framework that works well for Javascript, Golang, and Python. 

Serverless’s users praise its easy learning curve and rapid development, which is reflected in the numbers – over 36.6K stars on GitHub and 15M downloads at the time of writing (with numbers still growing!).

Is the future serverless? 

According to a survey conducted by O’Reilly on 1.5K programmers, 40% of them have faced serverless architecture in their companies.

In 2020, a DataDog survey showed us that over 50% of AWS users are now using the serverless AWS Lambda Function as a Service (FaaS). 

The global forecast for 2021 indicates that:

The Function-as-a-Service (FaaS) market size is estimated to grow from USD 1.88 billion in 2016 to USD 7.72 billion by 2021, at an estimated Compound Annual Growth Rate (CAGR) of 32.7%.”

And those numbers shouldn’t shock anyone. We’re all surrounded by software daily, and the market is getting more competitive than ever before. So software developers, investors, Venture Capitals, and even business owners need solutions to make releasing app iterations faster and cheaper. 

Serverless architecture seems to be the perfect solution to that, with a vibrant community constantly testing, building, and improving existing solutions as well as creating new ones. 

Summing up

Here at CrustLab, we sincerely believe that the future is serverless. It makes creating software more affordable and inclusive, which boosts creativity and the quality of the market. In addition, optimizing development, deployment, and maintenance processes as well as conveying part of the responsibility to third-party solutions lowers costs both financially and environmentally (shared-economy solutions are proven to reduce the amount of energy required to maintain servers).

We’re not saying that this solution comes with no limitations, and it’s not the way for everyone to go. But if you think your business could benefit from implementing a FaaS or a BaaS model or have any other questions, please contact our team.

The Product Design Process – how to REALLY design a web or a mobile application

Some apps you use more, others less. So what does it depend on? As a user, you expect ease of use and functionalities that will make your life easier. Things get tricky when you are the one who is responsible for a digital product.  And here comes the importance of the product design process. 

It turns out that meeting customers’ expectations is not as easy as it may seem. It requires thorough research and preparation, the so-called product design process.

The success of a product depends on it. The problem is that even UX designers don’t have a clear guide for this process. Depending on the project or approach that a company takes, the product design process may vary.
It’s best to entrust the process to professionals since there is no one golden rule, yet there are so many factors involved.

However, it’s essential to understand it before you begin fully. In a nutshell, we want to show you what the product design process looks like in practice. What are its main elements, and which tools might be helpful during its development?

Let’s learn everything you need to know about the product design process.

What is the product design process?

The product design process can be described as the whole creation of a digital product from strategy, through conceptual work, to implementation. It’s the process of planning both the product’s visual attractiveness and its user flow.

The product design process doesn’t apply only to UX/UI design. It gives you a big picture of the whole project because it considers the business perspective and its goals. It’s a combination of three elements – management, engineering, and graphics.

The final result always depends on mutual work combining various skills  – graphic design, UX/UI design, research, business analysis, development, and marketing or testing, just to name a few.

Though it is complex, it’s worth the effort. Through the product design process, you can tailor the product to meet the customers’ needs and boost their satisfaction.

And that’s just the beginning of its advantages.

What are the goals of the product design process?

In many cases, the values that are important to customers do not align with business expectations, or it turns out that developers do not understand the real needs of their users.

So, the main goal of the product design process is to find the balance between user needs and business value.

In this way, you gain a broader perspective to understand all stakeholders better and develop a product that has excellent functionality, an attractive design and is profitable.

The ideal product design process helps you to:

It should serve as a guidance system for the entire business, like a map that helps determine the best course of action.

The benefits of the product design process
The benefits of the product design process

How does the product design process work in practice?

Once you have a grasp of the theory, it’s time to put it into practice.

It would be great if every product design process looked the same. Unfortunately, that isn’t possible. As we said before, even experts can’t predict the exact course of the process – it simply provides a roadmap for the steps ahead, along with tips for skipping or extending them. There are many conditional variables in the process, and, unlike in software development (writing code), the knowledge of the decision-maker and the results of interviews or research are always essential aspects.

Many factors go into the process – the budget, the UX project scope, or even the time frame and size of the business, just to name a few.

Even so, we will share with you our sample product design process framework. It should help you imagine how one might appear in your business. 

Let’s look at the most critical steps, standard design methods, and a few tools that can help you streamline the whole process.

Before you start: product business analysis? 

Even being the best at something doesn’t guarantee market share. If you want to turn your idea into huge profits, you need a detailed plan. That’s where product business analysis comes into play.

A product business analysis begins guides and closes the design process. It helps you determine the costs involved and forecast the profits you might make from the product. It combines the forces of a business analyst and UX designer.

The aim of business analysis is to clarify the product’s technical requirements, decrease development costs, and identify the target audience and their needs. It’s also essential after the product’s implementation for testing, identifying problems, and making improvements.

Product design process elements and who’s involved there

We will now explain the stages of the process and related questions. 

Product design process elements
Product design process elements

Understanding

Is your solution a product-market fit? The key to a successful product is understanding the people involved in the design process and all other aspects of the project – its goals and different perspectives. That’s why the biggest role of designers is to identify users’ needs and align them with the business goals.

Vision

You must have a clear vision of your product – an outline of its appearance and the problems it will solve. This is also the time to communicate your expectations, what precisely you want for your business, and how long the whole design process should take.

Once you’ve clarified these issues, you need to transfer your vision into the digital space. At this stage, the UX designers create a prototype for your product and, in collaboration with the developers and designers, turn your vision into a reality.

Product / Function

What features will your product offer? It is crucial to be extremely specific about your budget, as it directly impacts the complexity of your product.

Find out which functions are the most important and which you should focus on. Remember that people love easy solutions. The easier the product is to use, the more likely it is to be a success. Look at the most popular tools – they are super simple to use.

But you don’t have to worry – UX designers are the people who will make sure that your users fully understand your product.

Users / Personas

Users are the key elements of the product design process. That is why you should make sure you carry out thorough research before you even start thinking about designing the product.

Conduct surveys and interviews to get to know your target audience. As part of your user research, you also need to understand who you’re building the product for. It will be helpful to create user personas to help put yourself in your users’ shoes and start to look at the product from their perspective.

Users are often provided and presented by the decision-makers, but they do not originate from them. Personas, on the other hand, are the result of several steps, research, and studies designed to narrow down the perfect target group.

Competition

When carrying out competitive research, you should look mostly at three things – product offering, the user experience, and visual design. Take inspiration from your competitors and analyze what their good and bad sides are.

Researching the competition will also help you understand their customers’ needs better – look at what their users say about your competitors’ solutions. Maybe there is a gap in the market that no other company has filled, or maybe their users complain about certain elements. Then, ensure that you don’t repeat the same mistakes but instead find your Unique Selling Proposition (USP). 

Risks

You have to always take into account the risks that are involved in any project. This way, you will be able to understand the market better, and as a result, be aware of the issues that might arise during product development.

What are the risks involved with creating a particular product? The most common ones are missing cost or quality targets, overrunning the schedule, creating a product that will not be profitable or just one that will not attract users. 

Managers and analysts must constantly monitor and analyze the project to mitigate the risks that might occur. 

Product design methodologies

There are different types of frameworks that companies use to design products. Even though each of them is different, they all contribute to validating ideas, solving challenges, and aligning the product vision with the goals and objectives. When it comes to product design, what are the most common methodologies?

Every technique has its own set of benefits and drawbacks based on your own preferences, experience, and circumstances.

Product design methodologies
Product design methodologies

Agile UX

Using this approach, you can launch new products quickly and efficiently. It’s performed in a collaborative environment and with cross-functional and self-organized teams. This method focuses more on „doing” than on paperwork, which speeds up the decision-making process significantly.

The agile method of product development divides the process into multiple small iterations; at the end of each, you will receive the output from the designers. Delivering a small feature after each iteration allows you to give feedback and improve your product accordingly.

As a result, you’re involved in the entire process and its progress is transparent for you. What’s more, you can react quickly to all problems and make necessary changes with fewer consequences to the budget.

Design Sprint

“A design sprint is a five-day process for answering critical business questions through design, prototyping, and testing ideas with the customers”.
Google

This method was used internally at Google for various products before becoming an integral part of Google Ventures. The initial development process consists of five phases: understand, diverge, decide, prototype, and validate. As a result, the first outcome is given in about three to four days, proving the process to be intensive and results-orientated.

A team consisting of a small number of designers, developers, marketers, and customers develops the project and looks for the best solutions to deliver a product that best meets the expectations of future users and customers.

What are its main advantages? Using this fast-forward approach, you can see how your finished product will look in advance before you make any costly commitments. You will learn if an idea is worth pursuing and, what’s best, you can cut out endless debates and compress months of work into a single week.

Product Canvas

Product Canvas combines Agile methodologies with UX principles. It helps build products that have a great user experience while focusing on future development. The purpose of Product Canvas is to validate the product, not to determine whether or not it should be developed.

It’s more of a tool than a methodology – it conveys what your product is and how it’s positioned strategically. It contains various UX artifacts – user stories with personas, scenarios, storyboards, or design sketches.

To sum up

Having learned a lot about the product design process, let’s summarize all of the most critical points:

If you have any further questions or need help with product design, feel free to reach out to us and we’ll discuss how we can help. We are here to assist you.

What is React.js and how can that technology be used to build a custom web application?

Anyone that is at least slightly interested in the web development world must have heard about React.js. It’s a powerful and popular front-end JavaScript library (not framework!). React is used to create many everyday use applications including Netflix, Facebook, Instagram, Airbnb, and Dropbox. 

What’s more, according to research by the State of JS, for a good couple of years it has held a strong position among other technologies in terms of developers’ satisfaction, awareness, interest, and usage.

And no wonder, since it lets entrepreneurs build custom web apps with beautiful interfaces and a remarkable User Experience. Compared to other technologies such as Angular.js, React brings excellent results when it comes to app performance and development speed (hence, development costs). 

With that in mind, let’s dive into the story that will answer your React-related questions, such as:

What is React.js?

The React library was created by Facebook developers in response to an issue that Facebook developers were facing. They were on the lookout for a way to build dynamic, interactive, and visually appealing interfaces with no loss in efficiency or performance. And that’s how React.js was born. 

Originally intended for internal projects, it was launched as open-source in 2013 and has taken the Javascript community by storm. It is still maintained by Facebook and now has millions of developers and hundreds of contributors. 

React.js is an efficient and elastic JavaScript library for building user interfaces. It allows engineers to quickly build complex UIs for web and mobile applications. Its approach to building a User Interface is component-based, meaning that a developer creates separate and isolated component pieces of code with their own properties and functions, making the whole code easier to debug.

This structure guarantees a number of business-friendly benefits. Here are a few of them:

Except for the component structure, the uniqueness of React lies in two features – the usage of a JSX language and a Virtual DOM. Those who are interested in how it works will find a short, explanatory React.js Dictionary at the end of this article.

About the benefits of React.js

Vibrant open-source community

By choosing React.js, you get access to thousands of passionate React developers who keep contributing to its growth in the package. As one of the most popular open-source technologies, it has over 2M repositories on Github. However, React is now considered an established and stable technology. The community still creates new frameworks and tools, such as  Storybook and React Bootstrap. They also provide support for anyone who is new in the React world. Plus, it has the giant of Facebook standing beneath it.

It will save you time and money

There are thousands of reusable components available as open-source libraries. Developers can put them in various project slots, working more efficiently and not ‘reinventing the wheel’. This approach pushes much higher code quality while significantly decreasing the amount of time needed to build apps (therefore saving developers’ time and reducing project costs).

Better performance

React was created to solve the issue of lousy performance in the context of more complex applications. Long story short, it worked. Thanks to Virtual DOM, given its number of features and utility, it scores excellently when it comes to web performance, guaranteeing lightning-fast apps with low loading times.

Great UX and UI

React.js makes it easy to create dynamic web applications because it guarantees more functionalities with less coding, which is a direct benefit of its component structure. Virtual DOM offers a unique and effective way of updating an app’s views by only updating single components when changes are detected. This allows for the creation of advanced apps with interactive User Interfaces. The vast majority of components have been previously coded and placed in the Github repository.

One-way data flow

In React.js, how a user sees a component depends on its state. Any of their actions (such as clicking on a button or filling up a field) can change the component’s state. This change is transmitted to its view and, in sequence, to the inheriting components. 

This approach makes the application more efficient (as the relationship between particular elements of the interface is clearly defined), less prone to errors, and easier to debug (as a developer has greater control over the data flow). One-way data flow also makes it easy to analyze an app’s performance, since any slow-downs can be detected in the blink of an eye as the changes to a component affect only that component itself.

SEO-friendly

Crucial as it is, not many JavaScript frameworks deal well with search engine optimization. React.js drastically improves page load speeds, one of the primary criteria for the Google index algorithm. In addition, apps built with React are lightweight, offer server-side rendering, and can load in the blink of an eye. 

The benefits of React.js
The benefits of React.js

Cross-platform development with React Native

React Native is a framework created by Facebook to speed up the process of mobile app development. Previously written React code allows you to simultaneously build apps for both Android and iOS platforms. As it uses bridges to translate JavaScript into native components, code is used to build both iOS and Android native apps once it has been written.

This is perfect if you need to build an uncomplicated mobile app without many resources. The more complex the app’s features are, the more native code snippets need to be written. The code created for a web application may be reused for mobile ones – developers build a reusable library that can be leveraged in both web and mobile apps. 

Is it possible to create a server-side rendered app with React? 

First, we need to clarify the main differences between client-side rendering and server-side rendering.

In client-side rendering, a browser downloads a basic HTML web page then renders the JS parts and fills them with content. Server-side rendering means the React components are rendered directly on the server, delivering HTML content. 

Combining it into a web application that can be rendered on multiple platforms simultaneously, we get an isomorphic application that renders on both the server and the client (web browser) sides. Creating such an application, developers build one common component tree, which is rendered on a server after the request. This results in sending an HTML code with all the data to the browser, which later loads the JavaScript in the client version of a React application. 

There are two main advantages of such an approach:

Search engines don’t read JavaScript. If the content is not in HTML, they see it as a blank page, no matter how helpful it is. 

In server-side rendered applications, their performance depends only on the server’s resources and the capabilities of the users’ network. And it’s been said multiple times that improving the speed of an app improves the overall user experience drastically. 

When should you use React for web development?

React has proven its capabilities when building both Custom Web Applications (just take a look at Netflix, Instagram, PayPal, and many more) and simple single-page apps (SPAs). The main difference between a single-page application and a traditional multi-page app is that navigating a SPA does not require moving to an entirely new page. Instead, views load within the same page. When having a proper routing configured, single-page apps tend to be even faster and better optimized.

Getting back to the types of apps you can build with React.js… Well, there are a lot. 

Social Networks

Single Page App - Pinterest
Single Page App – Pinterest

Why does it work so well?

Examples:

Video Platforms

Video Platform - Netflix
Video Platform – Netflix

Why does it work so well?

Examples:

Sharing economy platforms

Shared economy platform - AirBNB
Shared economy platform – AirBNB

Why does it work so well?

Examples:

SaaS platforms

SaaS platform - Invision
SaaS platform – Invision

Why does it work so well?

Examples:

E-commerce platforms

Ecommerce platform - Shopify
Ecommerce platform – Shopify

Why does it work so well?

Examples:

Communication platforms

Communication platform - Skype
Communication platform – Skype

Why does it work so well?

Examples:

What is a JSX language?

HTML files are the core of every basic website. They are read by web browsers and translated to appear on your devices as web pages with the desired UX and UI. To make it possible, browsers create a Document Object Model (DOM) – a structure of how the particular components are arranged on the website. 

Web developers may add dynamic content to the web pages by adjusting the DOM with programming languages like JavaScript and additional extensions. 

JSX (JavaScript eXtension) is a React extension for JavaScript that gives its users the opportunity to change the DOM with ready-to-use components written in simple HTML code. It is known to save them lots of time and significantly improve site performance. 

Virtual DOM in React.js

When not using JSX to modify the DOM, a website will probably go with HTML. And for basic, static websites, that is absolutely fine. However, things get tricky when you host a complex, dynamic website that requires lots of user interaction. In that case, the entire DOM has to reload every time a user clicks on a button or fills in some field(s) on a form.

In a scenario when a developer uses JSX to update the DOM of their website, React.js creates the Virtual DOM (VDOM). It’s a virtual image of a UI that is saved in the memory and synchronized with the real DOM by a library (such as ReactDOM). Using React’s declarative API, you can notify the DOM about which components need to be selectively refreshed and which ones should stay the same. This way, the page load speed improves, computer and internet memory usage decreases, and this results in a faster, more user-friendly site. 

Wrapping up

React.js is a powerful JS library that brings many benefits such as component reusability, Virtual DOM, performance, and stability, unidirectional data flow, and many others. Although it is not the perfect solution for any case, it has helped many great businesses like Skype, Instagram, and Shopify to achieve their successes.

It’s up to you to decide which technologies will take part in your own success – we hope this article has imparted some wisdom to you. Feel free to contact us if you have any doubts about React or picking the right technology stack for your project!

How can your healthcare mobile app benefit from push notifications?

Healthcare mobile app can be a revolution in the way we track our efforts in the healthcare field and how we take care of our health.

Consequently, it is no wonder that more and more developers and businesses want to invest in this lucrative segment of mobile app development

You need to stand out from the crowd of healthcare mobile applications not only by attracting users but also by keeping them engaged. 

Here’s where push notifications come in handy – yet are often overlooked. If your mobile app wants to retain and drive more engagement, then you should incorporate push notifications into a marketing strategy for your healthcare mobile app. It has an even greater impact on healthcare because users are expected to stay engaged all the time. Since their setup is simple and the cost is minimal, there is no reason not to use them. 

We are eager to convince you why nearly all mobile apps should send push notifications. And in this particular article, we will outline how healthcare mobile apps can leverage push notifications.  

Benefits of push notifications in healthcare mobile app

Navigated user retention

User retention is supported by push notifications. Due to their cyclical delivery as well as triggering on a variety of activities (or not), they are one of your users’ most intensive communication channels. Mobile app users disregard some communication channels, but push notifications are quite effective since they are activated on their screens.

As they appear on a screen and can be easily pushed and familiarized with, they are a preferred means of communication for many. 

In healthcare, push notifications can be used to retain mobile and progressive web apps users and remind them that the app is waiting for them to move. 

For example, a fitness app might prompt (via push notifications) users to log their exercises in-app. 

Constant traffic booster

Your app may also generate more traffic thanks to push notifications. Many users enter your healthcare app to take action after being prompted to do so instead of just reading a push notification. Push notifications, when configured and compiled correctly, can be a real gem for mobile app traffic and in-app actions.

For example, if your healthcare mobile app asks users via push notifications to log in to see their daily rewards, the likelihood is that they will.

Taking action on each notification

With a swipe of their finger, users can read more about a particular push notification or dismiss it as quickly as possible. This proves that push notifications are one of the most interactive forms of communication.

For example, a healthcare mobile app can inform the user about automatic updates that can be performed in a single click. Such push notifications can e.g. ask for accepting or declining of rescheduling an appointment. After clicking one of the buttons, the selected action is sent to the app.

Cyclical info

Push notifications can be used to send users cyclical information over a specific period of time. This info can concern their actual app usage or recent activities, etc.  

For example, your healthcare mobile app can send notifications on your performance (Last week, you’ve burnt 650 calories thanks to XYZ workouts. It increased by 10%, compared to the previous week. Well done!). 

Constant updates and news

To gain user consent on receiving notifications, you need to invest time and resources into onboarding and explaining why they must receive them. Many of your users consider push notifications nothing more than a nuisance since they receive hundreds of them a day. This is why it is necessary to configure onboarding in a way that each user is properly informed of when, why, and how many notifications are going to be sent. This is the only way to ensure users acknowledge and understand the benefits of receiving such push notifications, and so will be content to receive them. Obviously, only if you don’t spam your users to death and deliver what you promise. 

Your healthcare mobile app will be more likely to be used by them when push notifications are sent. Then you can use push notifications to reach out to your audience and send them information about discounts, new features, and alerts. 

For example, your healthcare mobile app can send push notifications when there is a planned outage. 

Reach notifications for better engagement

If you add reach push notifications to your healthcare mobile app, you can drive even higher engagement with gifs, instant responses, and other interactive features. In the sea of notifications, push notifications do not need to look like regular messages; instead, they can be customized to catch the attention of your users.

For example, an app that encourages people to try out the new workout can send a GIF with a preview of it, as well as a swipe recommendation.

Benefits of push notifications in healthcare mobile app
Benefits of push notifications in healthcare mobile app

Most common push notifications’ features and use cases for healthcare mobile app

Hospitals and doctors

Hospital management and doctors’ workflow can benefit from push notifications in quite a few situations.

Patients’ monitoring

Patients can be monitored constantly, 24 hours a day, 7 days a week, without the necessity of physical contact with doctors, using healthcare mobile apps. As this solution minimizes logistical overhead and allows for full information to be provided instantly, it is convenient for both doctors and patients. 

The information is updated regularly and at a glance, as it requires only a click or a swipe, and can be triggered by many different actions. If there are any anomalies, both parties can contact each other or doctors can get alerted and act. 

Equipment management

Push notifications can also find their use in the management of resources in healthcare. The daily monitoring of resources made possible by push notifications enables managers to be notified when some of the resources are running low. We could be talking about beds in a clinic, medicine, or any other kind of equipment – for example, face masks or gloves. Equipment anomalies can also be detected using push notifications for equipment management.  

Patient management

In terms of communication with patients, push notifications can do so much more than just monitor patients. The push notifications feature can be used to send reminders about upcoming appointments or changes to them. In addition, they may be used for sending interesting and relevant content, such as instructions on how to care for yourself after surgery or what preventive measures should be taken. Also included in this could be some kind of announcement of new types of treatment at a given medical facility. 

Healthcare business

The healthcare industry has a lot of potential uses for push notifications in healthcare mobile apps as well.

All types of reminders

It can help users cultivate self-discipline and ensure they utilize an app effectively by sending them push notifications. Using push notifications as reminders is highly effective because they are quick, direct, and hard to overlook. Healthcare mobile apps use them to remind patients about upcoming or undergoing treatments, exercises, or diets – just to name a few examples.

Cross-selling and up-selling

Cross-selling can also be accomplished through push notifications. Your healthcare mobile app can quickly upsell your services by sending push notifications offering new services, appointments, or consultancy hours. When a particular user already uses a free workout plan, a push notification can offer them a special offer on a customized workout plan, for example.

Announcing offers and discounts

“Get your tickets soon, they are selling out fast!”

It is possible to use push notifications to send offers and discounts and reminders that they are about to expire. Users may be prompted to take action and convert as a result. 

Patients

Patients can also benefit from push notifications as they can be of great help to them.

All-round notifications

A particular patient can be informed about their condition, spikes, and anomalies in their health by push notifications, especially when they are connected to healthcare wearables. Push notifications can be sent for things such as too high blood pressure, pulse monitoring, or blood glucose meter readings on an ongoing basis, just to mention a few examples. 

Various reminders 

Patients may also be reminded of routines with push notifications. Reminding patients to take or purchase their medications is certainly beneficial to many. Push notifications can also be connected to the calendar and send reminders of doctor’s appointments. For broader healthcare and wellness, users can receive reminders about training and exercise (e.g. at a specific time).

Constant monitoring

Also, push notifications allow you to monitor your health conditions and alert and notify the right people if an attack occurs or if you collapse. This is especially important not just for the people who need medical treatment, but for their families, too. Keeping them in constant contact is possible with push notifications.

Constant monitoring makes treatment and recovery better and more effective. 

Push notifications use cases for healthcare mobile app
Push notifications use cases for healthcare mobile app

Types of push notifications

A push notification is a message the user sees without having to open the app. These messages look like SMS messages, are displayed on the lock screen, and are sent to users who are not currently using the app.

Often, these are confused with in-app notifications. Although in-app messages are ones the user receives once they have opened the application, these are messages given to them in the application itself. 

In-app notifications appear only while someone is actively using the app. Push notifications appear anytime. 

A third type might also be recognized here: an IoT push notification delivered directly to a wearable device using Bluetooth (e.g. a notification sent across to a particular smartwatch). 

When can push notifications be sent?

Well, here is where we could recognize a lot of use cases, but we’ll provide you with examples of just a few of them. 

What to remember when launching push notifications in your healthcare mobile app

Development isn’t all: engagement is what matters

To ensure your push notifications are successful, you should not only invest in their development but also promote and cultivate engagement. Be sure your healthcare mobile app sends push notifications that are as specific and personalized as possible. Moreover, adjust the time and triggers that contribute to their delivery. That mix will yield the best results: people who not only receive push notifications but also actively engage with them. That’s what you want, isn’t it? 

You should also be crystal clear when it comes to communicating value. In the sea of notifications and messages, it’s not that easy to persuade your users to get another batch of notifications their way. Explain the benefits of push notifications („Always stay up to date on the latest diet plans!”) and make sure you are not bombarding your users with them. 

Provider versus developer

A wide variety of providers are available for you to use for building push notifications. 

However, you should be aware that ready-to-use solutions, although they appear cost-effective, may also present some limitations. Here, we’re talking about usage, message lengths, capacities, or personalization features. 

In many cases, using a software development company to create a healthcare app with push notifications as part of an ecosystem will be more beneficial. 

Assess the risk

The benefits of push notifications are numerous, but there are also risks and challenges associated with it. Before you begin creating push notifications, make sure you assess them. Additionally, you should familiarize yourself with the guidelines of various app stores (for example, Apple App Store) and make sure they align with your business goals. There may be circumstances where you are not allowed or limited to use push notifications in the way you wish. 

This is how we do it

We can highlight our project for PelviFly as an example of our experience with healthcare mobile apps. Notifications were also one of the features we managed to integrate into the app.

The exercising women are kept informed about the progress or abnormalities during the training sessions. The coach may also send such notifications.  

PelviFly healthcare mobile app
PelviFly healthcare mobile app

Read more in our healthcare mobile app case study

Over to you

It is easy to see how push notifications in healthcare can be extremely beneficial to all parties involved. Using this effective communication channel, the healthcare industry can stay connected with clients. Such an app can provide a better and more personalized experience for clients, users, and patients, resulting in greater revenue and better treatment. It’s a win-win situation! 

We are more than happy to assist you with the development of your own healthcare mobile app. With the launch of PelviFly, we have quite a few other examples under our belts. Let’s chat!

iOS mobile app development – an overview of the most important changes of Apple Guidelines

We live in a wired age during which mobile apps have transformed the world, made life easier for everyone, and contributed to the growth of many businesses. As one of the major mobile app marketplaces, the App Store has grown to be an ecosystem that hosts millions of developers and over a billion users. However, it can be challenging to submit a mobile app to the App Store, especially with ever-changing guidelines. Today, our goal is to introduce them to you and explain their role in modern business and mobile app development.

What are Apple Guidelines?

Mobile apps and games in the App Store have been carefully challenged by Apple to be safe, trustworthy, easy to use, and constantly improved in terms of their quality and usability. Apple’s priority is ensuring its customers feel confident downloading new applications. Furthermore, the App Store provides a source of income to developers and app makers.

The guidelines provided by Apple allow developers to create top-notch apps while maintaining performance. Five categories are covered by the guidelines, and all apps on the App Store must comply with them. In addition, they need to protect devices against threats and malware and keep their users’ privacy protected. This last point deserves special attention because privacy and security of users’ data have been Apple’s top priority for years now.

Why do they keep changing?

Apple regularly announces changes and additional clarifications to the app evaluation process document prior to its release. New legal and marketing regulations, as well as events in the industry and around the world, force Apple to adjust all processes related to the App Store.

The most crucial business updates in Apple Guidelines (update 7.06.2021)

This June’s updates are intended to support new features in the next OS release, reinforce security, and streamline the approval of apps. On the 7th of June not only were the App Store Review Guidelines updated though, but also the Program License Agreement, Schedules 1, 2, and 3, plus the Apple Developer Agreement. 

Apple App Store
Apple App Store

Below, we’ve highlighted some of the major changes to Apple Guidelines that have affected mobile businesses the most.

New guidelines for Creator Content

Creator apps should share the age rating of the highest age-rated creator content available in the app and communicate to users which content requires additional purchases. 

What does this mean for businesses?

Creator apps are those whose content is not only provided by its developers, but also by its users – the so-called “creators” in this instance.  They create a streamlined experience for customers to interact with a wide range of content from creators. They provide tools and programs for non-developer creators to share, monetize, and author user-created content. Content like this must not alter the core functionality of native applications but instead should complement the content provided by developers. As long as they do not affect guidelines, App Review treats any content – video, audio, games, etc. – as UGC. 

For full clarity, creator apps should clearly state the age rating and disclose any additional purchases that may be required. As a result, all data flowing through and produced by apps is more clear, consistent, and transparent.

Anything in a particular mobile app that requires an additional subscription or purchase (features, resources, extra add-ons, etc.) must be communicated right away with all of the information regarding the renewal. 

Misleading marketing is more strictly prohibited

Whether inside or outside the App Store, the use of misleading marketing is grounds to remove an app from the App Store and Apple Developer Program. 

What does this mean for businesses?

In the past, false or misleading advertising in-app or in other apps/places may have led to the rejection of the submission and forced the required changes to be made in order for it to be approved in the App Store. 

That has now changed.

A misleading marketing campaign, such as offering a service or content that is not actually offered or setting a false price for the app will result in it being removed from the App Store and your developer account being terminated. 

Businesses and developers have been adversely affected by this change since apps can now be removed from the App Store for such behavior (especially if it is repeated). Moreover, businesses can be permanently removed from the Apple Developer Program, preventing them from reapplying with an app and limiting their opportunities to submit others. The result will be that they lose access to a store that makes up 45% of mobile app marketplaces.

How to prevent this? Ensure that your app’s functionality is easily understood by its end-users and conduct an App Review; hidden, dormant, or undocumented features shouldn’t be used in it. Marketing should avoid misleading communication and sharing of false claims.

Creating a trustworthy ecosystem is the focus of the App Store.

Digital gift cards are limited to in-app purchases

Digital gift cards, certificates, vouchers, and coupons that can be redeemed for digital goods or services can only be sold in your app using in-app purchases. Physical gift cards that are sold within an app and then mailed to customers may use payment methods other than in-app purchases.

Updates to Apple’s guidelines bring new rewards for redeeming digital gift cards. From now on, digital gift cards, vouchers, and coupons can be only sold using in-app purchases. Selling them out of an app submitted to the App Store is against the guidelines. 

What does this mean for businesses?

For Apple, the fight isn’t just about transparency and clarity. As they receive a commission fee (between 15 and 30%) from every purchase made through their app, it’s only natural that they want to keep payments within apps. Since digital products can only be sold via in-app purchases, businesses may need to factor in Apple’s commission fees when calculating costs. 

Connected subscriptions and avoiding double payments

Cellular carrier apps can include music and video subscriptions in pre-defined bundles attached to data plans

To clarify that carrier apps can also include other subscription types, Apple has expanded the guidelines that allow carriers to package music and video subscriptions into pre-defined bundles attached to data plans. That is all fine and valid as long as the carrier allows users to revert to an in-app purchase subscription once the bundled service ends or expires. 

What does this mean for businesses? 

Subscription streaming services may offer games including bundled services with applications from third parties. It is necessary, however, for them to be downloaded from the App Store and programmed in such a way as not to generate a double payment from the customer. Those who are not subscribers can not be treated less favorably than subscribers.

By implementing this regulation, the App Store prevents end-users from making duplicate payments that would negatively impact the customer experience.

Limitations on purchase methods

Apps cannot, within the app, encourage users to use a purchasing method other than in-app purchase.

Neither developers nor advertisers can use information obtained from within an app to target individual users for purchases outside the app. 

While some apps in certain sectors such as reader apps, enterprise services, or standalone apps may use purchase methods other than in-app purchase, their usage cannot be encouraged within the app. 

What does this mean for businesses?

It limits developers’ opportunities for cross-selling and up-selling and forces them to process as many transactions as possible through Apple. Just to name a few examples:

Adequate features requirement

Apps that do not provide adequate utilities may not be accepted on the App Store

There should be features, content, and interfaces in apps that elevate them above repackaging websites. If your app does not meet any of these criteria, it shouldn’t be in the App Store. If your application does not provide lasting enjoyment or enough utilities, it may not be accepted into the App Store.  

What does this mean for businesses?

The user experience is incredibly important to Apple, starting from the moment you navigate into the App Store through the moment you make a purchase to the moment you use the app. They don’t want the experience to be badly affected by the fact that a particular app doesn’t live up to expectations or fulfill the promises it made. As a result, in addition to security factors and technical requirements, utilities and functionality from the user’s perspective should also be considered when developing an app. For mobile apps, businesses need to focus on transparency and a flawless user experience without hesitation, guesswork, or misleading information. An app may be rejected if it is not user-friendly enough. 

Account creation and deletion regulations

If your app supports account creation, you must also offer account deletion within the app.

Additionally, there are a few extra regulations when it comes to accounts:

The app must also include a mechanism to revoke social network credentials and disable data access between it and the social network from within the app. 

An app may not store credentials or tokens to social networks of the device and may only use them to directly connect to the social network from the app itself while it is in use.

What does this mean for businesses?

Mobile apps and social media have a well-known marriage – social media facilitates app growth and is used for social gaming. Apps, however, cannot require users to log in via social media platforms if doing so is not necessary for use. Inviting friends to use the app, downloading basic profile information, or sharing on social networks are not considered core app features. 

If your application requires such a log-in, you may be required to prepare it for review or face potential rejection.

Updates to the Developer Code of Conduct

Enhanced developer trust and safety responsibilities have been added to the Developer Code of Conduct. 

Manipulating any aspect of the App Store experience such as reviews and charts is not permitted. Additionally, excessive customer complaints may be considered when determining whether a developer is compliant with the Code of Conduct.

What does this mean for businesses?

Apple places the highest priority on safety and transparency. If an app does not shine brightly with positive reviews, it may be removed from the App Store and its developers may be forced to pay excessive fines as a result. When Apple receives constant reports about an app, it investigates them. In the last couple of months, Apple’s policies have become more strict, and we expect them to only get stricter because Apple is concerned most about quality. Every app itself and any communication, content, or placement should be clear and accurate. 

Furthermore, apps cannot purchase positive reviews or force their current users to leave such opinions. There needs to be truthfulness in all information provided by the developers. Both developers and apps can be booted out of the App Store if they do not follow the rules, and restoring offending apps may only be possible with a long written statement that Apple may reject anyway. 

Over to you

In the mobile app world, new niches are constantly being conquered and new solutions are being implemented. Because of this, Apple Guidelines are constantly changing as they adjust to new technologies, realities, and challenges they face. Therefore, this article will be updated once new guidelines are rolled out. 

There are many other changes to the App Store besides those we listed here. Our article highlights only a few of the changes, but you can find a more complete list here.

How to use gamification to improve users’ health in a healthcare mobile app?

Gamification is probably something you have heard about in various industries or cases. This is an example of gamification if you play a mobile application and take action towards a certain goal. 

As a concept, collecting points, coins, and awards for fulfilling a set of activities has been around for a while, but it’s gaining popularity in more niche industries these days. 

Its importance, role, and examples of how it’s used in healthcare mobile apps will be discussed today. What is the relationship between healthcare, mobile apps, and gamification? The mix turned out to be quite successful.

What is gamification and why does it, actually, matter? 

In a nutshell, gamification involves using game elements and game design techniques outside of a traditional gaming context. It is meant to engage people, motivate them, and stimulate them to act while attaining the desired behavior or other goals.

While this is nothing new to games or many mobile apps (complete all tasks to earn rewards), it is still relatively new to the world of healthcare mobile apps. 

What are the reasons for the increased use of gamification in business?

Apps rich in gamification force time and loyalty commitments. Gamification stimulates a range of processes and behaviors, but they all lead to increased app engagement and usage

Users may choose to be motivated by the feeling of community and socializing, while others may be motivated by receiving rewards for specific accomplishments, competing against others, viewing data and measurements regarding small achievements, or finding enjoyment in the entire process. Either way, gamification makes users not only download the app or use it once – it makes them hooked to their screens, which automatically translates to higher revenue. The raw data alone is not enough to motivate people these days, they need challenges, rewards, or some sense of community and gamification is the ticket. 

Gamification encourages users to be curious, which motivates them to keep playing and earn rewards. Moreover, gamification allows for competition – Displaying players’ achievements on the scoreboard encourages them to keep striving for more and compare themselves to others. As no one likes to be forced into doing something, gamification gives users control by allowing them to decide what milestones to complete next. 

Many of these factors are combined in technology, making it a resource-freeing tool that contributes towards achieving desired goals.

What are the best ways to build a gamified app?

There are a number of gamification features and options you can incorporate into a mobile app, and the possibilities are rather limitless. You can implement them separately, but combining them may be most effective. 

All these mechanisms contribute to the feeling of rivalry within the community and complement one another. What are the benefits of it for businesses? Gamification and freemium apps work together to build and maintain user loyalty and increase the chances of more users making purchases in the app. 

People will even pay more when stuck in one level, as it’s a hindrance to their „joy”. The only way to get around such a stumbling block is to buy extra features, coins, or tools to use in the app and „unblock” their fun.  

Are you wondering how it can work with healthcare apps? Wonder no more, as we’re providing you with examples in the next paragraphs. 

What are the benefits of healthcare mobile apps? 

In the past, the only way patients communicated with doctors was through direct appointments. The health of patients could not be continuously monitored by doctors or hospitals, and therefore sharing real-time recommendations was not possible. 

With IoT, they can. What are the benefits of (not only) IoT-powered healthcare mobile apps? 

Benefits of IoT powered healthcare mobile apps
Benefits of IoT powered healthcare mobile apps

How to develop and connect an IoT device to a healthcare mobile app? 

The IoT itself contains a few subsequent steps, each representing a specific stage of a process. Each stage collects or processes data that will be used by the other stages. 

It first consists of deploying interconnected devices such as sensors, monitors, or cameras so that the data can be collected. For performing the next step, it is necessary to aggregate analog data from sensors and other devices into a digital format. Then, upon digitization, standardization, and aggregation, the data is transported either to a data center or cloud. Applied advanced analytics to final data provides actionable business insights that facilitate making the right decisions. 

It is imperative that such apps have a well-planned communication protocol, security,  and encryption. How can some sample security features be described? If you’ve already paired the first device, you’ll be unable to connect the second. As an example, the system might generate a dedicated key for the app and for the device. A great deal of sensitive data is stored in healthcare applications, so privacy is extremely important.

The healthcare mobile apps are compatible with Bluetooth, WIFI, and NFC. Bluetooth ranks number one among all these methods, but let’s spend a brief moment analyzing all of them.

Bluetooth

Because Bluetooth allows devices to connect directly, it has been the most popular method for connecting apps to devices and devices with each other without the use of the network. Typically, healthcare mobile apps are connected directly to a particular device. By combining proximity technology from NFC with a strong wireless signal, Bluetooth offers the best of both worlds.

Also, such devices can connect to the Internet indirectly, using an external service, and only then sending information to users. 

Other devices can connect to users through a connection to some other device. Sensors like anti-theft ones work in this manner. They connect to databases, and then through an external server, to users and devices.

In addition, there is the direct connection model that utilizes a SIM card. In this way, the device communicates with the servers and the backend of the system over the Internet. Data processing is optimized on the servers.

NFC

The range and signal of NFC are very limited. As we are only talking about a few centimeters here, it would be sufficient to open locks with cards, pay with a card, or send documents to a printer. 

WiFi

WiFi is rare and it would be more beneficial for one-to-one devices. Connecting devices over the network, instead of directly, is possible with WiFi. All transmissions are handled by an external server. We can differentiate two types here:

A number of IoT devices do leverage direct connections due to their specifics, e.g. smartwatches or various in-car devices. 

There’s also one more tweak to take into account – Bluetooth low energy. In this regard, preparing the system for a variety of scenarios is advisable. First of all, the battery consumption should always be monitored by the system. When it needs to be charged, it should provide notifications so that the device can last longer, be protected from failure, and always be charged and ready to use. Secondly, the system’s consumption needs to be optimized to the maximum.

How to use IoT in healthcare mobile apps

In addition to its many benefits, gamification focuses and drives users’ attention, taps into innate abilities, excites users utterly, and strengthens the ability to achieve more powerful outcomes. In healthcare, this creates a fertile ground for behavior change.  

Playing a game means more than just collecting vitals and getting notifications, as gamified healthcare mobile apps can keep users engaged and truly motivated. If we also consider that downloading and using the apps is voluntary, healthcare mobile apps could help achieve great things in healthcare and revolutionize the field.

Health advice, video chat, and video appointments with doctors and receiving prescriptions and self-tracking health are all now available via smartphones, and its growth was facilitated by the pandemic outbreak. 

In the following sections, you can read about healthcare mobile apps that motivate, reward, and reinforce commitment, as well as IoT solutions.

PelviFly

Using a device and a mobile application, PelviFly allows safe and effective pelvic floor muscle training. Women of all ages can train pelvic floor muscles through PelviFly, which integrates a gaming experience with medical treatment.

We at CrustLab were a part of the process of reengineering this mobile app.

You can read more on it here.

PelviFly operates in the healthcare market in Mid and West Europe. PelviFly has a small team of coaches and specially trained medical and physiotherapists working with it. Their efforts have resulted in more than 20,000 women regularly training their pelvic floor muscles with PelviFly’s product.

Women exercising with PelviFly can be kept informed during training sessions about the progress or abnormalities. It is possible for the coach to send these notifications as well. Additional coaching could also be purchased and paid for with an attached bank card.

PelviFly gamification statistics
PelviFly gamification statistics

FitBit

Fitness tracking app FitBit is a popular app that supports healthy lifestyles worldwide. 

Using FitBit, users can create challenges on the FitBit community interface and compete to see who gets better results at the gym and who does more steps.

You can track any running, cycling, or other workouts with SmartTrack on Fitbit’s multi-sport mode. Each type of exercise is recorded using a different algorithm, providing the most accurate evaluation of your performance. In addition to the number of steps, it can also measure other activity parameters with great precision; and with the integrated GPS, it even has even more data.

All of this is connected to a mobile app, of course. To ensure the best results, Fitbit’s mobile app connects to the Fitbit wristwatch. As you’ll see in the next examples, a marriage between wearable technology and mobile apps is not new or revolutionary, though!  

Bayer’s Didget

Didget, made by Bayer and compatible with Nintendo DS gaming systems, is a blood glucose meter that connects to kids ages 4 to 14. By rewarding them for consistently testing their blood glucose levels, it helps manage their diabetes. Furthermore, it promotes setting up treatment goals tailored specifically to each child’s needs. Two levels of testing allow for growth as children become more capable of managing their diabetes. A new level and option become available as the player accumulates points. Leaderboards showing top points collectors, web games, and an online community are also available.

Huawei Body Fat Scale

Scale 3 is an intelligent bathroom scale that can measure 11 body composition indicators at once. 

With its Wi-Fi or Bluetooth connectivity, the Huawei scale can be easily connected to your smartphone and controlled using the Huawei Body Fat Scale app. App users can view, among other things, their body weight, muscle weight, basal metabolic rate, or water content in their bodies. In addition, the app displays trends, provides advice, and allows access to the results history. As you want to improve your results on a daily basis, this reinforces internal gamification with your own body. 

MySugr

mySugr, a startup based in Austria, offers fun digital solutions for diabetics. The app is suitable both for children (mySugr Junior) and adults.

More than a million users have already signed up for MySugr, which is available in 52 countries and 13 different languages. 

MySugr lets patients track the blood sugar, carbs, bolus, and estimated HbA1c of their own body with one glance. The users of this app have been able to better control their condition since they log their data each day. The data is also available to physicians so they can provide better and more customized treatment.  

Using this app, users can also receive real-time feedback for dealing with diabetes Type 1 or Type 2. Having diabetes is difficult, and this app has made life a bit easier. 

Over to you

With the goal of delivering ease and convenience, healthcare providers are working tirelessly to transform their services. Mobile healthcare apps are set to continue being an exciting development field. Despite their imperfections, these apps provide users with care when and where they need it.

Patients are also still encouraged to attend checkups in person if necessary because apps cannot fully replace in-person appointments. As we have seen with the pandemics, though, unexpected events are capable of quickly proving the relevance of technologies. 

Many people have benefited from these apps, so it’s not just another trend, it’s a real trend that will probably change lives for the better.

How to reduce the costs of creating a mobile app MVP?

Ok, so you’ve decided to get your mobile app MVP developed. Instead of going full version ahead, you would rather try out some prototypes first to validate your business idea. 

It will not be quite as functional as your desired app, it is most likely to consume a large part of your budget if done in the wrong way.

How can you take control of your mobile app MVP and minimize the cost? Let us guide you through this topic.

First things first, though. 

What is mobile app MVP, actually?

In short, MVP stands for Minimum Viable Product. Despite literal meaning being the same for every industry and use case, it is worth checking various perspectives and viewpoints. 

In terms of users and their perception of mobile app MVPs, it is a set of functionalities that allows the product to be presented on the market and put through initial testing or user assessment. While only a very small amount of features are available with this solution, it must still be useful and fully functional – it should not have any errors or shortcomings. 

That is how it works for business and development, too, though there are a few extra considerations to keep in mind during those stages. 

When it comes to the business side of MVP, it should include way more than just key functionality. In fact, the business sense of MVP may depend upon analytics tools and verifying results. MVPs don’t just test features for the sake of testing – they need to collect feedback from early adopters for improvement and development where necessary. Without analytics, it would be difficult to answer any questions regarding further development. 

Mobile app MVP vs business goals

Based on the above description, two major goals can be identified – and they ought to be in alignment.

Goal #1: to develop a product that permits you to reach the market as rapidly as possible. 

MVP is developed under the assumption of being fast and inexpensive. The key is to write the product in a way that enables further development and any changes to be introduced beyond the target version. This approach needs to be reflected in MVPs since an MVP that is not fully functional and unscalable may hinder the development of a final version. 

Goal #2: to equip the MVP with analytical tools.

Analytics tools must include both qualitative and quantitative methods of collecting data, users’ feedback, or insights for further development of the mobile app MVP.

Mobile app MVP benefits
Mobile app MVP benefits

How to reduce the costs of your mobile app MVP

Like everything else: it depends. 


There’s no magic formula for success – but there are a few patterns you may find useful in this step. 

Start with a plan

There is a tragedy without a strategy, the saying goes, and it is hard to disagree with this. Taking a strategic approach from the very beginning gives a clearer picture of the whole project.

What should be included in such a plan?

Rethink reduction in product scope

The goal of having all features in an MVP version may not be attainable, so reducing project scope is well recommended. Finding a balance between usually challenging, high-level requirements and a designated budget may be difficult, so either the budget needs to be increased or the requirements need to be lower. 

There are at least two paths you can take here: 

It is impossible to reduce the cost of an MVP project while maintaining the characteristics and features of the mobile application. It is suggested that you decide whether you absolutely require all the screens included in the MVP version. If some of them are not necessary, you can easily skip them in the MVP version, thus allowing more resources to be used for other business activities.

A similar situation occurs with graphics and animations. At the MVP stage, it would be wise to limit their use as much as possible – even a seemingly simple animation can consume a lot of resources and be costly. In many cases, using animations in this stage would not make business sense. The MVP mobile application should maximize the use of the system’s capabilities, and additional features can be added in later versions.

The use of native, ready-made components influences the shape of an MVP, its speed of development, and its cost.

It is worthwhile using elements such as UISwitch, even though the creation of custom elements may seem straightforward, it is known that predicting their behavior in hundreds of different scenarios influences the cost and length of MVP development for a mobile application. Moreover, rather than coding the solution from scratch (for example, chat in a mobile app), it is worth using the elements that are already available and configured.

Help others help you

In some cases, there is not much knowledge or approach to MVP from the clients’ side. They just want to get things done, regardless of the method. CrustLab helps clients understand the whole picture, establish measurable goals, validate the concept, and plan outcomes via dedicated workshops. This is an excellent solution especially for those clients who would appreciate guidance in navigating through MVP. 

Analytics of MVP

Many incorrectly believe that MVP is only a “demo version” to check some features and determine if it works. It is, of course, but for this to be determined, both hard and soft data must be available. Without analytics, they won’t. Data should support most business decisions, and one of those is the decision as to whether to develop MVP into a fully functional product. 

In terms of mobile app MVP, there are quite a few tools to consider. They all vary in functionalities and features, yet they all have in common the ability to support effective analytics. Some of them are quite general and cover analytics as a whole, while others may be well-suited to specific analytics of mobile applications. 

  1. GTM – GTM allows for managing the marketing tags after the MVP has been shipped, significantly reducing the need to rebuild the MVP. This is the main reason that many MVPs rely on GTM for their analytics, which is likely the GTM’s selling point.

  2. Smartlook – Smartlook is capable of advanced analytics including recording user sessions (to view any point in the customer journey) and generating heat maps for each point in the journey in order to identify trends and spot patterns in user behavior. With events, funnels, and filters, a specific moment or action can be specified.

  3. Firebase – the primary advantage of this product is that analyses, crash reporting, hosting, and A/B tests are all available in the same product. It also includes the Google Analytics mobile app. In the beginning, this product may pose a viable option, but it becomes very expensive once your traffic increases. 

  4. Google Analytics 4 – Google Analytics 4 offers a much more unified platform for app analytics by directly leveraging the Firebase Analytics schema and reporting interface. After linking your Firebase project to a GA4 property, you have access to a range of reporting templates for analytical data that unavailable through the Firebase itself. 

  5. Apple App Analytics – it is a basic, but adequate mobile app analytics tool. It offers usage data, sales data, and app store data, where applicable. Going without saying, it only works with iOS apps. 

Of course, there are many other tools, systems, and applications that you can use on various stages of mobile app analytics. For the MVP, it is best to go for a complex yet quick implementation solution that will enable you to receive the world’s first insights from those who matter the most – your potential users. 

Although quantitative data is the most important one you can capture during the stage of verifying and analyzing the performance of your mobile app MVP, qualitative data is also important. How can you collect data without gathering hard data? 

Those are only a few examples, to name a few! In short, anything that helps give us an insight into the factors which may lead to a better quality mobile app MVP should be put to use. 

The more, the merrier. 

Over to you 

There is no doubt that the cost of developing an MVP is usually less expensive than that of the final product. There is no need for that to be always the case, though, if tasks are not prioritized and MVP is the opposite of what is called for. MVP stands for Minimum Viable Product which is the minimum set of features that can satisfy the needs of a limited group of potential consumers. No more, and no less. MVP needs to answer whether it is worthwhile for the company to develop the prototype into a mobile app and whether there are strong customer demands and needs to be addressed via the final product.

The experiment may be biased if the system is overdone, is not functional, or has many features. The result may be that, although the app is close to completion, it is not wanted or has a lot of bugs to resolve. The more features there are to implement or fix in the MVP, the longer and more costly the project will be.

To reduce the costs of putting together a mobile app MVP, it is important to reduce requirements, research needs, set goals, organize resources, and balance expectations – and verify what questions to address at the start. 

The anatomy of custom software development pricing

„How much does this custom software development project cost?” is similar to „How much does a car cost?”. There is no one answer since the anatomy of custom software development pricing depends on several factors. 

Today, we will break down custom software development pricing by detailing what factors contribute to it, how it may be structured, and what factors we consider when putting a price tag here at Crustlab.

What is tricky about custom software development pricing, then?

Many prospective clients of software development are unsure of how much they should be paying. You may be one of them. It may be hard for you to understand what factors contribute to a certain price, why it is higher or lower than expected, and how the software development partners determine how much money to charge. As a result, you may be hesitant to fully commit to the overall partnership at the outset, even if a software development agency has nothing but good intentions. They are unable to reconcile your expectations with the price to be paid. This is the reason why understanding the complete process is crucial to success. 

That would be a fair statement if we said that there are hundreds of factors that influence the final price and shape of the project. The price range of the services offered by a selected software development company is one thing, but there are many other factors that you should consider. 

What factors affect custom software development pricing

Have you ever seen a genealogical tree? We believe so. Pricing of software development projects may follow the same principle. There are many branches that give rise to other branches, and pricing is exactly defined in this way. 

Elements of the custom software development pricing
Elements of the custom software development pricing

Type of the delivered project

This stage influences other stages and enables at least some initial estimation in pricing. 

We could enumerate different technical areas of every project. To be more precise, we could say that every software development project consists of a few core elements that typically require a completely different skillset. Typically the bigger the project, the more necessary components, especially when a backend part is needed. 

First of all, it is essential to identify whether the developed project is designed to run on the web or mobile platform. As a result, there is no straightforward answer to what is better, or what is more economical – it depends on the business goal, requirements, and budget at the end of the day. 

Then, it should be indicated whether the project scope refers only to the back-end, only to the front-end, or both back-end and front-end. Below you will find a more detailed breakdown of the price estimation.

Breakdown of the elements in the estimation

When we estimate your project, we take into account the following key aspects of every area:

Front-end Development

By ‘front-end development‘ we mean a visual part of a web application designed for the end-users of your system or related to the UI/UX of your system management panel. As a general rule, we assume that every website we create needs to be responsive (scales automatically when viewed on a mobile or tablet device). If this assumption is made, the cost of development is typically increased by 10%. In addition, your app might also be optimized for mobile use and look and behave like a mobile application – here is where Progressive Web Applications come into play. Additionally, estimations are strongly influenced by the visual effects used – animations or custom transitions – and by the complexity of communication protocols.

Mobile Development

For mobile app development, it should be specified by a software development partner whether it will be developed as a native platform or as a cross-platform projectThe price may also depend upon whether the designs are still under development, not ready at all, or already completed. Additionally, potential integrations with external APIs – both in terms of their number and size – can also have an impact on the final pricing. 

The development of mobile applications can be simple, yet it can also be extremely complex and time-consuming. 

Likely, the sentence did not shock you, but please note that sometimes mobile apps could cost even hundreds of thousands of dollars and more. 

During the estimation process, the most important thing that is noted is the number of screens that will be implemented. Every screen could add a little scope of work that in total could result in a substantial amount of time being spent.

Android and iOS provide a large number of default layouts and styles. If you need to create something of extraordinary value, an additional effort is usually required. 

In the same way as the front-end development, integration with the back-end is also essential because multiple communication protocols may be involved. There are also considerations such as push notifications and integration with external devices, typically over the BLE (Bluetooth Low Energy). Developing a conceptually simple mobile application could prove to be a challenge, as you can imagine. 

Backend Development

It is particularly challenging to estimate the backend part. Our recommendations may vary depending on the project. Usually, we recommend a serverless approach because it is the most scalable architecture for the backend system. The cloud solution provider is also very important. For example, both Amazon Web Services and Google Cloud Platform provide a significant number of ready-to-use components that reduce the cost of development and potentially increase the cost of the solution in the long run. In addition, the price of external services connected to the system can also be affected – for some typical service providers, we can offer our implementation, reducing the project’s overall cost. 

Projects run in the cloud cost more by definition since it requires extra DevOps services (the team that is responsible for the technology itself, including implementation, monitoring, and ongoing maintenance of the product). This may increase the overall project pricing by quite a considerable amount of money. 

So, the selected environment might also have an impact on the final price. As an example, the way the back-end of the project should be specified precludes the possibility of the project being a cloud-based one. This may include the implementation of the aforementioned AWS or GCP, but is not limited to those technologies. 

DevOps

Nowadays, DevOps activities are becoming increasingly crucial. When estimating a project, we consider these activities as an investment for future cases. DevOps can significantly reduce the cost of projects, especially when it comes to more complex projects that require an advanced backend architecture. 

The Configuration as a Code approach ensures that you will not get lost in the multitude of configurations deployed on multiple hosts, nor will you have to worry about the configuration of your cloud provider. The more complex the project, the higher the cost of DevOps. On the other hand, the more you will save in the future, and the maintenance costs will also be reduced.

UI/UX

Timeline and deadline

If it is quick and cheap, it isn’t good.
If it is good and cheap, it’s not quick.
If it’s quick and good then it’s not cheap.

This certainly applies to custom software development pricing. 

Among the most important points to remember is that projects that are implemented „quickly” are also characterized by a lot of dynamic changes. This is especially evident in the startup environment, where the founders lack experience creating IT projects.

It is important to note that processes are among the most important elements in any organization. A fast pace can delay the implementation of viable processes and methodologies.

This results in the client making irrational decisions, the team not having time to implement appropriate recommendations and technical solutions, thereby wasting time making multi-layered changes.

Nevertheless, you should be aware that if your project must be delivered immediately, and you do not have time to research and test, the price may be considerably higher. If there is still enough time for development, those resources can be allocated responsibly and lead to long-term cost savings. Working with the team on the scope and deadline of the project will allow you to choose the most optimal solution.

Team

Another factor that dictates custom software development pricing is the team behind the development. The number of developers necessary to “deliver” the project is very important for its cost because even one extra developer can cause the price to vary significantly. Furthermore, there is an unequal distribution of developers, so the years of experience and specialization (programming language and technologies) should also be considered and determined for the pricing. It is important to take the changes into consideration, even if they may not be constant (may only relate to a specific stage) or seem small. 

What should be highlighted here, however, is the required set of skills.

The determining factor may be the programming language or the target technology that will be used to develop the application. Large projects require the contribution of a Software Architect, who sets technical guidelines and drafts technical project documentation. Also, we recommend an automated DevOps approach for projects, where each component of the architecture is configured and automated with only minimal human intervention, which increases the initial cost of the project, but will ensure considerable savings in the future as well as a significant reduction in maintenance costs.

It is interesting to note that some clients choose to implement their own testers or seek to be excluded from the testing team in order to reduce costs. Savings that appear to be made at the preliminary stage can result in a significant increase in costs in the future if the verification process is flawed or nonexistent. CrustLab, as a supplier, is unable to provide a guarantee for the delivered products in such circumstances. This may result in a further increase in costs.

As well, it is extremely difficult to estimate the cost of a Project Manager or QA work since it is not an ongoing effort – it depends on the size of the team.

Our estimate for the Project Manager’s work time at Crustlab is 15% of the time reported by the programmers or designers who are part of the project team. Likewise, QA accounts for 15% of the total cost, but for cross-platform mobile projects, this ratio increases to 30%.

Another topic is the design – whether the client brings a pre-designed layout or whether it will need to be re-worked, or created from scratch, by a graphic designer and/or UX specialist.

Complexity

There is no doubt that the lion’s share of custom software development pricing is determined by the functionalities within a given application or website. Functional requirements define the functions that an application or website must fulfill, and they are mostly what determines the final price.

Each function has its own costs, since it requires writing functions, designing their interface, or installing, configuring, and training the system. The cost of each individual functionality differs, as do the combinations of functionalities or the complexity of their components. To be able to calculate the exact price and select the appropriate solutions, it is important to determine the functional needs.

If it is evident that a particular software development project will be expanded and modified in the future, the solution can be chosen more accurately, thereby reducing the cost of foreseeable upgrades and modernizations.

Methodology

Project pricing is sensitive to the process and methodology used. Failure to use a correct process and methodology may result in a dramatic increase in project implementation costs.

For example, If the team performs the Agile Scrum methodology with the client’s Product Owner, for example, the costs might be reduced.

The adoption of an agile methodology and a proper collaboration process between the Product Owner (possibly on the client-side) and the team, usually represented by the Project Manager, may be instrumental in reducing project costs.

Crustlab prices all projects inclusive of a Project Manager, Tester, or a team of testers, programmers, and designers. It is a comprehensive team that works based on the agile methodology.

Earlier Waterfall approaches cause the process to be overly rigorously divided into stages, which increases the risk of time being wasted on things later found to be unnecessary or criticized by the end-user. If the project is developed using scrum, an extra amount of time is required for meetings, and this will reflect both in the cost and the duration of delivery. 

Furthermore, it is not possible to continuously make changes, which is crucial for many software development projects. This all impacts the potential price.

Possible billing models used in IT

Custom software development pricing models
Custom software development pricing models

Fixed-price

For this model, the price for the work is estimated in advance. At the stage of work on the project, changes cannot be made to the project without renegotiating the terms of the contract. Moreover, due to the fact that the price for a specific work is set in advance, it requires very specific specifications and details from the client. 

This option is available for all projects whose value can be determined before the start of work. However, the project must be considered with careful preparation of its specifications, taking into consideration also its time of execution, its schedule, and its scope.

Time & Material

It is a type of billing based on the time units actually worked by each employee in the project and the cost of the materials.

The contract allows for a good deal of flexibility, as changes can be made during the development. In this model, the contractor is informed regularly about the state of the project and receives a detailed report on its progress. It uses this information to verify the state of the project and to make any changes that may be necessary. This model is preferred by customers who have a general idea of the final product but are unable to accurately describe the scope of work and the timeline. It has a clear advantage in reducing overhead since the client pays only for the actual work without any added risk costs.

FBSC: Fixed budget & scope controlled

That’s a little bit of a hybrid.

The goal is to have a good understanding of the project at the beginning of it, both on the clients’ side and a software development partner’s side. Using input from clients and the experience of a software development partner, a responsible budget can be set and a defined timeline can be determined. Using this approach, the scope of the entire project is not set upfront. Thanks to this approach, the scope can be altered without affecting deadlines or budgets — by reprioritizing individual tasks. 

Close cooperation with the client allows them to monitor the financial condition of the project, so they can make adjustments as they may see fit, making the product a better one.

How we tackle custom software development pricing in Crustlab

This quote from Adam Gontarz, the CEO of CrustLab, could say it best:

„When we are talking about pricing and project estimation with our potential customers, we always try to give great feedback. Clients often face the problem of having an extensive range of offers they receive. An adequate split of the scope and justification of the numbers is crucial, as well as an appropriate justification of technical solutions. We give a lot from the very beginning to make the difference – our estimation and pricing process is customer-oriented since this is something that brings the highest value at the end.”

At Crustlab, pricing for custom software development is relatively straightforward, and can be illustrated by the following equation:

The time needed to complete all the tasks x the rates of individual people in the project = the price of your project.

PM, knowing exactly what the scope of the project is, writes it into user stories, for example, „as an application user, I would like to be able to view statistics regarding my activities”. Based on these stories, certain tasks are then assigned to specific people. The most experienced people and the ones who have the deepest understanding of the project requirements are selected for the project. These tasks are then time-estimated, and the total hours of the engaged parties are multiplied by their respective hourly rates.

Additionally, it is possible to extrapolate data from past work to build estimates for the current project in the event that the current project is similar to a past one.

Over to you

It is the same anywhere when it comes to pricing for custom software development: it depends.

Depending on the nature of the project, the complexity, and the level of detail of the requirements, a suitable billing model and pricing is selected.

However, it really does depend on the specifics of the project, established before the start of the project (regardless of the method). 

Sometimes you can opt-out of some things, add others later, and you can also combine billing methods. In other instances, the result is entirely determined by how long it takes to perform the work and what the deadline is. These are very specific and individual arrangements that vary from project to project.

We’re not only here to deliver your project from A to Z, but also to discuss and choose the most appropriate options with you. Get in touch with us! 

Flutter for cross-platform applications development: nuts and bolts

In order to develop effective cross-platform applications, a number of factors need to be considered, and one of them is the approach it is implemented in. While some companies rely on native technologies and use React Native in their development processes, others are increasingly interested in Flutter. Today, we will examine why that is the case.  

What is Flutter, actually?

Flutter is a set of software development tools that are used to develop cross-platform applications on devices with Android and iOS operating systems simultaneously. The technology was developed by Google and is widely considered to be in practice a way to increase speed, quality, and lower cost of the entire project.

The language that Flutter is based on is Dart, which is an object-oriented and statically typed language. Further, Dart has become relatively straightforward to master, since the Dart developers assumed that their goal was to create a similarity with other programming languages rather than to create innovative solutions. Mobile applications written in Dart may appear and behave almost exactly the same on both platforms with performance comparable to native applications. 

Knowing Dart allows a developer to take advantage of all Flutter’s features – both the implementation of views and application logic. A widget is an important element of this framework since it is the component from which the application view is built. A widget can be anything, from text to images and anything else. It is possible to nest widgets within other widgets, giving you the ability to compose very complex objects in a relatively short amount of time.

Furthermore, the Flutter ecosystem is already quite advanced and very rapidly developing, despite its relatively short history.

Native versus cross-platform applications

As Michal Sulek, Mobile Development Lead in Crustlab indicates: 

Flutter is, in my view, the best platform for the creation of cross-platform applications since the development is relatively simple and straightforward. Its primary competitor, React Native, is more challenging (but cannot be described as difficult). React Native has undergone a number of changes over the past few years, which complicate its development.

Whenever Flutter is mentioned, its biggest competitor – with regard to cross-platform applications – is React Native. What is a better alternative? React is without a doubt a more mature tool, and its advantage right now is definitely the large community and a large number of libraries that are available. Certainly, both platforms have their advantages and disadvantages, but both guarantee a fast and solid application.

However, there are certain factors that may tilt the scale in favor of Flutter in the future. The Fuchsia operating system has been developed by Google for a few years and uses Flutter as a user interface layer. The rumor already circulating on the web is that this system would eventually replace Android, erasing its greatest defect. Importantly, it would also support all existing Android applications.

Shall you develop a mobile app using only one method, or can you mix them? Check Michal’s take on this one. 

Cross-platform applications? Well, it usually depends. Flutter apps are always a bit behind their original counterparts, so if something new urgent comes out for either Android or iOS, it might be that hybrids will have to wait until it is ready for them. In a Flutter framework, like React Native, the module developers have a lot of input. It is beneficial that they are so open-source, and everyone may contribute their own plugin, but on the other hand, it sometimes affects the overall quality of these plugins. There are also many minor mishaps or bugs in Flutter itself, resulting in some UI glitches. If we want to develop a serious application or a larger project, we shouldn’t rely on the hybrid architecture, as there’s always room for error.

Technical and business bits on cross-platform applications

Flutter can optimize costs

Theoretically, simple apps written in Flutter can result in significant financial savings (even up to 30%). How does it actually work? What makes Flutter so powerful (and cost-effective) is that it is based on one, unified code-sharing. All the platforms use the same common code, which is also written in a single language, Dart.

Importantly, this rule applies equally to each part of the application, including the UI. As Flutter relies on one common source code to build cross-platform applications rather than two separate native apps (that would often require hiring more people or allocating more resources), Flutter offers significant cost optimization.

Flutter is efficient

Flutter isn’t much different from native applications in terms of efficiency.

Thanks to the Skia engine for rendering views, applications using this technology are able to run as fast as native applications. A typical application in this technology ought to run at 60 FPS (frames per second).

As a result, the pace of project development and the speed of responding to changes is greatly accelerated, allowing programmers to focus on their business logic without fumbling around with the specifics of a particular platform. Since Flutter applications use only one syntax, they have a consistent and transparent implementation, which makes them easier to test and understand.

Flutter is trustworthy

Since Flutter technology is developed, maintained, and promoted by Google, a global technology player whose products are used by thousands of people worldwide, it inspires trust and is constantly updated, not only by Google itself. Flutter is based on contributions from the community, which is what largely determines its strength and popularity. Consequently, it is extremely dynamic, and it is very important that it incorporates the comments of the community when it is being developed.

Flutter challenges

It goes without saying that Flutter has a bunch of advantages, but there is no such thing as an ideal technology. The challenges listed below should be considered when determining whether a given project would be better served by native development or still should go with Flutter. 

Technical and business bits on cross-platform applications
Technical and business bits on cross-platform applications

Flutter cross-platform applications you may know

Alibaba cross-platform app

A team of developers at Alibaba Group’s Xianyu created an app with Flutter. 

Alibaba already had an existing app. Thus, the first step in the process was to implement Flutter’s features and then add additional functionalities based on the framework. 

Over 50 million downloads have resulted in over 10 million daily active users. By choosing Flutter, they were able to save time because the application can easily be created and maintained with a single codebase. 

The use of Flutter was not a replacement for native application development, but rather a means of supplementing cross-platform solutions. Alibaba integrates Flutter into their native applications in order to provide the best experience.

Groupon hybrid app

Groupon, another example of a company that utilized a pre-made application, chose to integrate the Flutter technology with an existing system rather than entirely re-build it. 

Groupon decided to create two types of apps in Flutter, one for customers and one for merchants.

Groupon apps allow merchants to track campaign performance and track customer feedback. They also assist customers with the provision of customer support and enhance their experience.

Philips Hue app

Philips Hue is a lighting system for smart homes and provides accessories for customers who desire intelligent lighting. Hue Sync and Hue Bluetooth are both apps built with Flutter. Using these controllers, Philips’ clients can set the mood and alter the light’s color and synchronize lamps with their media sets, and quickly and easily control them with their mobile devices.

Philips has been using Flutter since 2018 and found it to be a good fit for their project even though a number of other suitable alternatives were available. Flutter seems to fit their needs perfectly, so they continued using it. 

SpaceX Go mobile app

All SpaceX information is accessible through this app, which has a detailed list of both previous and upcoming rocket launches. In addition to that, there’s a catalog of all the vehicles and more information about rockets, capsules, and ships built by SpaceX over the years.

This application includes a ship locator that allows users to view the status, position, and speed of the active SpaceX spaceships. It also provides Tesla location data.

Grab cross-platform application

Grab mobile app enables people to order food for delivery to their homes. Flutter has been used to develop Grab’s merchant application for restaurants. This software provides local businesses the opportunity to grow by adding menu items, managing orders, and displaying their earnings. The burgeoning food delivery business has been able to grow even more rapidly as a consequence of that.

My BMW hybrid app

Within the BMW Group, the software platform for the My BMW app is referred to as the Mobile 2.0 App Core. Developed in-house, it adopts the very latest technologies and includes a broad data ecosystem. Developed with the open-source Flutter framework and written in the Dart programming language, the My BMW app can be used on iOS and Android devices. 

Fun fact: with over 300 developers, the Flutter/Dart team at BMW Group is the second-largest in the world.

Wrap it up

The use of Flutter is definitely a viable solution for mobile app development in many business cases. 

It is undeniable that Flutter has provided added value and considerable proliferation for the mobile industry. This is without question a significant step towards developing cross-platform applications.

It is not necessary to engage two independent development teams anymore to write two different sets of codes. The result is a reliable product that is developed in a significantly shorter time and for a much lower cost than native methods alone. Accordingly, if your anticipated mobile product meets these criteria, Flutter could be a great option for you. 

Although this technology is not without disadvantages and is not suitable for all applications, it has already established itself as a real competitor. From the pace at which these technologies are growing, it is not impossible to expect that it may become a leader in its field in the near future.

Before you start: what to discuss with your software development agency

Finding a software development agency is not rocket science. Choosing the right one? Definitely is, though. Before selecting a particular IT company for your project, it is important that you verify it back and forth. Although a thorough examination of their portfolio, skills, and expertise is essential, you also need to assess their approach to your project and business. 

Every software development agency that takes your project seriously will ask questions throughout the project to fully understand what it takes. The more prepared you are for answering them, the stronger your ability will be to take your project to new levels with the right team and attitude. 

Here we will go through the most common terms, methods, and questions you need to consider when collaborating with your software development partner. TL;DR, we’ll cover:

Fasten your seatbelt, we’re starting right away.

All you need to know about BANT

BANT deals with your budget, however, the budget itself is not the only factor IT companies consider during the valuation process. 

BANT is a method that software development agencies commonly use to verify that project assumptions and expectations fit within a particular budget and, to put it shortly if they make sense. Verifying the project at the outset may enable both parties to better understand the project, come up with alternatives, or simply avoid disappointment and misunderstandings in the collaboration. 

BANT stands for four terms: Budget, Authority, Need, and Timeline.

BANT – what does it stand for?
BANT – what does it stand for?

Going through BANT is highly beneficial for clients, who can verify whether they are on the same page with a software development agency, acknowledge risks and challenges, and identify potential bottlenecks. In the end, this may reduce time both to them and to IT companies, who may choose to resign from taking the project if they are unable to deliver it within the proposed framework.

While BANT is a method that many software development experts implement, it’s not the only one you’ll encounter. Another alternative is the MVP, which, in short, is a smaller test version of the project in order to verify its business sense. 

Let’s briefly switch to this one.

The importance of MVP in software development

Is there a need for the MVP in all projects? No, probably not. However, if every project in the world went through it, then probably some of them wouldn’t have been developed the way we know, or they wouldn’t have failed.

MVP is one of the easiest methods for validating or specifying a product or software idea. 

The MVP is a limited version of a given product that offers the essential and most important features to verify if the final product will be successful. It describes the fundamental and basic functions that constitute the value of a product. In this way, the software development agency receives feedback on the functionality of an application, and the client can verify whether the selected path makes sense or not.

By creating an MVP, the main intent is to be able to get a quick and reliable evaluation of an idea or product during the testing phase. Here at CrustLab, we often recommend this solution to clients who work on “under construction” projects or whose ideas might benefit from extra validation. We could also suggest conducting workshops where the vision for the project could be developed together with us.  

However, this does not always have to be the case. You may already know precisely what you want to accomplish, don’t you? And those requirements and expectations are usually incorporated into the RFP. 

RFP: what to know about Request For Proposal

The term RFP is an acronym for the request for proposal. Frequently, it also includes RFQ (request for quotation), including the signing of the contract and setting the conditions. This step is more detailed – a client who has an RFP often already knows what he’s looking for, what he can afford, and what kind of cooperation he wants. Software development agencies can ask for additional information, and workshops are also an excellent way to clarify any doubts.

Even though an RFP is not mandatory at the onset of collaboration, it is beneficial, even if created in a short version, for both parties. This may allow a software development partner to better understand the project’s foundation and point out areas to revisit. RFPs also allow for the provision of alternative solutions and provide accurate estimations of the time and cost of the project. 

This gives the client predictability and provides flexibility to plan in time and budget and enables them to present a demo version to investors or potential users. RFP may also create an opportunity for quicker entry into the market and more profitable earnings.

There is nothing wrong with not having a request for proposals (RFP) – not every project or product had one at the outset. A reliable software development partner should be a real partner at this phase, too, and guide you through the whole process regardless of your RFP, or its lack. They should understand – and navigate through – what the customer’s business needs are, what functions will be fulfilled by software/product, the distinctive features of individual businesses, the business applications, what the product offers to the market, and what its main sales value is.

Here is a sample RFP for your reference.

RFP template

An RFP like this may be sent to several software development companies in order to obtain the best offer and pick one for the actual development. However, many questions will arise, not only from the client’s perspective. 

Questions a software development company may ask

In fact, the more information development companies ask about, the better it is for the entire project’s future. Asking questions does not indicate poor knowledge or lack of skills; rather, it indicates the software development company’s willingness to get to the bottom of the problem and provide precise estimates. 

Although there may be some predefined templates and patterns of questions (as you’ll see below), they are usually individual cases depending on how complex the RFP is. Some questions may already be addressed in the RFP or may simply need clarification as they only scratch the surface, but there may be numerous areas not covered at all. 

The more information software development companies ask about, the better it is for the entire project's future.
The more information development companies ask about, the better it is for the entire project’s future.

Should there not be an RFP at all, questions will accumulate quickly. 

The importance of being proactive at this stage and providing answers quickly may improve the overall process, speed it up, and enhance collaboration, which will all contribute to a successful final project. 

Below are some frequently asked questions (and their variants) by software development companies upon receiving an RFP or a simple request. Take this more as a guideline for what can be asked and what details may be required to provide. There could be hundreds and hundreds of questions in this stage

  1. Stage of project development:
    – How long has the project been in development? (if applicable)
    – Is the project monolithic or is it organized into microservices?
    – Could you provide more information about the project architecture itself?
    – What types of tests were conducted?
    – Has a static code analysis been performed?
    – To what extent does domain knowledge contribute to the success of the project?
    – Has the monitoring of system operation been undertaken?
    – Did any large-scale custom systems have to be considered in the implementation of the modules?
    – What technology was used in the front end?
    – Which version of Java does your server run?
    – On what modules does the whole system currently operate?

  2. Team & collaboration:
    – How many people will make up the development team and what is their hourly commitment during the week?
    – Which methodology is adopted by the team?
    – Under the current status quo, will the support be limited to maintaining the current version of the product, or will it be possible to develop new functions?
    – What was the development team rotation throughout the project?

  3. App specifications:
    – What is the minimal version of the operating system the application should support?
    – What is the main UI framework?
    – Will the project be marketed through official platform stores?
    – What level of analytics will be required for the app?
    – Will the app need payment processing?

  4. Additional features:
    – Should the offline mode be supported, developed, and synced?
    – Are third-party authentication services planned?
    – Does the biometric authentication need to be supported?
    – Will push notifications or in-app messaging be utilized in the strategy?
    – Is multi-language support provided for this product?

Of course, those are only a few questions that could be asked. Various factors may be involved, such as the project’s scope, budget, technology, and requirements. Although, our list may have shed some light on how specific – or generic – some questions are.  

Now it’s your turn 

If you stumbled upon this article, and now arrived at this point, then it is likely that you are interested in working with a software development agency. Well done! The better prepared you are, the more successful the collaboration will be. Mark our words.   

No matter if you have already established an RFP or never heard of it until now, if you have run an MVP or not, you should have a good software development partner on board. We know one – we are one. Get in touch, and we will be glad to guide you through your journey.

RTLS use cases: where are real-time location systems used?

Improving efficiency is the main issue facing many businesses. Managers of companies today have to deal with the implementation of an increasing number of tasks while at the same time maintaining the quality of what they offer. New technologies are helping to achieve better work results, however. 

One area that has been gaining increasingly more attention is RTLS technology. What is it and how can it be used in business? Let’s take a closer look to find out.

What is a RTLS?

When it comes to traceability solutions, the keyword is an RTLS, which stands for real-time location system. It enables the location, identification, and supervision of an object in real-time. Basically, tracking different objects is easier when they are automatically identified.

In common RTLS implementations, wireless tags that send wireless signals to fixed reference points in order to determine their locations are attached to objects or worn by humans.

Tags and fixed points can be either transmitters or receivers. The flexibility of these devices permits many different possible combinations. Tracking can take place in any location, in either closed or open environments, allowing for optimization. The tracking process can be fully controlled, granting or restricting access depending on the location. 

In practice, RTLS technology allows the identification and location tracking of individuals and objects to be achieved with high accuracy within buildings, such as warehouses or production halls as well as hospitals or campuses, for example. These solutions enable organizations to track contributions more effectively, which helps them improve processes that are challenging to handle such as inventory management. 

Because of evolving demand on commercial markets, this technology is increasingly being integrated into business processes. It directly or indirectly influences competitiveness, improves interactions between entities, and enhances the overall quality of services provided, just to name a few benefits.

More benefits of real-time location systems can be found below. 

How does RTLS work, actually?

An RTLS is generally based on the use of battery-operated radio, optical, or acoustic tags attached to the objects or individuals that will be tracked. 

Importantly, RTLS technology is not only useful for locating objects but also for tracking individuals. Special RFID tags may not only be worn by people but can also be attached to objects that specific transmitters have been assigned to. The technology provides precise movement analysis. 

The signal emitted by transmitters, also known as tags, is picked up by sensors in the region monitored by the RTLS system. The technology used in this example is based on the so-called UWB. In other words, the transmitter produces radio waves that allow its position to be precisely pinpointed.

TDoA is a technique to analyze time differences between receivers using at least two sensors. The actual position of the transmitter is determined based on the information obtained from these sensors.

It is of course essential not to overlook one more integral part of the system, namely the software. It is this part that allows the constant tracking of objects and their movements.

RTLS how it works?
RTLS how it works?

RTLS benefits

The possibility of continuous monitoring

Knowing where resources or people are at any given time can provide many advantages to an organization.

Real-Time Location Systems are being implemented to address the needs of many companies. We are specifically speaking about manufacturing companies, transportation companies, and those that provide various services or need to be controlled. A near-constant need for monitoring various objects is evident here. The history of employee movements can be tracked by using RTLS monitoring software, which helps to reduce process errors.

Excellent precise and automation

RTLS provides high-quality communication. It can transmit through objects and walls and therefore has a remarkably long range. At the same time, it is extremely precise, pinpointing an individual or place to within a few centimeters.

In this scenario, manual arrangements are replaced with modern technology, which enables more rapid responses to changes or inaccuracies as well as automation of operations. RTLS systems automate tasks that used to be manual and error-prone by replacing outdated, inefficient solutions like spreadsheets.

Workflow optimization and automation

The key to success lies in a clearly visible flow of materials and people. Thanks to a real-time location system, the time in which this occurs can also be precisely calculated.

This solution can be beneficial for both efficient inventory management and effective human resource management. The utilization of RTLS infrastructure for production control and asset tracking enables optimizing processes and security.

Additionally, RTLS technology not only allows for the acceleration of operations but also helps with pinpointing and diagnosing problems that impede them. In this way, we can improve the speed of service. 

By providing them control over their work instruments, it improves the ergonomics of the job and the efficiency of employees on the line. Furthermore, it prevents employees from performing incorrect operations at their workstations.

The data is continuously collected and analyzed, allowing for such analyses to be completed at any time, either regularly or according to company personnel’s convenience, and can be reviewed by internal or external authorities.

Industries that use RTLS

E-commerce & retail

Retail and e-commerce are two industries that can take advantage of the benefits of RTLS.
Retail and e-commerce are two industries that can take advantage of the benefits of RTLS.

Retail and e-commerce are two industries that can take advantage of the benefits of RTLS. In brick-and-mortar stores, RTLS mechanisms are increasingly used so as to simplify and shorten the purchasing process. One example is the so-called „intelligent shopping basket” into which items are inserted and the machine takes care of scanning and adding them to the order. People are no longer needed to manually scan products, so the human element is minimized. Additionally, RTLS is employed in smart self-service stores (after a series of prototypes, increasingly more such stores are being placed in cities). Sensors are built into the warehouse to help the system determine the appropriate locations to place the goods. So when adding goods to the warehouse, we do not need to enter them manually into the system because the sensors take care of that.

Prison system

RTLS may also be utilized in the prison system. 

The RTLS can act as a basis for the creation of an integrated monitoring system that exploits a wearable component capable of keeping track of the location of vulnerable prisoners.

In most cases, this is done via a magnetic strip, which allows one to determine location with nearly 100 percent accuracy. So it enhances levels of physical security and surveillance in prison systems.

With the right RTLS system, prisons will have the ability to track prisoners and secure the location of each. This would be useful for ensuring security in prisons or house arrest when the movement of the inmate is limited. 

Additionally, location tracking provides real-time alerts to prevent jail groups from forming, which can enhance the safety of staff and detainees. Based on movement patterns, prisoner information can be used by staff to distinguish which detainees tend to move together in groups, forewarning them of potential or impending incidents.

Industrial & Logistics

The RTLS provides a complete overview of the entire process and product flow as well as the ability to locate the product at any given point in the process.
The RTLS provides a complete overview of the entire process and product flow as well as the ability to locate the product at any given point in the process.

The RTLS provides a complete overview of the entire process and product flow as well as the ability to locate the product at any given point in the process. RTLS facilitates this at the production, storage, and distribution stages. It is further possible to identify what they came in contact with if the location of products also includes substances contained within the entire production process.

The use of RTLS in a factory or warehouse reveals the benefits of effective production management and supply chain management. The user has access to up-to-date information on the location of a given product and can therefore manage items in real-time thanks to proper integration with ERP or WMS systems.

RTLS technology improves inventory management for manufacturers, allowing them to maintain more efficient factories and warehouses. Real-time alerting enables companies to ensure that their equipment is well maintained, thereby reducing the total cost of ownership.

Automotive & Assembly

Also in the automotive industry, RTLS can be used to enhance business processes.
Also in the automotive industry, RTLS can be used to enhance business processes.

Also in the automotive industry, RTLS can be used to enhance business processes. By using a real-time location system, processes can be tracked in real-time to provide the 3D locations of cars and tools. This eliminates the need for barcode scanning and improves efficiencies and quality throughout the assembly process.

This real-time tracking of cars on the production line allows for easier management of their positions so they can be moved forward. This may also be a useful way to identify problems: alerts can be set up for vehicles that have not moved for some period of time or that fail to meet set performance metrics. 

This can be sufficient to address a minor issue before it becomes more complicated to treat as it impacts other workstations later on. 

By avoiding delays and failing to prioritize certain orders, general plant efficiency becomes enhanced. And it is essential for warehouses and production sites to keep track of inventory and components that are located throughout huge facilities. RTLS just makes it easier.

Other industries

However, the potential benefits and uses of RTLS aren’t restricted to just a few industries; they are almost unlimited.

RTLS in the times of Covid-19

Achieving automation of processes through RTLS is a significant step toward optimizing hospital resources. It speeds up a medical organization’s ability to deliver care and enhances productivity.

And this became even more important in the light of the coronavirus pandemic. 

Covid-19 has left a lasting impression on healthcare, both during the pandemic and as a consequence of it. Healthcare institutions have returned to provide some non-emergency medical care and regular checkups, but they must remain attentive to coronavirus activity nevertheless. 

Healthcare has already been using IoT technology in some way, especially with regards to technologies that give accurate location information. Real-time location systems (RTLS) are also making other healthcare management areas a little easier to navigate. 

With the ability to track medical equipment within facilities, it is possible to reduce the costs and time associated with their manual search, loss, or even theft. Additionally, thanks to the effective management of beds and equipment, hospitals are able to manage their resources better.

An additional solution is to find out who has been exposed to Covid-19 by tracking contacts in real-time so that the number of cases of infection can be reduced. The same is true in terms of tracking high-risk patients and keeping them protected against a pandemic.

Additionally, an RTLS can allocate human resources efficiently, ensuring that each department is properly staffed to provide patients with top quality, prompt care.

Over to you

Businesses across different industries can utilize RTLS technology to improve their processes. The primary purpose of RTLS applications is to improve operational processes, workflows, security, inventory management, or some combination. In addition to well-known industries such as e-commerce or logistics, RTLS is making waves in prison systems and non-standard leisure businesses. A variety of factors can cause an organization to face challenges such as resource waste, errors, and even potential employee accidents. Real-time location services can help solve these issues. There is much more to it than just a trend to watch.

The most common features offered by sportsbook app

One common goal should be behind every sportsbook app: to build traffic, engagement, and ultimately revenue. In order to do so, each sportsbook app should offer a variety of features to appeal to new users and make current users loyal and engaged.

Without further ado: below you’ll find a list of must-have features for users of sportsbook apps.

Betting menu 

The more, the merrier. That rule applies here too. Betting menus should be:

There are numerous sportsbook apps available that support various leagues, divisions, markets, and sports. In addition to betting on the Premier League and Serie A events, more popular sportsbooks offer to bet in less popular divisions. The higher the number, the more advanced the app is since data for subsequent leagues has to be bought.

Also, the higher the number, the greater the possibility of attracting more players (who, for example, are familiar only with a particular league or sport or would like to bet on their favorite team which plays in a lower division). Therefore it’s important that sports betting apps provide a clear division between countries and leagues, along with multi-level nesting. An app for a sportsbook should also offer features for personalizing a betting menu, like marking a particular team, league, or market as a favorite. The user can then receive an alert to bet on a particular team or set of games in the near future. 

Betslip 

There are a few features that can and should be offered here. First of all: single and multiple bet slips, or, depending on the implementation, single and combo bets. Users should be able to bet both on a single event as well as on a group of events or matches.

The expected cashout should also change if there is a modification in the odds or stake when placing a bet. 

And even though this option is not used by everyone, the bet slip should also be allowed to be paid from a virtual wallet that is topped up by the user. If there’s an option to complete the whole process – from researching options through placing the bet, to paying for it – the possibility of delivering a great experience is high. It’s even higher if it comes across with an option to bet on multiple events, markets, and leagues with a single click, without jumping between tabs and bets. 

Latest news listicle

Not everyone enters a sportsbook app with the intention of betting on a particular game. Many people may be looking for options to bet on anything with good odds. That’s why it’s worth adding a list of the most important sports events in-app so users can get familiar with what’s going on and plan to place their bets. 

The news can concern not only the odds – and later the scores – but also rumors from the changing rooms, information about injuries or predictions, as well as premium interviews. 

sportsbook app latest news listicle
Many people may be looking for options to bet on anything with good odds. That’s why it’s worth adding a list of the most important sports events in-app.

Statistics

Personalized and dynamic statistics in a sportsbook app can drive a lot of traffic to it. They should be adjusted both to advanced gamblers as well as to people who are only taking their first steps in betting. That’s why statistics should include not only basic changes in odds but also the trend of changes over time.

The more statistics the better, however, users should be able to filter them out and only follow those which are most relevant to them. The ability to customize the dashboard may enhance the likelihood of conversion and shorten the process.

Some of the selected features could be:

Another analytical feature that should be accessible in the dashboard, yet is often neglected by sportsbook app creators, is trackers. They show dynamic statistics about teams and players in a particular game, as well as game statistics and historical data. This may consist of the history of fixtures between two teams, form over the last 5 games, injuries, clean sheets, or absences. Data such as this can assist users with placing their bets or even encourage them to actually consider betting even if they didn’t already intend to. 

Rewards highlights 

To appeal to your potential audience, you should offer rewards and custom promotions based on user behavior. Promotions should be accessible in a preview, without having to open a full tab dedicated to it. 

The app should include an advanced mechanism for setting up promotions and bonuses for users. The more options, the most attractive the sportsbook app is, ultimately bringing more attention and users.

Rewards may help the app get some real traction. The bonus options depend on the app’s maturity, audience, and available budget. While seasonal rewards and boosted odds are fairly popular among sportsbook apps, as well as first no-risk bets or cashback regardless of the score, there are more possibilities too.

Theme & odds settings 

There are more elements that could contribute to the success of a sportsbook app and its overall customer experience. It doesn’t have to be strictly about bets and odds, either. Design and usability are crucial to the user experience.

From the point of view of design, offering the option to smoothly switch between dark and bright modes can be greatly welcomed by many users. That’s only one of the toggles and switches a sportsbook app should offer. Another one may concern decimal, fractional, and American odds settings, making betting easy to understand (and pursue). Also, it’s worth checking out how the application appears on different devices and in portrait or landscape orientation. A seemingly small and simple thing can sometimes aggravate users the most.

Embedded affiliate programs

From a technical point of view, it’s possible to code some affiliate programs into a sportsbook app. It is possible to embed a mechanism to generate dedicated referral links that bring money to both the new user and the person who referred the app. 

There may be a few bonus schemes to follow. For example, an X% bonus or a proportion of bets placed by the person who generated the new signups via their link. Sign-up bonuses, as well as first-deposit bonuses, can be generated for new users whose attention is attracted by such a link.

Affiliate marketing can be a breeze in many industries, and betting mobile apps are no different here – referrals are effective at generating many users for little effort and at low cost. Before the coding begins though, it’s necessary to examine the legal aspects of affiliate programs on the market which the app will address. Affiliate marketing depends on the chosen market and license. 

Notifications system 

Notifications drive traffic to a sportsbook app once it’s not used, and in-app messages can push users to react quickly once they are using the app. Both solutions can be extremely beneficial and efficient when it comes to driving more attention to the app to ultimately take more bets and generate more revenue.

Here’s what can be implemented: 

Notifications system features
Notifications system features

They can serve as communication channels with betters, but all of them in different dimensions. While some of them will do their magic while gamblers use the app, others will only provide results when users are offline or even when they have uninstalled the app. All of these elements can inform about new offers, remind them about bets ready to be placed in their bet slips, and redirect to the app for details.

In turn, it’s all for increasing customers’ lifetime value and revenue. 

The more customized a notification is, the greater the chances of it working are. If they refer to a specific event or location, they may encourage users to place a bet (if the rest works well too – we’re talking copy, offer attractiveness, and UX here).

Social media integration

We have already covered the importance of social gaming in our previous article. How can sportsbook app creators leverage it?

By providing a fully functional set of features to involve social media in betting. The most effective ways are often the simplest way – as simple as adding a “share” button to the app. With such a button, users can quickly share their odds, scores, or winning bets directly to social media. And this way, others (both frequent gamblers and those who are not into betting… yet) can get inspired and give it a go next time, too.

Social media, then, is a good way of driving more traffic and users to the app, so that option should not be ignored when designing it. Once implemented, social media can be an effective promotional channel driven by the users themselves.  

Going the extra mile may be nothing but beneficial here, and make the app stand out from the crowd of sportsbook apps that look like peas in a pod. For example, implementing a chatbot that gathers bets and effectively informs about the progress may be one idea to consider.

QR codes and promotional codes

No one is going to use a sportsbook app if it’s not properly promoted. And, especially among fierce competition, the promotion needs to be thoroughly planned at the stage of coding and designing the app. 

This includes not only online promotional channels but also offline ones that may help users find the app. For both cases, though, promotional codes are something to apply. 

Sportsbook app offline traffic sources
Sportsbook app offline traffic sources

And here’s where to redistribute them:

There can be either a promotional code (e.g. START15) or a promotional link (abc.dyz/downloadNOW) to follow, but QR codes are equally popular and can trigger the instant download. Especially now, in the world of 5G and fast connections, scanning a code and downloading an app only takes a jiffy. It is also more convenient to scan a QR code than to manually write out a long link or complicated code.

It’s also worth mentioning AppClips here. What do we mean? From iOS 14 onwards, generating so-called AppClips is enabled. AppClips allow for generating a dedicated code similar to a regular QR code. By scanning it, users can open a part of the mobile app without downloading it on their device. Thanks to that, users can be encouraged to give a particular sportsbook app a try without dedicating too much time or drive space initially. They can browse through leagues, bets, and odds and if they like the interface and functionality of the app, they may decide to download the full version and keep betting.

Of course, using all of those features is also dependent on the actual law and legal restrictions concerning each and every market you wish to enter.

Help center

It’s often forced into code by law but is also considered a helpful asset for thousands of gamblers around the world. A help center should consist of:

Over to you

Does a sportsbook app need to have all these elements in order to be successful? Not necessary, but they are encouraging. Our list can serve as a checklist of features to take into consideration when designing a sportsbook app, or when outsourcing this process further to a software development company such as Crustlab. We’re happy to help!

Designing an international gambling web app. Which solution to choose?

If you’re considering running a gambling web app, you will sooner or later face the dilemma of what software solution to choose. While for established and experienced operators the answer to this question is simple, many newcomers need to first research the choices and their pros and cons.

Luckily, the gambling industry is prepared to welcome all kinds of operators; those who just want to start things rolling with a minimum commitment and budget and those who aspire to create something big.

Let’s break down the three most common software solutions to create a gambling web application: White Label, Turnkey, and Custom Software.

White Label, Turnkey and Custom software – an overview

Let’s begin with a short glimpse of what these three types of software solutions are, starting with the one that is the most accessible entry coupon to the online gaming industry.

White Label is a solution where all key components, such as the software, license, or payment methods, are provided by an external supplier. You get a ready-to-launch gambling platform, with customer service and technical support included. You can compare it to running a franchise like 7-Eleven or McDonald’s: you pay for a bulletproof infrastructure, but you’re limited to the provider’s standards. White Label gambling apps are often referred to as „off the shelf” solutions.

Turnkey is similar to White Label in the way that you’re provided with a ready-made platform. The difference is that you get full rights to modifying and optimizing it within the given system. You can create your designs, but the range of customization is limited to the Content Management System (CMS). Unlike White Label, you need to manage licenses and compliance reporting on your own.

In contrast to the previous two, Custom Solution is a fully independent way of building an online gambling app. You’re not limited to any platforms’ features or designs, and you’re fully responsible for managing the licenses and legal compliance of the brand. Custom casinos, sportsbooks, iGaming services, and other gambling products are either created with in-house IT teams or gambling app developers like ourselves. Custom platforms’ operators have unlimited levels of personalization, as well as full ownership of user data.

Pros and cons of White Label

Let’s break down the most significant advantages of White Label solutions. The first one would be a quick, cheap, and effortless launch. You don’t need to deal with any of the issues that operators using different solutions do. All the necessities to launch a fully functional platform, both technological and legal, come at a price. 

Not only is the launch more accessible, but so is maintaining and managing White Label. In most cases, a third-party provider will supply you with all but marketing support, so acquiring new players is your only point of focus. You can narrow down your scope of work to just one thing and do it right.

On top of that, White Label is cheap. Or, let’s say, relatively inexpensive. It’s the most cost-effective way to enter the gambling industry. All the money that with Turnkey or Custom software you’d spend on getting a license or hiring developers, you get to invest in promoting the product.

On the other hand, such products are usually billed on a subscription system, and with a large number of players, the cost of it exceeds the cost of creating custom solutions in the long run.

Additionally, with White Label you get the ease of launch in exchange for customization freedom. This is a huge disadvantage for those who crave creating something unique. 

Limited flexibility in design or product development is not the only curb that you will face when engaging with White Label solutions. The price for a „ready-to-go” product is limited earnings. The revenue share may vary depending on different providers, but you can assume that around 50% of the profit will go to the third-party’s pocket.

Finally, because White Label solutions are ready-made, you enter a highly competitive market, where similar operators compete for the same audience. Without market differentiators, you can’t create your niche of players, nor you can establish a unique position in the industry.

Pros and cons of Turnkey solutions

As an intermediate solution between White Label and Custom, Turnkey allows you to market your gambling web app faster than if you were to do it from the ground up, but far from „here and now”. You need to take care of a couple of major things, such as custom designs or licensing, and they are both time and money-consuming. 

The above argument follows that you’re allowed to customize the platform entirely but within the given framework. In most Turnkey agreements, you become the solution’s owner, but it’s a standalone solution nonetheless. You could compare it to a Lego set: you can build whatever you want from the pieces, but you’re still forced to use them as the building material.

Finally, depending on the agreement, the Turnkey solution provider usually charges from 10% to 30% of the revenue, so you get most of the profit share, but not all of it. You do own the platform, but the third party that provides it will typically charge you a monthly fee or a share in the revenues.

Pros and cons of Custom Software solutions

Let’s take a look at custom gambling web apps. The first and foremost advantage is unlimited business potential, coming from unlimited customization and personalization. You’re entirely on your own, and no provider or any other third party can decide about your web’s feed and limit your scalability or marketing efforts. You have total freedom of modifying the platform and adapting it to your needs.

Unlike off-the-shelf solutions like White Label or Turnkey, you can create your own unique gaming experience too. This is a crucial factor if you want to succeed in the highly competitive market that online gambling is. It’s easy to fall into the ocean of similar web gambling apps fighting for the same pool of low-potential players. With Custom Software, you’re the one who can make the market adapt to your software, not the other way around.

Finally, as an independent operator, all revenue stays in your pocket. Once you establish the website, you don’t have to cover any platform-related costs from agreements with third parties. 

The fact that you own 100% of the product comes with risks too. The major disadvantage of a self-serviced gambling web app is the high initial cost and the longest time to launch compared to other solutions. Custom gambling web app is a long-term strategy, which requires a specific budget and time-to-market. 

You can’t create a custom solution without a team of IT experts either. You need to recruit, manage and maintain a team of developers, or hire an external provider who will take care of the technological development. 

Gambling web app – choosing the right solution

Gambling Web App solutions
Gambling Web App solutions

Having mentioned all the above advantages and disadvantages of each software solution, we can point out who will benefit most from which.

White Label solutions are designed for those who are looking for a low-risk, low-reward business model. If you want to enter the gambling industry quickly, with a minimum commitment, and your budget is not enough to cover the costs of a dedicated solution, White Label will fit you best. You don’t need to invest much money or time to verify your business assumptions, but you can’t expect a significant outcome either. White Label is a hit-and-go strategy. 

Turnkey software will suit best those who value independence within a limited framework. You might already have sufficient capital to maintain a team of developers but not big enough to create something from scratch. If you’re aiming for an independent web gambling app, and you’re okay with its fundaments being built by a third party, then Turnkey is your choice. 

Custom software solutions will cover the needs of entrepreneurs who want to leave their gambling industry footprint. If you’re going to achieve big things and bring unique value to the world of iGaming, then you should consider going for a fully self-serviced solution. You need sufficient funds to create a platform that is tailored to the needs of the market and your expectations. That option is the most expensive, but it would make it possible for you to dominate the market when done correctly from the design and the technical perspective.

Summary

Being software developers ourselves, custom solutions are our favorite in this race. What we learned from delivering more than ten gambling projects and working with the best companies in the industry, they are the most significant way to achieve big things. 

The fact that you aren’t limited in any terms, be it customization, scale, or revenue, allows you to unlock your full potential and create a unique gaming experience, that will differentiate you from the competition. 

We don’t depreciate White Label or Turnkey solutions, however. They serve their role to those with a limited budget or lesser business aspirations. Not everyone craves complete independence either, as it comes with more responsibility.

If you hesitate in what way would be best for you in particular, feel free to reach out to us. We’d happily share our knowledge with you and help you choose the best solution, whether it’s White Label, Custom, or Turnkey.

Google allows gambling apps in multiple countries

Starting 1st March of 2021, Google made a critical move for the world of online gambling. They allowed gambling apps in the Play Store in 15 more countries other than the United Kingdom, Ireland, France, and Brazil, where they were already (partly or wholly) legal.

It’s a massive move for many operators and users out of the above countries, who, until then, were forced to distribute or download such apps directly from websites or to use 3-rd party platforms. It led to many inconveniences: users found it harder to find relevant mobile apps and revealed themselves to potential fraud attempts or viruses. Operators, on the other hand, struggled with promoting and maintaining sideloaded apps.

These issues are now gone in 19 countries in total. What are these countries, and what are the new rules that Google applied to gambling apps?

15 new countries where gambling apps are allowed by Google

New Google rules will allow gambling apps on Play Store in the following countries: Australia, Belgium, Canada, Colombia, Denmark, Finland, Germany, Japan, Mexico, New Zealand, Norway, Romania, Spain, Sweden, and the United States.

15 new countries where gambling apps are allowed by Google
15 new countries where gambling apps are allowed by Google

Does that mean that you can freely release your online casino in any of those places? Not necessarily. First and foremost, these rules don’t apply equally to all the countries and are massively dependent on national or state laws.

For instance, Google divides gambling apps into four separate categories: Online Casinos, Sports Bettings, Lotteries, and Daily Fantasy Sports. In the least regulated countries like the UK, Denmark, or Mexico, all of these types can be legally published by private and government operators.

In all other countries, you’re limited to just 2 or 3 gambling app genres and some of them are allowed for governmental or charitable operators only. There are a few industry-related exceptions, too: In Brasil, Sports betting is permitted only for Horse racing, while in Japan, it’s limited to horse racing, motorboat racing, bicycle racing, auto-bicycle racing, and soccer.

Google’s gambling apps categories
Google’s gambling apps categories

Among all countries newly welcomed to the gambling environment, the US seems to be most regulated, and restrictions vary state-by-state.

Regular apps and gambling apps on Play Store

Google allowing more countries to publish gambling apps on their store legally doesn’t mean that they’re equal to regular apps in terms of the requirements for submitting, publishing, and promoting them.

The main difference is that publishers need to complete a Google Play application process, where they would ask you to authorize your operator status and your gambling license. You need to confirm that the app complies with all applicable laws for each country it’s distributed and doesn’t exceed the scope of the operator’s gambling license.

What that also means is that even if the app is approved, it will not be available to users in any other country than in the original one. They will have a couple of other unique requirements too. Gambling apps on the Play Store must:

The advertisement for gambling-related apps is regulated too. It’s allowed only if the ads’ content complies with particular policies of certain types of game (complete list here) and if the ad airs in approved countries, doesn’t target minors, and informs about responsible gaming.

Release an Android gambling app in a country blocked by Google

New Google rules are a massive step towards liberalizing online gambling, and there’s no doubt about it. However, it doesn’t cover all of the market’s needs: plenty of Android publishers and players from countries not covered by those policies will have to be looking for alternative ways.

If you live in a country where Android gambling apps are not allowed by Play Store and if you want to release one – feel free to reach out to us. We’d be more than happy to share the ins and outs of how you can do it with the help of social gaming apps and how unregulated markets can come to the rescue.

User retention strategies for better mobile betting app engagement

You came up with a great idea, prepared promotional materials, and launched your app. Now, you have your mobile betting app up and running. 

There’s some initial interest. Quite a few people have downloaded your mobile betting app and even started using it, yet their engagement dropped quite dramatically in a heartbeat.

There may be a few reasons behind it: bugs in your mobile app, unintuitive onboarding, a lack of interest, expectations not being met… or you just simply don’t do enough to engage users in your app. Because one of the biggest mistakes you can make is to focus all your attention on user acquisition, but not care about actual mobile betting app engagement.

And that would be pretty bad.

How to drive mobile app engagement, make your users stick with your app, and drive higher revenue? That’s what we’ll cover today.

Mobile betting app engagement: the nuts and bolts

Research from Apptentive shows that only 40% of customers actually use apps a month after downloading, with only 10% still using them 6 months after and less than 5% a year after.

And what you really want for your mobile betting app engagement is customer retention, even if driving it is nothing but a challenge.

Customer retention in mobile apps
Customer retention in mobile apps

For you to see why we believe in mobile betting app engagement, we are providing you with a number of compelling reasons why doing so can have an impact on your business:

In short: the higher user engagement in your mobile betting app is, the higher your revenue may be. 

And that’s probably something you’re aiming for, right?

How to measure your mobile betting app engagement

Betting mobile app retention metrics
Betting mobile app retention metrics

When analyzing mobile app engagement, there are many metrics to consider. However, we recommend focusing on the ones below:

  1. App Downloads. You should be careful with this one though, as it’s often viewed as a vanity metric if it doesn’t correlate with MAU (see next point). If a lot of people have downloaded your app, then you need to make sure they’re actually using it and implement user retention tactics if necessary.  

  2. MAU – Monthly Active Users. The number of people who have used your betting app over the last 30 days. Therefore, it is a good starting point for your user retention campaigns.

  3. CLV – Customer Lifetime Value. The total amount of money you make out of a particular user before they stop using your mobile app. This is usually measured by the average monthly purchase value per user. 

  4. Session-related metrics: session interval indicates the frequency with which someone uses your app and therefore determines its stickiness, while session duration measures how much time users spend on your app in a single sitting – the longer, the better.

  5. Number of weekly bets – the number of bets placed in your mobile betting app by users on average. It should be shared via Transactions Services or Player Account Management (PAM) systems.

  6. Wagers Volume – the value of bets placed in your mobile betting app.

Knowing what to measure in terms of mobile betting app success, it’s now time to check out how to rock it.  

How to increase mobile betting app engagement

Implement affiliate programs

Many restrictions exist in mobile betting app marketing, including those arising from legal restrictions. Running your own affiliate program is one workaround, though. 

Affiliate programs can assist a mobile betting app with retaining customers and building a loyal community around it. There are increasingly more companies that want to implement referral programs for their own mobile apps, too. 

A betting-related affiliate or referral program should be easy for would-be users to join, but also comply with the business goals. It often requires a combination of user-friendliness and advanced mechanisms in order to be successful. 

And while there are ready-made solutions on the market, they may not meet your requirements in this area. In many cases, it’s better to start with a tailor-made affiliate program solution for an online betting app and customize it according to your needs and updates on the go. 

This may also include sign-up offers. 

For example, offering €10 for a user’s first bet when signing up can be a great method for customer acquisition, but offering an extra €5 on top of that for inviting friends to the app might work wonders for customer retention – and acquisition, too. 

While these mechanisms are quite advanced and complicated to develop, they are definitely worth the investment. 

Make the most of social gaming

Typically, social gaming refers to online games that allow for interactivity between players. And it plays a major role in mobile betting app development – since a mobile betting app is purely about gamification, right? Players not only play within their odds but can also play with others, compare their results, and share them publicly. Users have the ability to spread the word and add others quickly and easily with mobile betting apps that offer easy integration with social media. 

The use of social media for social gaming within betting apps may boost in-app engagement and result in faster user acquisition. 

And that’s not the end yet, since there’s another social element you may want to leverage: sharing the joy, which means betting together.

The importance of peer–to–peer gambling apps is growing – these days, apps like those designed to simulate fantasy sports league play are more popular than ever. They are similar in both concept and execution to private “sportsbooks” that offer the same betting lines available through traditional bookmakers but are limited to a few players. It’s no wonder that the best social betting apps merge the features of a conventional social network with that of a modern betting app. 

This has created a new way to bet through enhanced social interaction. Having a shared experience with the app facilitates stronger ties to the community than people’s separate experiences with their various mobile devices or paper betting slips.

Rewards system and loyalty points 

It’s important to pay attention to two different groups of users the most: loyal customers and new customers. 

Are loyal users the best users? They are very likely to stick to your mobile betting app as well as recommend it to others if they are encouraged to do so. And how to encourage them? Promos like welcome bonuses, free bets, and special betting slips are good for their online betting experience.

And practically every mobile betting app runs such promotions, so if you don’t want to fall behind then you should include them in your app too. 

You should make it possible to claim bonuses, free bets, and other deals for making referrals to the app and generating new sign-ups. There may be higher rewards, lower rollover requirements, or better terms and conditions included in some deals, say for those who spend the most time and money in-app. 

A reward program is what provides fuel for mobile betting apps. 

Users of a mobile betting app who consistently place bets receive these rewards. The bonuses are often redistributed on the basis of “bet more, get more!”, however, this is not a rule of thumb.

Mobile betting apps offer loyalty rewards in a number of ways: some mobile betting apps assign points for losses or the value of a bet. There are also offers of percentage cash back. Another approach is to prioritize their high rollers based on tiers. Every mobile betting app can use a different program to motivate its users.

There are various ways that mobile betting apps calculate points, but typically it is done according to the number of bets placed, the amount of money bet, as well as the type of bet. Those users who accumulate enough points will be rewarded with bonuses at each level. Depending on the tier, one level may offer a higher percentage cashback given to losers and another may reward its members with material prizes or points.

In addition to being a great way to test software and free-roll some bets, rewards are a great incentive to increase user engagement and encourage more frequent betting.

Leverage in-app messages

A smart in-app message that is tailored just right, yet is automated, can be one of the best channels for user retention. And there’s data to back up this claim. With in-app messaging, brands can expect user retention to increase by as much as 74% within the first 28 days of sending such a message. 

In-app messaging is an excellent method for reaching and engaging customers while they are using your app. When used contextually, in-app messaging can be effective even if it doesn’t require immediate action. There are many reasons why and cases were sending such a message can be justified, and even warmly welcomed. For example, your users could simply be welcomed to your app and asked to accept your notifications to gain insights first-hand. They might also be introduced to new features, warned about payment failures, or encouraged to upgrade and upsell. It obviously depends on the user and their willingness to take a particular action. 

For example, if there’s a user who spends a lot of time on your mobile betting app but drops out every time they are about to finalize the transaction, you can send a message encouraging them to return to their betting slip. 

Segmentation and relevance are not the only things you should keep in mind for in-app messages. When crafting them, you need to test out different variations to gauge the effect on different metrics such as conversion rate, click-throughs, and revenue. Targeting also matters: utilize location settings so that advertising messages can include real-time updates. Content should be personalized and sent at crucial drop-off moments. 

Something that is related to in-app messages in an app inbox, especially if users disable push notifications (we’ll cover them later on). It works like an email inbox and lets you send a unified message to all of your app’s users at once. 

For example, you can send a special offer such as a free extra bet for extra time in order to drive mobile betting app engagement and generate revenue.

When delivered to the app inbox, users are prompted to click on an icon to read the message. Of course, not everyone will read every message or react as desired, but chances are that most users would like to have “inbox zero” in the app and so they will click through. However, we wouldn’t advise going overboard with this opportunity and spamming the app inox.

Make the most of push notifications of mobile betting app

While you can send in-app messages to users who actually use your app, push notifications may be what prompts them to return to the app when not using it. 

Players who already bet or show interest in a particular game can still be influenced by app push notifications. They may also help to bring back users who downloaded the app but didn’t make any deposits or place any bets. 

Here’s where timing and relevance are key as well. Sending push notifications to users without context or rationale may cause them to find your messaging intrusive and even uninstall your betting app. Make sure you tailor push notifications to user behavior. 

For example, you could send a push notification to a user who added bets to their bet slip but closed your mobile betting app before placing them. A well-targeted push notification can remind them about their betting slip waiting to be confirmed in the app.

To put this into context, even more, such push notifications could also inform about new odds or include a countdown to a particular event.

You can improve mobile betting app engagement and user retention by creating data-driven sequences of events and triggering messages, in no time.

Utilize email campaigns

Emails aren’t dead – quite the opposite. They can bring back users to your app with triggered, targeted campaigns that are linked with abandoned betting slips or behavior-related updates.

For example, suppose an avid Aston Villa fan used to place many bets in the past but no longer does. In that case, you could remind them about upcoming Villa games and provide special offers for them, thus driving mobile betting app engagement. 

Like with other channels, here messages should be tailored according to user behavior and delivered at the right times. 

If you combine this channel with in-app messages and push notifications, you’ll have a powerful machine working on increasing mobile betting app engagement. 

Use retail touchpoints

Who said that you can’t promote your mobile betting app offline? 

Thanks to QR codes, your potential users can download your mobile betting app in a heartbeat and begin using it in seconds. We’re not talking about putting them on leaflets and redistributing everywhere, but rather about targeted promotion in places where your desired audience is actually present. 

Where can you try your luck with promoting your mobile betting app via QR codes?

This may seem to be rather a customer acquisition tactic, however, you should look at it from a customer retention and mobile betting app engagement point of view. Users acquired this way might be more engaged than those who stumbled upon your app by accident while browsing the App Store or Google Play, right?  

Double-check the legal requirements, though. There are countries in which such promotion is forbidden and against the law.

Don’t ignore social media 

Social media can help you bring users back to your mobile betting app. How? Well, there are at least a few ideas you may want to check out. 

First, you may want to find relevant social media groups where you can promote your mobile betting app. These may be groups for football fans, for example. You could also consider creating a community around your app and involving users in its development from day one. 

Again, these methods may work both for user acquisition and user retention, which can lead to higher mobile betting app engagement. 

And although social media is also excellent for retargeting, you need to be aware of paid promotion limits for the betting industry that make it almost impossible to promote your app with ads. That’s why workarounds may work just well. 

The devil is in the… onboarding

All apps really need to have a robust onboarding process, yet not all of them do. And that may be a killer for mobile betting app engagement. 

When it comes to a betting app, you need to make the onboarding process as simple and intuitive as possible if you want users to make deposits and place bets. Because of this, user onboarding is important not just for their first in-app steps, but also for customer retention. 

You should include multiple registration options, including social media logins, to shorten the customer journey for creating an account or signing up.

Introduce users to app features throughout the onboarding experience, but find the right balance. Don’t be too heavy-handed with the advice, and don’t overwhelm with too many onboarding steps. 

Over to you

When it comes to mobile betting apps, user acquisition is not the only challenge. User retention is even more crucial for increasing mobile betting app engagement since it’s a real indicator of whether you are driving revenue or not. Make sure that you reach your audience with an omnichannel approach and by providing a seamless user experience. 

To do so, work on a marketing strategy but also take into consideration how your mobile betting app is built, what features it offers, and how it could be improved. 

If you need some assistance, don’t hesitate to give us a shout and we can work on your betting system development together!

Software testing tools – Cypress.io vs Selenium comparison

Software testing is a part of the quality assurance process. The mentioned process consists of verifying by software testers all the functionalities implemented by developers work correctly. Based on that, testers provide information on the software quality and detected errors. Such an approach allows to identify errors, detect gaps and deficiencies in the requirements that must be met by the software. Software testing consists of verifying that all the functionalities implemented by developers work correctly. How to automate this process? The right software testing automated tool is the answer. But which one is right for you? Read this article to decide.

Why should you use software testing? 

What are the types of software testing? 

What are the benefits of software testing? 

Although software testing is an activity that requires additional effort and knowledge of specific tools, it brings excellent effects. They should be performed because you need to make sure that the user will be able to use the functionality offered by the mobile application or web software without any problems. Besides, they check whether the system will react correctly after performing specific actions. And what will happen if the user enters incorrect data or does not enter them at all. There are a lot of scenarios that need to be checked. Software tests are also a kind of documentation because each should be described appropriately and informs what it should do and how the application should react to it. 

What is automatic software testing?

Automatic software tests of an application are based on programming and using specific scripts. Such type of software testing is much faster and more reliable than manual testing because in less time more errors can be detected. A significant advantage is also the repeatability of tests. 

The disadvantage of such testing is the risk that the UX/UI design evaluation won’t be accurate because it isn’t checked by a human but by a computer. The scripts work only as programmed, which can miss apparent errors to an experienced manual tester.   

What is Selenium and how it works?

Selenium is an open-source software test automation tool. It is used to automate web browsers. The tool has been in the market for over a decade. It helps development teams provide quality test case automation for any browser using the Selenium WebDriver library. 

To use Selenium for software test automation, you need to download the driver for the browser of your choice: GeckoDriver for Firefox, ChromeDriver for Chrome, and so on. Selenium offers QA teams and developers a programming language choice because it is compatible with the most popular languages such as Java, JavaScript, C, C#, Ruby, and Python. 

The Selenium WebDriver relies on the JSON wire protocol for test case execution, which can be completed in three simple steps:

This leading test automation solution has served as the backbone of common test frameworks such as WebDriver and Protractor, in addition to testing frameworks like Appium, which is designed for mobile apps testing. It is this element of flexibility that, over the years, has positioned Selenium as a prominent enabler for automation in-browser testing.

Advantages of using Selenium:

Disadvantages of Selenium:

What is Cypress and how does it work?

Cypress is a JavaScript framework primarily for an end to end software testing.  

The Cypress’ idea is gathering all necessary tools like framework, assertion library, wrapper, or additional libraries into one tool.

Cypress offers a test runner (opensource) and dashboard function. The test runner allows you to view your tests’ status, preview your logs, preview your application – what is currently happening with the application, and how it behaves.

Advantages of using Cypress:

Disadvantages of using Cypress:

Selenium vs Cypress: better or different software testing?

Selenium WebDriver was created to perform regression testing for web applications. This tool is widely used for front-end testing by quality control teams. The concept of self-testing code by front-end developers is relatively new. This trend was started by the emergence of agile software development methodologies, which cannot be used optimally until frontend developers have the opportunity to test their code. 

Today, front-end developers can write their test code along with integration testing and end-to-end functional testing to evaluate the functionality of their front-end projects in real browsers. 

The parameters tested by front-end developers are similar to quality control parameters if their needs and goals are different. Front-end developers don’t need a transitional environment in which the entire application is deployed. 

Cypress was created for such needs. It was built specifically to meet the software testing needs of front-end developers. It allows them to test the frontend by running it locally. This is the main difference in testing approaches that distinguishes Cypress and Selenium WebDriver. Therefore, they are different tools for different user groups. 

Supported language

Another key difference when comparing Cypress to Selenium is that automated tests in Cypress can only be written using JavaScript while Selenium is an open-source tool and is compatible with many programming languages such as Java, JavaScript, C#, Python, Ruby. 

However, we shouldn’t count this argument as a limitation to using Cypress because it is primarily intended for front-end developers. JavaScript is a widely used front-end development language worldwide so the tool can be accessible to a broad user base in the target audience. 

On the other hand, Selenium is a comprehensive regression testing tool. It has an API configured with various related languages. Its versatility makes Selenium a more suitable choice for QA teams whose work scope is broader and more diverse. 

Software testing Frameworks

Cypress is not only limited by the programming language but also by the framework we can use. It is Mocha, which is used to write tests. Its role can be compared to JUnit in Java. However, it is not the only testing framework for JavaScript programmers as there are also Jest or Tape but Cypress, unfortunately, excludes those options.

On the other hand, Selenium WebDriver does not impose such restrictions for its users. You don’t even need a test framework when automating tests with Selenium. We can run tests by writing a program that controls the browser. 

Server Mocking

Cypress is user-centric and assumes that a real back-end most of the time may be redundant for front-end developers, so Cypress can be a faster alternative compared to Selenium because it has a server mocking feature. Developers work with mock XML HTTP requests to the server to speed up the testing process.

Mocking the server responses with Selenium WebDriver is also possible but the process is more complicated. To accurately mock server responses with Selenium, a test needs to run a mock server that returns the right responses.

The built-in server mocking feature is a more comfortable and more efficient way to perform the same process. 

Browser Support

Currently, Cypress is only compatible with Chrome, Firefox, Electron, Edge, and Brave. It does not work with Internet Explorer or Safari. It also lacks multi-tab support and cannot control more than one browser at a time. 

Selenium WebDriver has no such limitations and can test applications in Chrome, Internet Explorer, Safari, and mobile browsers. 

Summary

Cypress and Selenium are designed to automate web browsers. They differ slightly in their purpose, target user base, and architecture. Also, keep in mind that Cypress is a new tool, still developing and improving while Selenium is already an established tool in the field of automated software testing. 

Which one to choose depends on specific user needs. For JavaScript developers, Cypress is a great solution. For automating code testing on different browsers, sometimes even simultaneously, Selenium is a better choice. 

Why is headless CMS the future of web development? Comparison of Headless CMS systems

The growing number of headless CMS systems encouraged me to dive into the topic and present my experience in CMS systems for web and mobile development. Before we go through all the pros and cons of this approach to managing content, it’s a good idea to explain what headless CMS is.

What is the headless CMS?

A lot of customers are electrified by the “headless CMS” buzzword. I didn’t find the phrase origin but the meaning can get across very easily. The old well-known CMS systems (AKA coupled CMS) consist of two main layers: the admin panel – where an editor can add some content and the UI part that displays the content of the website. According to Wikipedia, the term “headless” comes from chopping the head off the body. In this context “head” is a frontend part of the app and the “body” is a backend part. So headless CMS is a system that contains only the backend part. There is no graphical interface that represents the content entered by an editor to the admin panel.

Traditional CMS vs. Headless CMS comparison chart
Traditional CMS vs. Headless CMS comparison chart

Headless CMS doesn’t have a graphical interface

Now you are probably thinking: why the heck do I need a CMS that cannot display any information to the user? At first glance, a headless Content Management System looks like an unfinished project. Actually, it’s not. This new (old) approach to the CMS lets us resolve one issue that occurs frequently. What if I want to build my back-end and front-end sides of the app in different technologies? Now it’s possible. You can grab your favorite frontend framework and just consume the content from the headless CMS API.

Why is WordPress not always the best choice for my website?

First of all, WordPress CMS is a great Content Management System. Both huge companies and small businesses decide to use this solution. The number of plugins and the project’s maturity make it the first choice in case of choosing a platform for a wide variety of the company’s websites. Dozens of available themes and optimization for SEO are the most important factors why WordPress is chosen as a solution for landing pages and blogs. Definitely, it’s a fantastic tool from the editor’s perspective.

On the other hand, WordPress is a vast CMS not only from the editor’s perspective but also from the development team. Do you really need all these features on your simple landing page? What if you want to use different technologies on the front-end side? WordPress is a monolith project. As I said earlier, the backend and front-end sides are strictly coupled. There are a bunch of cases where a monolith architecture is not the best choice. Let’s imagine that you want to implement a landing page for the app. Your app is written in React but you also need an editable landing page. So if you are going to use WordPress, you need to move your branding to totally different technology and write all your components once again. Additionally, every time you change something in the app’s header or footer, you probably need to do the same on the landing page because you want to be consistent across the whole app. There are probably a number of workarounds that help you omit the above problems but do you really need a workaround? What about using headless CMS in such scenarios?

What are the pros and cons?

Pros

Cons

Which solution should I choose?

Suppose you want to choose the best solution for your business. You need to consider a couple of things. First of all, do you want to host your system on your server (Strapi, Ghost), or do you want to use a cloud solution (Contentful, Sanity)? What functionalities are you looking for? Do you want headless CMS to create posts on your blog, or need a more advanced system to store data in relations? How do you want to return data to your frontend app? Do you want to use REST or GraphQL? Below you can find a quick overview of the most popular solutions.

Headless CMS comparison
Headless CMS comparison

Strapi

Strapi is a self-hosted, database agnostic, open-source headless Content Management System. This CMS supports both SQL and NoSQL databases (PostgreSQL, MySQL, MariaDB, SQLite, MongoDB). The Admin panel looks like a customized DB client. You can create tables, add relations, and adjust responses to your needs. It’s a great choice if your application requires mostly CRUD operations.

Ghost

Ghost is a modern publishing platform. It’s the right choice for news apps or blogs and the post entity is the primary data type. You can create drafts/ schedule your publications and even inject custom code to your site’s header and footer directly from the admin panel. The ghost text editor supports Markdown. There is an option to embed cards from e.g. YouTube or Spotify but also create custom HTML elements. You can organize your content using tags. The platform automatically generates RSS feeds for collections, tags, and authors’ archives. A lot of SEO aspects have been implemented directly into the core – usually, there is no need to use external plugins. You can add an alt attribute to images and link tags to the RSS feed. Additionally, there is an option to customize metadata separately for every post.

Contentful

Contentful support real-time team collaboration. The text editor has a feature called “Rich Text Commands” – it lets you quickly embed entries using a command panel without leaving the editor context (you just need to type “/”). All your content is served via JSON API. Contentful supports versioning – there is a way to revert content to the previous version.

Is it the right for my company?

In my opinion, headless Content Management Systems are the future of web development. The popularity of omnichannel solutions changed the way we have to think about content management. Coupled CMS systems like WordPress are no longer the best choice if you want to use the same backend for both web and native mobile apps. When it comes to making a decision, you should ask yourself: Do I need to create my digital product for web and (native) mobile? How often would I need to change my website? Am I going to reuse the data in other products? Do I need a complex CMS system?

I fully realize that the choice is difficult. The best approach would be to ask a partner with technical expertise to support you in making such a dissection. We are always happy to help you!

Top 10 Web Development Frameworks To Consider In 2021

The knowledge of HTML and CSS has invariably been the basis of web development for years. These skills are still essential, but as in every modern programming technology, things have been covered by a higher level of abstraction to give developers tools that would let them create better software in a more performant and safe way. There are many frameworks designed to support web application development. But what exactly is a web development framework? It is a solution that helps construct internet applications and functions according to the architectural rules of browsers and mostly HTTP communication protocols.

Frameworks or development libraries are nothing more than packages or collections of programmable solutions and programs that help develop an application. Thanks to the framework or library, developers could easily use web resources and APIs to build web services. As a result, development time has been significantly shortened by, for example, facilitated everyday activities performed in web development compared to the standard way of building and deploying web applications. Most frameworks have their own libraries enabling access to the database, which contains information about the structure of the templates used, and session management. It can be useful in both cases, dynamic websites, and static websites.

Typically, frameworks act as an extension of the capabilities of a given programming language or a tool or a set of solutions for an application of a given type, e.g., CMS, mobile development tools, or web application.

The following statistics are the best proof of the popularity of the usage of frameworks and development libraries:1,850,673 detections of frameworks in the Top 1 million sites from around the world – according to BuiltWith,

the total number of React downloads in the last two years exceeds 6 million. For Vue and Angular, this value is over a million downloads – according to Tecla,

in 2018, almost 80% of the surveyed developers declared that they use or want to start using React, over 70% with Vue, and over 30% with Angular – according to stateofjs.

If you work as a programmer, you certainly use various frameworks on a daily basis, and you are familiar with the subject of this article. However, it is possible that you are just starting to be interested in this topic or are looking for additional information that will bring you closer to the world of web development frameworks. If so, below is a list of the top web development frameworks that will rule 2021.

React JS – a JavaScript library considered as a web development framework

React JS is not a frameworkAs per its official website, It is a Javascript library for building user interfaces. Although it is not a framework, many developers consider it as a framework.

React was developed by Facebook and maintained and supported with the help of a community of individual developers and companies. Facebook and Instagram applications use this library, so it is understandable that React is that popular.

Fundamental concepts of React are declarative programming, component-based, Virtual DOM, and it could be used in NodeJS or mobile apps as React Native.

Thanks to React’s decorativeness, simple views will be rendered efficiently, i.e. only when the data changes. The process happens with Reconciliation. Moreover, it improves code predictability.

The component-based approach builds encapsulated components that manage their state and make a composition. It could be easily used by passing data through the application without involving the DOM.

According to hotframeworks.com, interest in React has been growing steadily since 2016.

Vue.js is one of the newest and most popular frameworks in web development.

It is known as a progressive framework for building user interfaces, which means that it could be used in small parts of a project without any problems.

Also, Vue.js could act as the primary and only front-end framework in web development. The framework has specific libraries that provide functionalities to build the application in just Vue.js.

Vue.js’ main concepts are the Component system, Two-way binding, and the same as React – Virtual DOM.

The component system is one of the main concepts in Vue.js. It provides the possibility to build large-scale applications with reusable, self-contained smaller components.

Two-way binding is supported, which reduces the complexity of keeping user input consistent with the application data model.

Unlucky, this framework is not supported by significant commercial communities like React or Angular. However, Vue.js’ popularity in web development is continually growing, so it will be a big chance for some more prominent companies like Google or Facebook.

According to 2019.stateofjs.com, the use of Vue.js among developers worldwide increased by as much as 33 percent from 2016 to 2019.

Angular – an application design framework and development platform

Angular is an application design framework and development platform for creating efficient SPAs. It is developed and maintained by Google.

The main concepts of Angular are components, templates, directives, and dependency injection.

Components are basic UI blocks of an Angular application. The application contains a tree of components. Also, a component is a subset of directives, which is always associated with a template. Only one component can be instantiated for a given element in a template.

The template is an HTML section that could be included as part of the browser’s displayed page.

Directives are markers on a DOM element (attribute, element name, CSS class, or comment) and tell Angular’s compiler to attach particular behavior to this element in DOM or even modify this element and its children in DOM.

Dependency Injection is a software design pattern in which one object receives other objects that it depends on. In Angular, an injector subsystem is responsible for creating components, resolving their dependencies, and providing them to other components if needed.

Angular occurs as AngularJS framework and Angular 2, but they are separate entities.

Express – a trendy framework used in back-end web development

Express is a prevalent framework used in back-end web development. The framework is a minimal and flexible Node.js web application framework that provides fundamental web application features without limiting Node.js.

The main features of the express are Routing, Middlewares, Templating, and much faster server-side development.

Because of the minimalism of express, some developers implemented many middleware packages that solve almost every web development problem.

Besides that, Express is based on Javascript and is chosen by many developers who want to keep their back-end applications at a high level of development.

Spring is the most popular back-end web application framework in Java.

This framework offers an extensive development and configuration pattern for the latest Java-based enterprise applications on different deployment platforms.

The framework is used not only in big complex projects in the biggest companies but also by individual programmers who want to create scalable web applications.

Spring has many useful features, but the most powerful are dependency injection, events, data binding, and resources.

Dependency injection is a pattern through which to implement IoC, where the control being inverted is the setting of the object’s dependencies.

Events in Spring are by default synchronous. It means that the listener can participate in the publisher’s transaction context.

Data Binding is useful for allowing user input to be dynamically bound to an application’s domain model.

Aspect-Oriented Programming (AOP) separates cross-cutting concerns from the business logic of the application. For example, it could be used in logging or security.

Django – a high-level Python Web framework

Django is an advanced web framework based on Python programming language that relies on fast development thanks to a clean and practical approach to the design. Its creators are experienced programmers who were aware of most of the most common problems related to web development, which is why the framework they created is a response to well-known needs. This allows you to save time and focus completely on writing the application.

Django is fast, fully loaded, reassuringly secure, incredibly versatile, and exceedingly scalable.

Companies and organizations of all sizes use Django in a variety of ways. This framework is useful when building science platforms, content management systems, or other applications.

Laravel is a PHP framework that became popular in a short period of time. It helps to create web applications more shortly and easily.

Laravel is extremely easy to use. Some amenities help develop apps from scratch with the database, security, and testing sections.

All that is needed to start is for the Composer to manage its dependencies. After a specific setting configuration, the application is ready to make some changes without implementing basic authentication or DB connection.

Laravel has many built features like authentication, template engine, database migration system, a command-line tool called Artisan.MVC architecture is also supported, which means that it helps separate business logic and presentation layers.

Rails – a web app development framework written in the Ruby programming language

Rails – a framework for web app development that uses a specific programming language – Ruby. It is designed to make programming web applications more accessible by making assumptions about what every developer needs to start. It allows developers to write less code while having more features than many other languages and frameworks.

Rails only have two major principles :

Also, Rails was implemented in MVC architecture, the most famous architecture in the back-end side of web development.

Flask – a micro-framework written in Python

Flask is written in Python and is known as a micro-framework because it does not need any specific tools and libraries. There is no database abstraction, verification of correctness of forms, or other components, but it operates extensions that could add some functionalities like Flask.

Flask aims to keep the core extensible but straightforward and does not force anything particular, so this framework could be everything you need and nothing you do not.

Besides Flask is a micro-framework, it is used in applications like LinkedIn and Pinterest.

Symfony – a PHP web application framework based on MVC architecture

Symfony is a PHP web application framework based on MVC architecture and a set of reusable PHP components and libraries.

This framework’s main advantages are that it is one of the fastest PHP frameworks and allows developers to code in the Object-Oriented Programming paradigm with the possibility to use sessions.

Additionally, Symfony uses a scaffolding method that builds applications using databases. This concept assumes that developers create specifications describing the structure of databases and compilers generate code that can read or update records in the database.

A crucial feature of Symfony is that it has a Bundle System. It provides a choice of specific bundles (known as plugins in other programming languages). Developers can implement fully functional web applications with an easy way to optimize the full implementation.

Summarizing

The above ranking is a subjective list of popular and most useful web development frameworks in our opinion. We hope that the information collected here has allowed you to broaden your knowledge about frameworks and will encourage you to get acquainted with some of them. The use of frameworks is the bread and butter of a web developer. The ability to use selected frameworks can significantly facilitate and speed up your work. Their popularity is growing year by year, and knowing some of them is a fundamental skill required of a developer. The efficient use of frameworks will allow you to improve your work on web development, stand out from most developers, and get more exciting employment and better earnings.

CrustLab has been verified as the top 7% of software companies at Pangea

And it happened! We are part of the Pangea software companies community! We’d like to announce that CrustLab has successfully passed the verification and has become a fully-fledged member of the Pangea community. This means that we are in a carefully selected group of software development companies from around the world. Pangea community membership is another significant milestone in the development of CrustLab and yet another confirmation that our software development team of experts provides services deemed best in class.

A world-class community of software companies

To allow for context, Pangea was launched in 2020 as a productized evolution to and by the team at Digital Knights. Over a 5 year span, the Digital Knights team screened over 500+ software development companies, selecting only the top 7% to be part of its community. This resulted in 165+ successful matches between businesses and a vetted vendor pool of over 5000+ world-class designers and developers. The company is a melting pot for entrepreneurs, engineers, and creative people with years of experience working in the tech industry across Europe, Asia, and the United States.

At Pangea, the team has simplified and productized the complex process of finding a trustworthy software development partner by:

We at CrustLab look forward to joining forces and further support the elite Pangea community with our very own talent.

CrustLab’s software development team
Snapshot of CrustLab’s software development team

Joining Pangea software companies community


There are several reasons why we have chosen to enter into a strategic partnership with Pangea. Firstly, we are aware of the IT industry’s problems related to the lack of transparency and the complicated buyer journey for businesses looking to hire a software development partner.

We believe that the power of community and transparency can help us stand out in a saturated and noisy market. Moreover, we want to present our services clearly and understandably to enable businesses to choose us as the right partner based on our achievements and meris. As Pangea makes this possible, our goals were aligned from the onset.

We grasped the diligence and high benchmark of joining Pangea during the verification process which indeed proved to be challenging. Compared to other listing sites, catalogs, and directories, Pangea did not ask us solely about the company’s basic services offering or completed projects. They went above and beyond to attain a 360-degree view of CrustLab.

Pangea required us to look both to the past and to the future. Current strategies, goals for the future, and expected growth factors were critical metrics to be reported. Such an approach prompted us to intensely work through the development strategy of CrustLab.

What’s more, team culture was one of the most critical factors, and this is what Pangea indicates as the most important advantage and matching criteria to successfully work with clients. Pangea conducted interviews with each of our employees, which was valuable feedback and marked areas for improvement in HR matters.

As part of the process, we also prepared 15 different documents that accurately describe CrustLab in various areas. All of them are available for viewing by clients interested in our services on CrustLab’s Pangea profile.

It was clear that this was not a process that you could cheat which makes us even happier to have passed with flying colors. It was thorough, informative, and well designed which helped us look „behind the curtain” of our company and reveal inner strengths to highlight and blindspots to improve on.

Our learnings


The total score – the Pangea score – was 8.6 / 10.0. The Pangea score is the average of client scoring and a team health score derived by our employee feedback. Though an excellent result, looking at the individual components and metrics, we realized several aspects that we should improve.

The highest-scored turned out to be the Management Rapport, which confirmed our belief that the work and commitment of both the management board and managers working at CrustLab are at a good level.

The “Personal Growth” score of our employees turned out to be an indicator that undermined the overall result. Even if over 50% of our team are dedicated to developers with senior experience, their willingness and appetite to develop is something we may have underestimated. Therefore, we have taken appropriate measures to enable further personal development for employees. We expect that the next evaluation will translate into greater satisfaction with personal growth at CrustLab and overall team health score as the verification is continuous even as a member.

Another area identified with room for improvement was communication and internal feedback. To make sure that each employee has the right tools that will allow him to express his or her opinion, apart from regular face-to-face meetings, we introduced monthly meetings for the entire team. At these meetings, team members learn about the most important events in the company, the current status of ongoing projects, and plans for the coming weeks. They can also submit their comments and share their conclusions. The next step for improvement is the introduction of regular satisfaction surveys for each member of the CrustLab team.

group of CrustLab software developers
CrustLab’s software development experts during a workday in the Krakow office.

From the very beginning, we were interested only in real talents. Obviously, every software development company is as good as the worst employee of the company. Personal attitudes, good communication skills, fit to the team, and high-level technical skills are some of the most important factors for us. Our clients’ ratings and the high overall rating on the Pangea website seem to confirm that this concept was correct. We intend to continue this strategy of company development by creating the best possible working conditions, which I hope will translate into a greater interest of top specialists in working at CrustLab.


Adam Gontarz, CEO and Founder of CrustLab.

Looking ahead for CrustLab

Summing up, joining Pangea allowed us to better understand where we are at the status quo as a company. On the other hand, it also clarified the vision of what kind of company we want to become in the coming months and years. The verification process confirmed some shortcomings we were aware of and highlighted some we were not aware of.

In the time to come, we certainly want to continue on the path of selecting the best specialists to join our team. With our leanings of late with Pangea, we also want to give them the best tools for further their personal and professional development.

In any event, we are proud that the findings are disclosed transparently on our Pangea profile for any prospect to see prior to engaging with us, either as clients or team members. This is a contribution from CrustLab to improve the hygiene of the software development market through unparalleled transparency.

Through our efforts, our ultimate goal is clear. We want to become the global leader for software development services in the gambling & betting industry where we already have a strong foothold.

Web development design – how to avoid traffic loss due to feeble UX?

The web development service consists of creating mostly business websites with a simple structure and more complex web applications running in a web browser. Historically, only computers were connected to the Internet, so products created as part of web development were adapted to be displayed on monitors and laptops, as that was the only need. Nowadays, thanks to advanced web and mobile technologies, users use the Internet in a completely different way. In 2020, according to statcounter.com, traffic from mobile devices accounts for more than half of all internet traffic.

mobile traffic market share
The global share of mobile traffic since 2017 is greater than desktop according to statecounter.com

Then, suppose you want to increase your website’s or web application’s conversion, extend the average time and engagement of users, and increase returning users’ rate. In that case, you have to focus on guaranteeing clear and intuitive UX design for both web and mobile. A high bounce rate and user frustration resulting from unreadable design and navigation, and too long loading times are signs of feeble UX design. Read this article to know what you can do to avoid losing traffic and be ahead of the competition.


The most common web development design mistakes

It is said that mistakes are the best teacher. However, learning from your mistakes can be both painful and costly. It is better to learn from the mistakes that others have made. Therefore, read the list of the most common UX mistakes preceding web development:

CrustLab’s Responsive Web Design
CrustLab’s Responsive Web Design
how to avoid the most common mistakes in web development
how to avoid the most common mistakes in web development

Tips on how to improve your web application design

Now that you know what UX mistakes to avoid in the design phase preceding the web development process, let’s move on to the list of tips and good practices that will help you improve the quality of the UX:

CrustLab’s Responsive Web Design 2
CrustLab’s Responsive Web Design
CrustLab’s Responsive Web Design 3
CrustLab’s Responsive Web Design

Summary

As you can see, the web development design process is a complex process that involves a lot of issues that require special attention. Working on improving the UX of web products is not easy, but it will undoubtedly pay off. At CrustLab, we have many years of experience in this type of service and high-class specialists who are ready to help you. However, if you want to face this challenge yourself, prepare a web application plan based on the above article and send it to us, and we will share the feedback for free.

The State of Progressive Web App in 2020/2021

Is the Progressive Web App approach ready for production apps? It’s been a long time since Steve Jobs for the first time presented the vision of

The full Safari engine is inside the iPhone. And so, you can create amazing Web 2.0 and Ajax apps that look exactly the same and behave exactly like apps on the iPhone. And these apps can integrate perfectly with iPhone services. And guess what? There’s no SDK that you need.

During this time, a bunch of things changed in the web world, but the question is, is the Progressive Web App approach ready for production apps?

What is a Progressive Web App?

Before we start our journey through the benefits and drawbacks of using Progressive Web App in 2020/2021, I’d like to explain what I understand by PWA. I don’t want to copy/paste what Wiki says about PWA – you can read it – if you wish. PWA app is a web application that behaves almost exactly like a native app that you can download from the official market (either App Store or Play Store). From the user’s perspective, the differences shouldn’t be discernible.

A brief history of Progressive Web App

As I mentioned in the opening statement, Steve Jobs was probably one of the first people that presented that idea to a broader audience. The concept was introduced during the iPhone introduction in 2007 (what’s interesting Apple frozen a vision for ten years! – I’ll explain the reason in summary). Mozilla released Firefox OS in 2013. The system could run web apps as native apps on mobile devices via Gaia (an HTML5 layer and user-interface system). In December 2015, Mozilla announced that it would stop sales of Firefox OS smartphones. In 2015, Russell (Google) and Berriman coined the term “Progressive Web Apps”.

So as you can see, there is no one person, and there’s not even one company responsible for the project. As usual, the work of many amazing people and a simple coincidence allowed for the emergence of a new idea that is gaining more and more popularity.

The most important PWA features

Progressive Web App under the hood

One of the critical features of the PWA is a service worker. The worker is a small script that can handle offline mode to prior visited websites. Additionally, SW is responsible for delivering push messages. Behind the scenes browser runs it separately from the main thread, intercepting network requests, caching, and retrieving resources from the cache. Moreover, you can preview the service worker using, e.g. developer tools in Google Chrome.

Support for the selected feature

Based on the table below, you can notice that many things are already done, but many things need to be added to ensure that PWA is a fully cross-platform solution.

Progressive Web Apps cheat sheet
Progressive Web Apps cheat sheet

How can I transform my web app into a progressive one?

As always, it depends on how complicated your app is and what progressive features you are looking for. However, adding a web app manifest file should be the first step in the process. It’s the core technical requirement. This file provides information about your web application in JSON format. PWA manifest can contain details about web app name, description, background color, icon, or display mode (fullscreen/standalone/minimal-ui/browser).

How can I install a PWA app?

Unfortunately, there is no one answer to this question, and the way you can do that strictly depends on your operating system and browser. On the other hand, the whole process is quite simple and very similar between OSs/browsers.
In the case of iOS/Safari, the following steps should be done:

Open an application that supports PWA, for example, Twitter.com, and press the Share button.

PWA app installation step first
PWA app installation step first

Select “Add to Home Screen” from the menu.

PWA app installation step two
PWA app installation step two

Confirm the action by clicking “Add”.

PWA app installation step three
PWA app installation step three

An app icon should be added to the home screen.

PWA app installation step four
PWA app installation step four

Does Progressive Web App support desktop users as well?

Yes, it does! The most popular browsers/OSs support PWA features.

PWA vs. Native Application

What should I choose? – It’s one of the most frequently asked questions, and I agree that it’s always a tough decision, but it’s crucial from your product’s perspective. Before you start the implementation phase of your project, you must compare both technologies. Below I presented a few points that should be taken into consideration before you make a decision. Before challenging yourself with this difficult question, let’s highlight the most important factors.

Hardware features

I always recommend preparing a list of mobile features that are required to launch your product. The more hardware you want to use, the more you should go towards to native solution. The previous sentence doesn’t sound like a PWA recommendation. Still, the truth is how many apps use Bluetooth/gyroscope/accelerometer and others? Do you really need them in, as an example, an e-commerce app?

Cross-platform support

A lot of people think that PWA is the only cross-platform solution. You can create a single codebase and use it across different devices. Is it true that it’s impossible to develop a native app that would work on both Android and iOS devices? Of course, it’s not. You can take a look at Flutter or React Native solutions.

Performance

There are two areas where the native app takes over PWA:

Updates policy

In the case of a Progressive Web App, most logic is placed on the server-side, so you don’t need to engage additional layers, like marketplace. On the other hand, if you want to update a native app, the whole process is much more complicated and time-consuming because you not only need to update an app in the store, but also you must force users to download a new version.

Tech Stack

PWA uses well-known technologies in the web world. There are no limits. You can use React, Vue, Svelte, Angular, or any other library supported by browsers. Another benefit of using a progressive approach is writing your code in pure JS or any other superset of JavaScript – TypeScript, ReasonML, or Elm. Currently, JS is the only language that allows you to use the same technology on the back-end, web, and mobile (one language to rule them all!). On the contrary native Android app can be created in Java or Kotlin, but iOS supports only Swift.

The total cost of the product

Last but not least. People love cross-platform solutions, and the reason is straightforward. I can pay only once and have support for Android and iOS. It’s not always accurate, and one other important factor should be taken into account. Do you know that the app’s maintenance in many cases is much more expensive than the creation phase? Keep that in mind, when you need to make a decision. Maintaining a single application for multiple platforms can cost you more if you think about your project from a long-term perspective.

Is it possible to add a PWA application to the store?

In the third paragraph, I presented how we can install a Progressive Web Application on our phones. As you probably noticed from a technical perspective, it’s not rocket science – just a few clicks. From a marketing/sales perspective, it was a huge drawback – how many of our customers know about that hidden option in the browser? Fortunately, there is a way to publish the app in the official marketplaces.

Publishing Progressive Web App in the Google Play – Trusted Web Activity

In 2019 Google announced a new concept – Trusted Web Activity. TWA gives developers the possibility to publish web content in the Google Play store. Under the hood, TWA wraps the PWA application into an Android container (activity). TWA displays a full-screen Chrome browser inside of an Android app without browser UI elements, like a well-known URL bar. TWA gives you one more feature – transitions between the web and native content are between activities – so it lets you create an app that uses PWA features only for selected views. The whole process of creating a TWA application is clearly described in the official Google docs.


One more thing needs to be clarified – what does trusted mean in the context of TWA? Google decided to introduce a restriction that you must confirm that you are an owner of the website that you want to pack into TWA, and you can prove this by setting up Digital Asset Links. Fortunately, it’s nothing hard – the only thing you need to do is to upload a file to your server that points to your app and some data in your app that points to your website.

Publishing Progressive Web App in the App Store

In the case of Apple devices, it’s not so straightforward. In general, Apple’s review process is much more strict. But still, there is a way to wrap your PWA app into WebView using CordovaPWA Builder, or some other similar solution. It’s important to note here that officially there is a rule in the Apple Store Review Guidelines (4.2) that gives them the right to reject your submission.

Your app should include features, content, and UI that elevate it beyond a repackaged website.

On the other hand, there is a lot of stuff in the Apple Store that can be affected by this clause, but they are still there.

Publishing Progressive Web App in the Microsoft Store

In contrast to Apple, Microsoft informs about this new feature in their docs. The company also prepared an official tool to transform your PWA app into a native counterpart – PWA Builder. In the docs, they even listed the advantages of such a move:

PWA application is run in a lightweight native app wrapper, which is independent of the Microsoft Edge browser window.

What’s the state of PWA?

It seems to me there are a bunch of reasons that it never happens. I don’t want to paraphrase everything I’ve written in the “PWA vs. Native App” paragraph, but I need to highlight a couple of points. Native SDKs are optimized not only in performance but also in UX/UI way. Another aspect is that PWA was a buzzword in 2017/2018, but during this time, and it’s almost three years, many things have changed, but several features are still missing. Three years in the IT world is like a decade or two in other aspects of our life.

In my opinion, the progress of work is not satisfying. Mainly because we are talking about the biggest and the most powerful IT companies like Apple, Google, or Microsoft – randomly ordered? For me, the winner in hiding work on PWA improvements is an Apple company. On one side, they implement missing things. On the other hand, very frequently, the company doesn’t even inform developers about new options. It’s easy to guess what is the root cause of this strategy – money.  According to CNBC analysis, Apple’s App Store grossed around $50 billion in 2019. That means that the App Store alone would be no. 64 on the Fortune 500 (ahead of Nike or Coca-Cola). Nevertheless, with all these aspects, I’d like to emphasize that PWA is an excellent choice for many businesses, and frequently it’s the first and the easiest step to the mobile world for your app.

Pairing betting industry ‘know-how’ with software expertise – SBC x Adam Gontarz interview

The following article about pairing the betting industry ‘know-how’ with software expertise is a republication of an interview from the SBC website.

Many companies have the technical capacity to deliver custom software for web development and mobile applications, yet delivering solutions specifically tailored to the gambling industry can often come with a different set of challenges.

Adam Gontarz, CEO of CrustLab, explains why his company’s ‘betting industry know-how’ stands it apart from the competition, before discussing the impact of Apple guidelines, the size of the opportunity in the US, and new tech trends to look out for in the next few years.

SBC: In a few sentences, just explain what it is that you do?

AG: At CrustLab, we mainly create custom software for the betting industry and gambling. It’s not the only thing we do, but our main focus.

We provide services from web development to app solutions to mobile and web design, as well as things like strategy consulting and direction of the product. So, we’re a custom development software company with a strong focus on the betting industry.

SBC: So, you’re developing the software from scratch? For example, the mobile app solutions. You’re not consulting on solutions that are already there?

AG: It depends on the customer’s needs. We’re open to any kind of co-operation. Depending on the current state of the product, we might simply assist our customers. It could be a new product or it could also be a product that already exists.

For example, if a customer has a problem with the user experience and is looking for some kind of improvement. As another example, on the backend side, the customer may look for an improved performance of their solution which we can also assist with. It strongly depends on the customer’s needs and the root of the problem.

SBC: If we talk specifically about the gambling companies and user experience issues that these companies often have, what are the common problems you see?

AG: I’ll give you a few examples of our projects. One was developed by a different software consultancy company that cooperated with the developers of our client. They simply thought they were doing things in the fashionable and proper way when, in fact, they were just doing it a totally wrong way.

For example, a real user experience (UX) testing was missing, user paths or rather information flow within the application was very complicated. We had to look at how to improve the application. We had to ask the question, how could our client attract more customers? It could be marketing companies or better content or better promotional deals, but also improve the rates in mobile application stores.

A client might have a lot of negative objections from the customers. In the betting industry, it’s difficult because we see a lot of negative feedback that relates to problems with operations like lack of customer support or delayed withdrawals, so we have to filter it out a bit and solve the technical problems that exist in the apps.

SBC: You would imagine that some technical issues are quite standardized wherever you’re working, but what about in terms of UX? Do you position yourself as a company for specific gaming verticals or markets, or take clients on a more global level?

AG: We’d like to operate in the whole betting industry but with the current size of the company, I don’t believe that we’ll have the level of quality that we currently have.

Our main focus is on pari-mutuel betting, such as greyhound and horse racing, so the totalisator systems in particular, but also sports betting and sportsbooks or embedded solutions for casinos. We don’t create slot games but this is one of our interests for the coming year.

SBC: Is the US somewhere you’re looking at in terms of picking up more clients?

AG: With the series of events in America regarding licensing online sports betting and online casinos, parts of the gambling industry are growing rapidly. Many processes are going on, but based on the conversations I have with my partners and clients, the casino market’s digitalization will be a top technical need shortly, having in mind the number of land-based casinos in the USA. Here I refer to purely white labels, as well as dedicated custom solutions. Sports betting is growing fast, and here as well, the needs are rapidly growing.

We have noticed that there are a lot of companies that are investigating and trying to invest in the market and there is a bigger interest not only from the UK or Malta but also from the USA, not counting big players that already exist on the market. Those parts of the business are our main focus.

SBC: If we talk about specific projects, can you talk about the clients you have in betting and some of the things you’ve done so far? And what countries you’ve worked in?

AG: Recently on our website, we’ve published a case study presenting the scope of work that we’ve done for Sportech – one of the biggest clients we cooperate with. Regarding the industry, it’s global, including both US and UK. We also created a sportsbook right now for one of the US markets, but the name of the company wouldn’t be well known to everybody.

Other than that, European markets such as Danish markets where we cooperate with Danske Spil, so one of the most important brands. We’ve got work in co-operation with one of our local software houses. We also assist with casino creation for one of our clients in Sweden.

SBC: What about companies in the Polish market? You’re from Poland yourself?

AG: This is something I can’t describe transparently because of the contract limitations but we create one of the platforms for one of the Polish operators, which is very similar to what is currently offered on the market. There’s going to be a new website for this client, operating in Polish, Czech and Slovakian markets.

SBC: Okay, let’s talk about Apple guidelines; I assume these hold a lot of influence over the work you are hired to do?

AG: New guidelines were published as a part of the update introducing iOS 14. The core of guidelines has not changed very much. Then I can say that the impact wasn’t significant. However, one of the things that have increased the scope of work on our side for the existing projects was the introduction of restrictions for notifications. The limits are essential mostly from the marketing perspective as Apple has limited what can be published in notifications.

A few companies that we cooperate with had marketing campaigns promoting their other services, but not the app’s features. Right now, it’s restricted, so they’ve had to limit their marketing campaigns – on our side changes in the notifications logic were required.

Apple guidelines are a kind of greatness to our developers. Following them, we guarantee that the quality of apps we deliver is high and competitive. With the 14th version of the iOS system, we have received two significant changes – widgets and App Clips.

App Clips are small parts of an app so that users could get what they need right when they need it. The feature has not been widely introduced in the market. Most probably, some companies do not know about the potential of the feature. It makes it possible to quickly promote your app, shorten bettor acquisition by opening multiple new channels like messages or dedicated QR codes. We strongly suggest that feature to our customers.

With newly introduced widgets, app owners have a great occasion to reduce the number of steps customers would have to perform to place a bet, or at least customers should be able to, for example, review top pools, carryovers, or favorite events directly from the main screen.

Both things are something companies should use very offensively as they reduce the user journey and improve customer acquisition rate. I believe this is an excellent set of updates that companies should invest in, especially for offensive players spending thousands of dollars a week through multiple channels.

SBC: So the guidelines make more companies turn to businesses like yours for help?

AG: To answer your question – yes, I would agree. To be honest, every update that Apple makes creates problems for our customers, and the more problems they have, the more work we have! We have more questions regarding how we can solve these problems.

From our perspective, sometimes it’s hard to explain that this is something that Apple has created and we can’t be responsible for the problems you’ve had because of the introduction of new rules. It’s sometimes a point of discussion.

SBC: If we change to a more general level, in terms of wider mobile software solutions what is it that you do that stands you apart from your competition?

AG: I believe we pay strong attention to the customer’s needs. A lot of companies focus on the businesses, forgetting about the end-users.

We have a set of people we have to ask for any kind of assistance and we have to focus on them since we are creating an app for them. Our extensive user experience research is critical because some companies forget about that and just create a product. Another aspect is the technical part of it; extensive testing to ensure proper performance of the application.

We have the domain knowledge and know-how to create an app that attracts new users and we mix it with technical specialization. We aren’t a random custom development solutions company that creates apps but we also use our know-how regarding the gambling industry.

SBC: Is it then fair to say that lots of companies like yours offer similar services on a technical level, but where you stand out is for your understanding of the customer and the wider industry?

AG: This is what I meant. The question you asked me before was mostly about mobile applications. What’s important, and makes us different from our competitors, is the experience and knowledge of the industry.

For example, integration with external providers, wallet and risk management systems, dedicated sportsbook APIs, odds, spreads, GDPR rules, responsible gaming regulations, and customer identity verification stuff. All topics are very hot in the betting industry and most of the software development companies are not aware of them.

Typically, when companies are looking for a regular partner in software development based on some budgetary criteria and then they have to fix problems. One of the examples is the responsible gaming rules that, when violated, could cause a huge amount of penalties and financial problems or services that would be forced by the government to be closed.

SBC: What has been the biggest tech trend from a design perspective? And what do you think might be coming next?

AG: First of all, I believe one of the key things in the gambling industry in the future could be to make use of the games as a service (GaaS) model, which enables the on-demand streaming of games to users’ devices. We see semi-static esports web applications but I believe the industry could go a little bit further.

Technical solutions offer a real user experience where you are a part of the game. In my view, that could attract a lot of users that would be able to play almost any game and bet but that would definitely be a topic for the new domain of the esports part of the business. I can imagine high-quality slot games to use technology as well in the future. Of course, that would be great for low volatility games and help gamers keep playing for hours.

I believe that social gaming is also important and companies that offer betting should focus on this. By cooperation, customers will have more fun and be keener to place more bets.

The final part is progressive web applications. When we are talking about mobile we tend to think about native or cross-platform solutions. It has some limitations but for apps that let users check odds or latest stats and compare different sites, there’s no point investing in a dedicated solution since you could create something that is valuable, a bit cheaper, and also help you in the marketing of your services.

SBC: Finally, what’s the big ambition for you as a company? Where do you see things heading in the next few years?

AG: This is just a dream I’d say but in a few years I’ll only say we’re successful when someone thinks ‘I need custom software development services for my gambling project’ then decides ‘Alright, I’ll talk to CrustLab’. We’d like to specialize in this area for the industry with lots of connections and successful products we and our customers are proud of.

Product design tools – 15 tools to facilitate collaboration

Nowadays, being Creative could be challenging but working with the right product design tools make it easier. Every day, after you got your favorite cup of coffee, for the rest of the day, you need to be a User Experience Designer, User Interface Designer, Product Designer, Workshoper, Researcher, Facilitator, and be at every meeting. It is a daily routine for you.

As a Designer, you are probably a part of each step of the product design process. If I am right, you and your team are overwhelmed by requests, asap tasks, and problems that need to be solved quickly. There is too much information around you. It would be best if you learned which are essential in product design and only information noise. Being always on the same page is difficult and time-consuming.

You work in changing environments (Agile, Kanban, SCRUM), where all diverse teams have their processes, needs, and internal languages. In most cases, you need to be a unicorn. Catch the beat, move a design from an abstract idea to a finished product. Understand different project factors. One of them is the right workflow. It can keep you on track and facilitate close collaboration with clients, businesses, and, finally, users’ needs.

product design tools 1

Sure, but is it possible? I think – “Houston, we have a problem!”.

So, what can you do? Ask the right questions.

Soft skills and the transparent design process are essential factors for better product design. However, there is something more, which gives you a key for winning, especially in the newborn reality (post-Covid) – the right product design tools.

Below, there are four groups with a list of tools, which can help you in your daily work as a Designer.

product design tools 2

Tools to facilitate communication

During the day, you mainly work in the formula „together but alone”, which means that you have tasks, which are assigned to you only. It is essential to be in touch with team members and clients. When designing a product in CrustLab, the efficient flow of information is helped by product design tools:

Free tools:

Google tools
We all know Google tools such as Meet, Calendar, E-mail, and Drive. I will give you a few tips about them:

World time buddy

Remote work means collaborating with people from all over the world, often from different time zones. With the World Time Buddy tool, you can put all of your colleagues from other time zones and see where you have overlapped, identify „together time” and „alone time”.

Free/Paid tools:

Slack
It is a communicator for daily activities with some extra features. One is quite impressive. When you have a video call on Slack and share the screen, you have the opportunity to draw on that screen. It could help you better communicate product design ideas.

product design tools 3

Tools to facilitate documentation


The possibility of creating, collecting, distributing, and communicating results as much as access to the project documentation at any moment of work is a key value for better product design.

Free/Paid tools:

Google Docs

With these cloud resources, you can get ideas to share with your colleagues easily, get feedback, and work together on it.

Here are a few tips that will help you understand that Google Docs is one of the best product design tools:

Notion

It is free for personal use. When the project moves forward, and you need a workspace for the Documentation with a clear structure, the Notion is for you. You can create your company systems for knowledge management, note-taking, data management, project management, among others. The Notion’s mobile app has a great user experience, so you can always be on the page with a team.

„The pandemic has shown us that there is more to documentation than just ‘docs.’ Documentation is what enables us to get what we need.” – Rebecca Abara, Etsy – 10/14/2020 at Distributed2020.

product design tools 4

Product design tools

The heart of product design, however, lies elsewhere. It is time for product design tools that will facilitate the essence of your work. The applications described below allow you to design directly in the browser, which definitely enables group work.

Free/Paid tools:

Miro/Mural (virtual whiteboard)

They are collaborative whiteboards with digital sticky notes, where you can group them, vote for the best ones, and do all this while a timer counts down. You can use both web applications to facilitate workshops like Design Sprint, Strategy Workshop, MVP design workshops, Brainstorming with the client, or do a review with your remote team. Miro has a free plan, and Mural has a one-month free trial.

userinterviews.com

Are you designing the MVP version of the product and already have test scenarios ready but no testers? No worries, you can visit User Interviews and find the specific audience you need to test your ideas.

Figma

Figma has a free account, and it is a cloud application. What does it mean for you?

The cloud solution has a dark side. The application works only when you are online. Rarely but sometimes I don’t have access to my files for one or two hours. If you decide to use Figma, do backups whenever you finish your work.

Sketch

Sketch App started using primary symbols (components). It took product design to another level. You can create one item (ex. button) and use a reference for it. Why is it important? Whenever you change the primary symbol, their references change too. Developers work similarly.

Sketch App has one more value. It has an open code library. When the Designer meets the Developer, magic could happen. I will tell you a short story. In Cracow (Poland), a Front-End Developer from Brainly wanted to know how Designers work and how they use product design tools. He discovered that Sketch App has an open code library, and he can „hack” the App. He created a tool that generates the component (ex. button), which is the same in the Developers and Designers libraries. If it sounds interesting, keep reading.

html-sketchapp/React Sketch.app
One of the next steps of your product design is passing on the project to the Developers Team. Figma has a tool for that. If you use Sketch App, Zeplin is the best tool to collaborate with Developers. They will look at your project from their perspective, numbers, and CSS.

However, it is a pain point for both sides. We all are humans, and we try to understand problems and find solutions using our perspective. It is a common situation where the client accepts a designer’s project, but developers deliver something different. It is a gap, and all we know is the problem.

Software Development and Product Design Companies are trying to reduce that gap. These two tools: html-sketchapp and React Sketch.app, make it much more comfortable. Both work similarly. The developer collaborates with a designer, and he first creates a new item (ex. button). Next step, he runs one of the scripts above and generates our „button” with two of the same version:

Warring: These scripts work only with Sketch App (uses the open code library).

From that moment, two teams have the same elements and use them for their job, and there is no gap. It is not an easy way, but it is possible. Pixel Perfect can be great again. I recommend you checking the Brainly website and Web Application to see how html-sketchapp works in practice. Or check out alternative tools like Kactus and Abstract.

Summary: Both scripts are suitable for a more significant project. In the long-term, they could reduce cost, keep the project consistent even when the team rotates.

Tools to facilitate analysis

Qualitative, Quantitative data can help you understand, learn more about your audience, find answers to your questions, and verify the business hypothesis. Measuring your clients’ behavior enables you to uncover what is hidden behind the metrics, real problems, and needs. It is crucial for product design. There are a lot of methods and tools to do this.

In my opinion, Google Analytics is the best choice for quantitative research. For qualitative, it depends. Right questions help you take the right tools or methods.

For example, Hotjar or Cux.io show you how your audience uses your product (heatmaps, record session, stats).

What is the future like?

Newborn reality (post-Covid) speeds up the change in how we think about remote work and how we use design tools, either. In my opinion, we will work remotely more in the future. What does it mean? There will be more and more product design tools on the market. Right now, it is more than we need. See the list of The 2020 UX Research Tools Map.

Remember, the right tools give you:

Before you pick one of them, make sure that it will add value not only for you but also for your team, organization, or clients. Product design is a team game.

iOS development SwiftUI experiment – building custom chart part 2

Here we are, in the second part of our iOS development SwiftUI experiment! In the first part, you have created a basic black&white chart with some nice curves. You are going to spice your work up and make it pleasing to the eye. It’s ANIMATIONS & GRADIENTS time! ????

How to add animations & gradients for your iOS app with SwiftUI

To kick-off building new functionalities, you have to do a small refactor to keep the project clean. SwiftUI is heavily forcing view structure to be composed of smaller pieces, so let’s follow this guideline and move your grid to a completely separate view.

struct GridView: View {
    let xStepsCount: Int
    let yStepsCount: Int
    
    var body: some View {
        GeometryReader { geometry in
            Path { path in
                let xStepWidth = geometry.size.width / CGFloat(self.xStepsCount)  
                let yStepWidth = geometry.size.height / CGFloat(self.yStepsCount)      
                
                // Y axis lines
                (1...self.yStepsCount).forEach { index in
                    let y = CGFloat(index) * yStepWidth
                    path.move(to: .init(x: 0, y: y))
                    path.addLine(to: .init(x: geometry.size.width, y: y))
                }
                
                // X axis lines
                (1...self.xStepsCount).forEach { index in
                    let x = CGFloat(index) * xStepWidth
                    path.move(to: .init(x: x, y: 0))
                    path.addLine(to: .init(x: x, y: geometry.size.height))
                }
            }
            .stroke(Color.gray)
        }
    }
}

OK, it’s time for real work. You would like to animate the drawing of the chart path. When the view appears it should nicely slide on the screen. You can use the trim(from: to:) method to achieve this. Let’s make some adjustments in the chartBody:

private var chartBody: some View {
        GeometryReader { geometry in
            Path { path in
                path.move(to: .init(x: 0, y: geometry.size.height))
                
                var previousPoint = Point(x: 0, y: geometry.size.height)
                
                self.data.forEach { point in
                    let x = (point.x / self.maxXValue) * geometry.size.width
                    let y = geometry.size.height - (point.y / self.maxYValue) * geometry.size.height   
                    
                    let deltaX = x - previousPoint.x
                    let curveXOffset = deltaX * self.lineRadius
                    
                    path.addCurve(to: .init(x: x, y: y),
                                  control1: .init(x: previousPoint.x + curveXOffset,
                                                  y: previousPoint.y),
                                  control2: .init(x: x - curveXOffset,
                                                  y: y ))
                    
                    previousPoint = .init(x: x, y: y)
                }
            }
            .trim(from: 0, to: self.isPresented ? 1 : 0)
            .stroke(
                Color.black,
                style: StrokeStyle(lineWidth: 3)
            )
            .animation(.easeInOut(duration: 0.8))
        }
        .onAppear {
            self.isPresented = true
        }
    }

There is not much to explain. Just trim a path from 0 to 1 in specified animation duration (in this case 0.8s).

To make it work you need @State property which will maintain the animation

@State private var isPresented: Bool = false

Wow! That was super easy and the outcome is awesome! ????

But you can’t leave the chart black&white, how about adding some gradients? Let’s start with the chart line. To fill it in with gradient just change stroke’s Color.black

.stroke(
  LinearGradient(gradient: Gradient(colors: [.primaryGradient, .secondaryGradient]),     
                 startPoint: .leading,
                 endPoint: .trailing),
  style: StrokeStyle(lineWidth: 3)
)

.primaryGradient, .secondaryGradient are my custom colors added to the Color extension, they can be whatever you want, just use your imagination.

You can do even better by adding the background to the chart. To do so you can draw a closed path below the actual chart line and fill it with gradients. But first, you have to abstract away a path drawing.

struct LineChartProvider {
    let data: [Point]
    var lineRadius: CGFloat = 0.5
    
    private var maxYValue: CGFloat {
        data.max { $0.y < $1.y }?.y ?? 0
    }
    
    private var maxXValue: CGFloat {
        data.max { $0.x < $1.x }?.x ?? 0
    }
    
    func path(for geometry: GeometryProxy) -> Path {
        Path { path in
            path.move(to: .init(x: 0, y: geometry.size.height))
            
            drawData(data, path: &path, size: geometry.size)
        }
    }
    
    func closedPath(for geometry: GeometryProxy) -> Path {
        Path { path in
            path.move(to: .init(x: 0, y: geometry.size.height))
            drawData(data, path: &path, size: geometry.size)
            
            path.addLine(to: .init(x: geometry.size.width, y: geometry.size.height))               
            path.closeSubpath()
        }
    }
    
    private func drawData(_ data: [Point], path: inout Path, size: CGSize) {
        var previousPoint = Point(x: 0, y: size.height)
        
        self.data.forEach { point in
            let x = (point.x / self.maxXValue) * size.width
            let y = size.height - (point.y / self.maxYValue) * size.height
            
            let deltaX = x - previousPoint.x
            let curveXOffset = deltaX * self.lineRadius
            
            path.addCurve(to: .init(x: x, y: y),
                          control1: .init(x: previousPoint.x + curveXOffset, y: previousPoint.y),
                          control2: .init(x: x - curveXOffset, y: y ))
            
            previousPoint = .init(x: x, y: y)
        }
    }
}

So, the drawing logic is now part of LineChartProvider. It has two accessible methods: pathand closedPath. The only difference between them is one additional step for closedPath which makes it a closed shape (this lets us fill it properly with gradient). The private drawData method is an actual drawing part of the provider, it’s abstracted away to easy reuse between the path and closedPath methods.

Also, you have moved some of the supporting computed properties from ChartView to LineChartProvider.

With those improvements ready, you can use it in the chart:

private var chartBody: some View {
        let pathProvider = LineChartProvider(data: data, lineRadius: lineRadius)
        return GeometryReader { geometry in
            ZStack {
                pathProvider.closedPath(for: geometry)
                    .fill(
                        LinearGradient(gradient: Gradient(colors: [.white, Color.primaryGradient.opacity(0.6)]),    
                                       startPoint: .bottom,
                                       endPoint: .top)
                    )
      
                pathProvider.path(for: geometry)
                    .trim(from: 0, to: self.isPresented ? 1 : 0)
                    .stroke(
                        LinearGradient(gradient: Gradient(colors: [.primaryGradient, .secondaryGradient]),
                                       startPoint: .leading,
                                       endPoint: .trailing),
                        style: StrokeStyle(lineWidth: 3)
                    )
                    .animation(.easeInOut(duration: 0.8))
            }
            .onAppear {
                self.isPresented = true
            }
        }
}

Neat! But you can do even better. So far the animation doesn’t look natural. You have to add animation to the background as well!

ZStack {
    // Background
    pathProvider.closedPath(for: geometry)
      .fill(
        LinearGradient(gradient: Gradient(colors: [.white, Color.primaryGradient.opacity(0.6)]), 
                       startPoint: .bottom,
                       endPoint: .top)
      )
      .opacity(self.isPresented ? 1 : 0)
      .animation(Animation.easeInOut(duration: 1).delay(0.6))
                
      // Chart
      pathProvider.path(for: geometry)
        .trim(from: 0, to: self.isPresented ? 1 : 0)
        .stroke(
          LinearGradient(gradient: Gradient(colors: [.primaryGradient, .secondaryGradient]),
                         startPoint: .leading,
                         endPoint: .trailing),
          style: StrokeStyle(lineWidth: 3)
        )
        .animation(Animation.easeInOut(duration: 0.8).delay(0.2))
}

This is way better! Manipulate the opacity of the background to fade it in nicely. Moreover, you are using the delay method to chain animations.

In the beginning, it seemed very complicated and complex but it quickly turned out to be easy peasy thanks to the SwiftUI magic. Although I am satisfied with the overall outcome, there are plenty of things that can be improved. It was the last part of the iOS development SwiftUI experiment, but you have tons of other possibilities to discover. Good luck.

UX/UI vs. dev – how to collaborate on product design?

UX/UI designers and developers are from two different worlds, but they meet in a complex process of product design. These are two completely different professions, but often also completely different personality types, work, and communication styles. Cooperation between designers and developers could be difficult, but they would never create a product without each other’s help. In this article, I present the problems that often arise in this type of collaboration and provide tips and solutions that will make developers’ and designers’ lives easier.

Product design process – how does it look like

Product design consists of several stages, and in each of them, a different specialist plays a key role. In this article, we only briefly describe this issue. If you want to know them in detail, read the dedicated article on the product design process. In the initial phase of ideation, the client and Project Manager plays a prominent role. Their conversations aim to discuss the product idea, close the list of functionalities and necessary features, find weaknesses, and propose better solutions.

A thorough analysis of the idea lays the foundations for a UX/UI designer work who plays the leading role in the second part of the product creation process. Only by knowing all the assumptions of a project could he prepare high-fidelity mock-ups. To achieve this goal, he will need a set of different skills. To enumerate a few like graphic skills, knowledge of UX/UI design principles, a sense of aesthetics, knowledge of trends in the industry for which he designs, and basic knowledge of creating web and mobile applications.

A refined idea and hi-fi mockups are handed over to the programmer, who starts the development phase. Its task is to reflect the assumptions in the source code, creating a final working product. It would not be possible without the „instructions” in the form of mockups prepared by the designer. Only mutual communication between the developer and the designer and a full understanding of the project assumptions is the way to complete the third phase of product design.

Still, during development, testers join the process before the official launch of the product. Their task is to verify the product’s correct operation and compatibility between the designer and the developer’s work scope. Then the problems in UX/UI vs. dev cooperation come to light.

The complex and multi-person process described above is only a tool for the main actor. A fair product design process is one that focuses on the customer and his vision. From the very beginning, the customer is supported in decisions made at every stage of work by the entire project team. Familiarize yourself with the list of questions that a designer may ask before starting work on product design.

Product design process schema
Product design process schema

A fair product design process is one that focuses on the customer and his vision. From the very beginning, the customer is supported in decisions made at every stage of work by the entire project team.

Misunderstandings between UX/UI and developers

In my experience, designers and developers probably have more in common than they realize, but there are definitely some distinct differences in the way that we think about things. Designers love to think about design systems, and developers think about modular code that is easy to maintain. But the way that we go about it may be slightly different.

Developers have found a way to break down their work into smaller pieces, and designers tend to think of the whole as „whole cake” and „how we eat the whole cake”.

This is the point where they start arguing. Engineers want to be able to send code in small steps and create something very quickly with an Agile methodology. Designers want to take a big step forward in a holistic way – they want to provide a consistent experience. This may be a moot point for these two groups.

Aron Walter DesignTalks

As mentioned in the quotation, the differences in designers’ and developers’ work result primarily from the approach and work style. The most common misconceptions in product design work include:

UX/UI designers at work
UX/UI designers at work

Designers look at the project as a whole, want to refine it before proceeding to the next stage. Developers divide the project into smaller tasks and prefer working on smaller, disconnected tasks.

Tips for UX/UI vs. dev collaboration

The key to the successful cooperation of UX/UI designers and devs during product design is knowledge of other fields’ basics. Both professions have the same goals and play for the same team, although they practice different disciplines. The collaboration will be easier if both sides make an effort to learn the basic principles of others’ work. A high level of mutual understanding will result in an atmosphere of mutual respect and trust, and in such conditions, it is much more pleasant to work. Therefore it is easier to obtain satisfactory results.

Another aspect that will help achieve better results is communication not only on the level of knowledge of the same language but also on understanding individual words or phrases. Understanding the other party’s vision or a thorough understanding of the feedback will save you a lot of time and unnecessary work. For example, designers need to be better at communicating their work’s value, not just qualitatively. Developers should patiently and clearly state the technical limitations, even if they are apparent.

The structure of the team is also essential. If you want to work out the best solutions, the basis will be to create conditions for a real and substantive discussion. There is no room for such a conversation in a project team where there are disparities. Often, designers are in the minority, making it very difficult for them to break through their arguments.

Another facilitation in the cooperation between designers and developers will be frequent meetings and feedback rounds. These should always occur before the next part of the product is submitted for the customer’s approval. Internal verification of the source code’s coherence with the mockups prepared by the designer will avoid minor differences and mistakes, increasing the quality of the final product and customer satisfaction. Read the article describing the tools useful in cooperation between UX/UI designers and developers.

UX/UI design icon
UX/UI design icon

Another facilitation in the cooperation between designers and developers will be frequent meetings and feedback rounds. Only time spent working together will help developers learn from designers and vice versa and develop new solutions that neither group would come up with separately.

Summary

The tips described above result from our experience in product design. These are proven solutions that can be a significant help for you or your team. Unfortunately, nothing happens immediately, and you will need time to work out an effective way of working together. Therefore, you must think about developing such a model of cooperation over the long term instead of focusing only on the current project. Only time spent working together will help developers learn from UX/UI designers and vice versa and develop new solutions that neither group would come up with separately.

UX/UI designers and developers are from two different worlds, but they meet in a complex process of product design. These are two completely different professions, but often also completely different personality types, work, and communication styles. Cooperation between designers and developers could be difficult, but they would never create a product without each other’s help. In this article, I present the problems that often arise in this type of collaboration and provide tips and solutions that will make developers’ and designers’ lives easier.

A fair product design process is one that focuses on the customer and his vision. From the very beginning, the customer is supported in decisions made at every stage of work by the entire project team.

Designers look at the project as a whole, want to refine it before proceeding to the next stage. Developers divide the project into smaller tasks and prefer working on smaller, disconnected tasks.

Another facilitation in the cooperation between designers and developers will be frequent meetings and feedback rounds. Only time spent working together will help developers learn from designers and vice versa and develop new solutions that neither group would come up with separately.

iOS development SwiftUI experiment – building custom chart

SwiftUI is the future of iOS development, right? We are all excited about how it will influence our mobile development process. At the same time, we are wondering if SwiftUI is ready to shine right now. We are going to find out! In the upcoming blog posts, we’ll try to build a completely custom line chart with extraordinary animations and Hollywood-like effects  This part is all about building a simple chart with a background grid.

How to build a new chart for your iOS app

But let’s start simple. You need to define some kind of data model for our new chart. Let’s start with a raw Point model, nothing too sophisticated just simple X/Y coordinates. You can extend its capabilities in the future if needed.

struct Point {
	let x: CGFloat
	let y: CGFloat
}

Use CGFloat instead of Double to get rid of conversion (the drawing system of SwiftUI is based on CGFloat).

You need some temporary mock data as well:

let data: [Point] = [

    .init(x: 1, y: 5),

    .init(x: 2, y: 4),

    .init(x: 3, y: 15),

    .init(x: 4, y: 6),

    .init(x: 5, y: 9),

    .init(x: 6, y: 12),

    .init(x: 7, y: 14),

    .init(x: 8, y: 11)

]
struct ChartView: View {
    let xStepValue: CGFloat
    let yStepValue: CGFloat
    let data: [Point]
    
    private var maxYValue: CGFloat {
        data.max { $0.y < $1.y }?.y ?? 0
    }
    
    private var maxXValue: CGFloat {
        data.max { $0.x < $1.x }?.x ?? 0
    }
    
    private var xStepsCount: Int {
        Int(self.maxXValue / self.xStepValue)    
    }
    
    private var yStepsCount: Int {
        Int(self.maxYValue / self.yStepValue)
    }
    
    var body: some View {
    
    }
}

We initialize our ChartView with an array of Point models and values of the X/Y axis step. Add some computed properties which will be handy in the grid/chart calculations. Finally, let’s get our hands dirty in the actual drawing. You have to calculate line positions relative to view size. But how do you get the size of view in SwiftUI? Fortunately, here comes a GeometryReader to the rescueIt is a container view that gives you access to information about its size and coordinates. You are going to use it to calculate the position of the grid lines.

var body: some View {
    ZStack {
        gridBody
    }
}
    
private var gridBody: some View {
        GeometryReader { geometry in
            Path { path in
                let xStepWidth = geometry.size.width / CGFloat(self.xStepsCount)     
                let yStepWidth = geometry.size.height / CGFloat(self.yStepsCount)     
                
                // Y axis lines
                (1...self.yStepsCount).forEach { index in
                    let y = CGFloat(index) * yStepWidth
                    path.move(to: .init(x: 0, y: y))
                    path.addLine(to: .init(x: geometry.size.width, y: y))
                }
                
                // X axis lines
                (1...self.xStepsCount).forEach { index in
                    let x = CGFloat(index) * xStepWidth
                    path.move(to: .init(x: x, y: 0))
                    path.addLine(to: .init(x: x, y: geometry.size.height))
                }
          }
          .stroke(Color.gray)
      }
}

Pretty straightforward, calculate X/Y step width then iterate over steps count drawing vertical/horizontal lines. It’s a bit better but still, there is no chart at all  Let’s add one more variable:

private var chartBody: some View {
        GeometryReader { geometry in
            Path { path in
                path.move(to: .init(x: 0, y: geometry.size.height))
                self.data.forEach { point in
                    let x = (point.x / self.maxXValue) * geometry.size.width
                    let y = geometry.size.height - (point.y / self.maxYValue) * geometry.size.height    
                    
                    path.addLine(to: .init(x: x, y: y))
                }
            }
            .stroke(
                Color.black,
                style: StrokeStyle(lineWidth: 3)
            )
      }
}
SwiftUI chart
Your first very own chart!

Here it is! Your first very own chart! Nothing too fancy, once more you have used GeometryReader to get the size of the view. With the size in the hand, you have to calculate coordinates of the next point. To do so you have to get a proportion of the x/y value of the point to the max values. The result is a part of the whole available width/height. Keep in mind that .zero point of view is in the top left corner while you are drawing from the bottom left corner. So to get the correct value of y you have to subtract the result from the view height. Then you simply draw a line to the calculated point.

How to modify your iOS app new chart with SwiftUI

Your chart is almost ready but it looks a bit too… sharp.

What about making it a bit more curved? Let’s modify the chartBody like this:

private var chartBody: some View {
        GeometryReader { geometry in
            Path { path in
                path.move(to: .init(x: 0, y: geometry.size.height))
                // 1
                var previousPoint = Point(x: 0, y: geometry.size.height)
                
                self.data.forEach { point in
                    let x = (point.x / self.maxXValue) * geometry.size.width
                    let y = geometry.size.height - (point.y / self.maxYValue) * geometry.size.height
                    
                    // 2
                    let deltaX = x - previousPoint.x
                    let curveXOffset = deltaX * self.lineRadius
                    
                    // 3
                    path.addCurve(to: .init(x: x, y: y),
                                  control1: .init(x: previousPoint.x + curveXOffset, y: previousPoint.y),   
                                  control2: .init(x: x - curveXOffset, y: y ))
                    
                    previousPoint = .init(x: x, y: y)
                }

Here’s what is happening. First of all, you have to store the previous Point which will be used to calculate the position of curve points.

Now you can calculate X delta between current and previous Point. To get an offset value for curve points you have to multiply the delta with a new property lineRadius. It tells how curved the chart should be. The lineRadius has to be a value within 0…1 range (where 0 means no curve at all). Finally, instead of addLine use the addCurve function. This lets you add two curves on the line between two points. We can achieve that by specifying two control points. The first one is moved to the right side by the calculated offset and the second one to the left side. This gives us a nice effect of a curved line ⎰.

SwiftUI chart 2
Curved line

Now it’s way better! I can’t wait to build the rest of the functionalities on top of it. It’s a great start but there is a lot of work ahead of you. In the next part of the iOS development SwiftUI experiment, you’ll try to add some gradients and transition animation.

I hope you enjoy the post. Thanks for reading and see you soon!

How to choose a software house for a new project?

Choosing a software house for a new project is an important and difficult-to-make decision. The right software company could be invaluable support in building your product and a key factor in its success. Think carefully because the IT company you choose will be part of your daily work for the next few months and maybe even for years.

However, not everything lies with the contractor. Before you start looking for a software house for the new project be prepared. You must know exactly what you want to do. Define and write down your ideas, requirements, and scope of work. Prepare documentation and specify the budget you have. If you do not have all the assumptions, this article will give you the right tools to develop them.

software developer at work
software developer at work

Before you start looking for a software house for the new project be prepared. Define and write down your ideas, requirements, and scope of work.

Questions that you should ask when looking for a software house

At the beginning of the cooperation, each software house will try to collect as much information as is needed to plan and evaluate the project. To be prepared in this regard ask yourself the following questions:

software development team

When choosing a software company for cooperation, think about how you imagine onboarding and project start.

Answering the above questions will help you narrow down the search area and reduce the time it takes for an IT company to meet your needs and expectations. What’s more, by collecting this information you will be a more reliable customer who knows what to expect. Thanks to that your conversations with various software houses will be substantive from the beginning. However, if you do not have all this information, do not break it down. A software company with the right approach to the client will offer you product workshops during which you will verify the idea and discuss all relevant issues.

Important aspects when choosing a software house

When you know what you expect, it’s time to choose the software house that best suits your new betting project. If you have experience and knowledge in the industry, start with recommendations from your network of contacts. Add recommended software houses to your list and keep looking. What should you pay special attention to?

Business fit with your software development partner is a key

Make sure that your software development partner has successfully implemented betting projects in the past or its specific branch that interests you, e.g. horse racing. Visit the website of the company you are considering and review the „case study” tab. If you find projects similar to your idea – that’s a good sign.

Social proof of the IT company

Next, check reviews about the IT company on Google, LinkedIn, FB, and Clutch (or other software development listings). If the opinions are personal, try to reach directly the people who collaborated with this company. Talking to them will help you make a decision. Also, check if the company has industry awards and distinctions.

Understanding your needs

A software company that knows and understands your industry will ask you specific and precise questions about the project. All this to get as much information as possible from the beginning. The more detailed the questions, the more reliable your new partner is. You should work with the software company that asks questions you haven’t thought about and can point out mistakes in your plan.

software development meeting
software development meeting

A software company that knows and understands your industry will ask you specific and precise questions about the project.

Prices when choosing a software house

Often the price of the project is the main factor that determines the choice of a software house. It is natural that you are looking for the most attractive offer, but the lowest price doesn’t mean the best solution. Collect several opinions and compare them with each other. Estimations well below market costs should give you food for thought. At a low price, there is a risk of getting low-quality source code instead. That will generate problems in the operation of the finished product. As a result, the initial savings will be covered by the high costs of fixes repairs and maintenance. If you have a limited budget, divide the project into stages with the software house. That will allow you to create a refined product at the pace that finance allows.

Transparency between you and your software partner

Cooperation with a software partner that is transparent can save you unnecessary nerves and give you full control over the project at every stage of its implementation. Make sure what the onboarding process looks like, as well as current communication, progress reporting during development, or the frequency of deployment. Consider all these factors when choosing a software partner for the next few months or years of cooperation.

IT company with the right technical stack

The experience of the IT company or even individual team members is an important factor that you should consider when making decisions. If you have clear technology requirements, choose an IT company that can meet them. If you do not have the proper knowledge to determine the required technology yourself, ask the software house for product workshops, during which you will specify the project vision and choose the best technologies for its implementation.

Comprehensive software development service

When looking for the software house to implement the project, think ahead. Is the IT company you are considering offering only development services? Or does it have a sufficiently comprehensive team to guarantee you the preparation of both, web and mobile digital products? Can you count on mentoring and consultations? In addition to writing the code, can you count on support in product design? What will happen after the development phase? Will the software house you are considering be able to support you in maintaining the product after it has been launched? Consider the company’s work style and methodologies. Is it flexible and what forms of cooperation does it offer? Choose a software house that offers as many of the services you expect as possible. Cooperation with one partner on many levels significantly facilitates communication and positively affects the quality of the product.

Soft aspects that you shouldn’t ignore

Aside from all technical and business aspects of the project, pay attention to the human factor. Sometimes your intuition knows best. It is important that during conversations with the software house you feel that you understand each other well and also like each other. Make sure you will not have communication problems, meet the team assigned to your project.

Questions that you should before you start looking for a software house

The decision to outsource IT services is not risk-free. A mistake in this matter can be very expensive for you. To minimize the risk of it occurring, please note whether:

You are ready to choose. Good luck!

Choosing a software house to collaborate with is often a difficult and always important decision for your business. The right technology partner can significantly affect the success of your project. You have deep research and several informative meetings ahead of you. I hope this article will help you prepare well and choose the best possible partner. If you are looking for a software house for a betting project, see the CrustLab portfolio and contact us!