Jakub Terlikiewicz

Author: Jakub Terlikiewicz

Technology

[NUCLI TECH TALKS]

How does the creation of mobile app look like from the technological perspective?

Have you already read our post about our museum project in the mobile app? In this post, we will focus specifically on the technological aspect of this project.

If you haven't read the previous post, click here insert link.

If you are a tech geek or already know about the project and want to find out how the application is built from a technological standpoint, you are in the right place.

Let's get into the details. It's about to get serious, but first, let's recall the project's assumptions.

1. Project Assumptions:

To begin with, a few words about our client. Warzelnia Piwa Bydgoszcz is a restaurant that has become a permanent fixture in the landscape of Bydgoszcz's Old Town.

Operating since 2011, the establishment is a culmination of the brewing, culinary, and historical passions of its creators.

The owners of the brewery decided to create an interactive museum to emphasize the historical heritage of brewing in this unique location.

The Brewery Museum will be located within an active and popular restaurant, so creating a conventional museum exhibition is not feasible.

After a zero-workshop and consultations with the Warzelnia Piwa team,
we outlined the most crucial project assumptions for the client:

• The application is intended to enhance the museum exploration experience at Warzelnia Piwa.

• The application aims to transfer a significant portion of the exhibition to the screens of visitors' phones.

• The museum is divided into "stations" that visitors move between. Upon reaching each station, users can activate museum materials related to that station by scanning a QR code in the application.

• Each station in the application should have an assigned article describing it. Articles should include photos, the ability to play historical videos, etc.

• The application must operate on both iOS and Android systems.

• The application needs to be cost-effective in terms of construction and maintenance.

• Adding content, such as articles, photos, and videos, should be simple and intuitive so that employees can independently make changes to the content. This minimizes our role in maintaining the application, simultaneously reducing maintenance costs practically to zero.

• Increasing visitor engagement was also crucial for our client. After considering various options, we proposed creating a quiz game within the application.

Once a visitor accumulates a sufficient number of points in the quiz, they will receive a reward from the restaurant.

Keeping all these considerations in mind, our project team outlined the initial concept of the application.

With the initial application sketches and project assumptions in mind, we proceeded to choose the appropriate technologies.

2. Technology

As mentioned earlier, the application needs to be cost-effective in both development and maintenance. It's evident that the client cannot afford separate teams working on implementation for years.

In this case, we needed to choose something that would allow us to limit the number of involved developers to one team working on the mobile application, API, and deployment.

The obvious solution for us in this context was to use Expo, based on React Native.

One might ask why not Flutter? In our perception, React Native was better suited for this job, not to mention that it is a more mature technology, providing greater flexibility. To simplify this decision, we boiled it down to a few points:

Expo (React Native) allows us to maintain the same code for iOS and Android.

It facilitates easy implementation of the same application for web browsers (React Native Web). It streamlines collaboration between development teams, as both frontend and backend are maintained in the same language, TypeScript.

Application deployment is easy, as Expo handles the build process and pushing to stores.

We have full support for OTA updates, significantly reducing the time required for quick product iteration. Does Expo (React Native) have any drawbacks?

Of course, it does! React Native is not suitable for building applications that require high performance, such as games. However, in this case, the advantages outweighed the disadvantages, and we chose Expo as our main tool.

What about the backend? The answer here was simple. We needed a CMS with the ability to modify code and implement custom endpoints.

An additional advantage for us was the ability to maintain the backend in a serverless environment.

Keeping this in mind, we chose the following technologies:

  • Strapi CMS - an open-source CMS based on NodeJS (Koa).
  • PostgreSQL - battle-tested relational database.
  • Cloudinary - image hosting and optimization.

All of this, of course, was wrapped in a serverless environment, allowing us to limit the client's budget.

The choice of these tools allowed us to deliver the product quickly to the client, minimize implementation time, and reduce the required time for iterating with subsequent versions of the product.

From a technical standpoint, we used the NativeWind library to build the application interfaces, allowing us to directly style components using TailwindCSS.

Other technical aspects included: - TypeScript
- Expo Router
- NativeWind, as mentioned earlier.

The backend development process was somewhat simpler; here, experience with implementing Strapi came in handy, drastically reducing the time needed to build the backend and CMS.

3.Development:

After the client approved our proposals, we moved on to the development phase.

A team of two programmers, led by a project manager, set out to quickly bring the application to the market.

We managed to complete the entire process within 40 working days, including the time needed for consultations with the client.

Summary:

At NucliNet, we understand how crucial State of the Art technologies are for achieving above-average performance in our digital products.

Therefore, before embarking on each project, our team dedicates several hours to thorough research and a profound understanding of the client's needs. This allows us to select technologies that will reduce developers' working time, directly translating into the overall project cost.

Furthermore, by implementing the latest and most effective solutions available on the market, we can guarantee our clients the speed, stability, and security of the products they order.

The example of the application for Warzelnia Piwa illustrates how skillful application of technology enables us to tailor the project to the client's individual business needs.

Jakub Terlikiewicz

Author: Jakub Terlikiewicz

Technology

[2 minutes]

Got idea for new project take a short form

Start now!