From Web to Mobile, Mastering Cross-Platform App Development

No items found.

Author:

Ben Hirst

Published:

June 7, 2023

As a front-end React developer, when tasked with developing a cross-platform mobile application, there were plenty of obstacles and options. After extensive research, here are 5 pieces of advice I would give when developing your first cross-platform mobile app.

Framework

The mobile apps you download have been built in a multitude of different ways, just like websites. It is vital you investigate and take your time when selecting the front-end framework you want to build your app on. The framework needs to leverage your and your team’s skills and knowledge.

As a React developer, working with a team of like minded React developers, it was a given that React Native was the preferred option. We investigated other options such as Ionic and Flutter, but ultimately came to the decision to use React Native. A big deciding factor on this was our ability to leverage in-house talent, empowering us to build high-quality mobile applications efficiently, targeting multiple platforms with native-like performance.

This is because React Native allows you to reuse a significant portion of your existing React codebase when developing mobile applications. Since React Native uses the same underlying principles and syntax as React..

There is also a large community and ecosystem. React Native has a vast and active community of developers, which means there is extensive community support, documentation, and a wide range of third-party libraries and tools available. This ecosystem can accelerate your development process and help you overcome challenges more easily.

Expo

Expo is a free and open-source platform for developing React Native mobile applications. It provides a set of tools, libraries, and services that simplify the development process and streamlines cross-platform app creation. Expo abstracts away many of the complexities associated with native development, allowing developers to focus on building the app's functionality and user interface without much platform specific implementation.

Expo Go, is a companion app that can be installed on iOS and Android devices. It allows you to test and preview your Expo projects in real-time without the need for complicated setup or building separate binaries. With Expo Go, developers can view their app instantly as they make changes to the code, facilitating a faster development and debugging process.

Like React (create-react-app), there is a quick start CLI tool where you can initialise a new project with just a few commands and quickly get started without the need for complex native tooling setup. Expo has a wide directory of native APIs, providing a vast range of pre-built JavaScript modules and APIs that give you access to various device functionalities. This includes items such as camera, push notifications, geolocation, and more. These modules simplify the integration of native features into your app without having to write native code or use additional packages.

Deployment

When building an application, there are testing environments for each app store; Testflight (iOS/App Store) and Play Store. For both iOS and Android stores, users wishing to view the app will need to be invited. This allows for non-developers to test and QA the app before it gets published publicly to the stores.

Expo has a built-in deployment functionality known as Expo Application Services (EAS). However, like all services, it comes with its advantages and disadvantages.

The main advantage of EAS is its simplicity. It's baked into your Expo project, and using the CLI, you can deploy your application in a matter of minutes. It will improve performance as EAS introduces optimisations that will create faster build times and reduced app bundle sizes. This can result in a better user experience and smoother app performance. The CLI tool also prompts its user from start to finish, only needing the information required to successfully deploy and taking its process away from the developer.

However, EAS isn't free. If you have a small scale application with little deployments, this will be your option. But in our scenario, we were deploying our app multiple times a day, largely overlapping Expo’s 30 medium builds (up to 15 iOS) per month. A work around for this will require some more advanced skills that some frontend developers will not have. We used a CI/CD pipeline through Azure for our app, mimicking the same steps as EAS to bundle and deploy. This resulted in unlimited deployments at a fraction of the cost.

Performance

Performance is crucial for both mobile apps and websites, but there are a few key factors that make performance particularly important for mobile apps compared to building a website:

Mobile devices typically have limited processing power, memory, and battery life compared to desktop computers. Users expect mobile apps to be fast, responsive, and efficient in their resource usage. If an app is slow or resource-intensive, it can negatively impact the user experience, drain the device's battery quickly, and even lead to app crashes or freezes.

Mobile users have become accustomed to fast and smooth experiences on their devices. They expect apps to load quickly, respond instantly to interactions, and provide seamless transitions and animations. If an app feels sluggish or unresponsive, users are more likely to abandon it or leave negative reviews, resulting in poor user engagement and app abandonment.

Mobile apps are often used on-the-go, where network connectivity may be limited, unreliable, or subject to fluctuations. It's essential for mobile apps to handle poor network conditions gracefully and provide responsive experiences, even when the connection is slow or intermittent.

Mobile app marketplaces, such as the Apple App Store and Google Play Store, are highly competitive. Users have an abundance of choices, and if an app performs poorly, they can easily switch to a competitor's app. App store rankings and reviews heavily consider performance and user experience, making it critical for mobile apps to deliver optimal performance to attract and retain users.

App Reviews

When it comes to submitting a mobile app to Apple's App Store or Google Play Store for review, there are several key considerations that you should be aware of. Here are some important aspects to keep in mind:

Apple and Google have specific guidelines that outline what is allowed and what is not in terms of app content, functionality, design, and behaviour. It is crucial to thoroughly review and understand these guidelines before starting the development process. Non-compliance with these guidelines can result in app rejection or removal from the app store.

Both Apple and Google prioritise user experience and performance during the app review process. Your app should provide a smooth, intuitive, and engaging user experience. It should also be responsive, load quickly, and not drain excessive battery or network resources.

Ensure that your app does what it claims to do and that all the functionalities are working properly. Be mindful of permissions required by your app and ensure they are justified and necessary for the app's functionality. Unnecessary permissions or privacy-related issues can lead to rejection.

Pay attention to your app's design and user interface. It should be visually appealing, consistent, and easy to navigate. Ensure that your app adheres to the respective platform's design guidelines (e.g., Human Interface Guidelines for iOS) to create a cohesive and native-like experience.

Understand that the app review process takes time, and it can vary between Apple and Google. Plan your app release accordingly and allow for sufficient time for the review process. Be prepared for potential back-and-forth communication or requests for additional information during the review. If working with a client, they need to be aware of this.

It is important to note that the review process for mobile apps differs from websites, as app stores have stricter guidelines and policies to ensure quality, security, and a positive user experience. Understanding and complying with these requirements from the beginning of the development process will help streamline the review process and increase the chances of a successful app launch.

Reach out to Absurd

Our expert teams are eager to collaborate, design, and develop solutions tailored to your unique challenges. Let's create a strategy that drives results and growth.

Talk to us

Get in touch

We love to talk, meet new people and learn about their specific challenges. Whether you have a project requirement or are just exploring your options, leave your details and one of our co-founders will be in touch shortly.

Thank you! Your submission has been received!

Oops! Something went wrong while submitting the form.
Send us an email and we will reply as soon as possible
Hello@thisisabsurd.com