Web or mobile app?

Which platforms are best for developing a product?

MOBILE APPS

Mikołaj Mężyk

7/25/2024

person holding black iphone 4
person holding black iphone 4

Most new major digital products are various types of applications. Desktop applications are often the next step or a tool for solving specific, usually highly complex problems (e.g., professional photo editing or IDEs). Therefore, we’ll skip desktop applications. If someone needs a desktop app, they probably already know it. This leaves two main options: web applications or mobile applications.

Web applications are designed to be used via a browser (e.g., ChatGPT). They have several key advantages:

First, the entry barrier for users is very low—just visit a website; no need to download anything to the device. This is a major advantage when aiming to reach a larger audience. The average user has few apps, especially those they use frequently. If our product isn't extremely necessary for them, they might delete it when cleaning up their phone. With a web application, this isn't an issue. Even if users visit once a week, it doesn’t matter. Sometimes it’s even better—if it’s still generating revenue (e.g., due to subscriptions), there’s no need to worry about infrequent use and its consequent minimal costs.

Second, we gain more independence. We don’t have to worry about App Store or Google Play rules or pay their high commissions. We have full control over our product. Of course, we lose some of the perks offered by the giants, but overall, independence almost always pays off.

On the other hand, we have mobile applications. According to many industry experts, they are often the default product for startups.

The main challenge is the need to create software for two operating systems (Android and iOS). This is a significant burden for small teams. The problem used to be even greater because two completely different projects had to be written (Kotlin or Java for Android and Swift for iOS). The enter of React Native and Flutter has significantly improved the situation. These mature systems allow nearly native app performance (especially Flutter). However, you still have to manage everything in two stores, which remains a hassle.

Mobile applications also have many advantages—people (especially younger users) like them, they offer more possibilities for unique features, and can be more complex. If the app is intended to be used as frequently as Facebook or Uber, a mobile app is the best choice.

A slightly less recognized advantage is the ability to work offline. In commercial solutions, this is becoming less necessary (there's always some server or database), but if an app is developed for internal use within a company, the ability to operate independently of internet access can be a significant advantage (especially if it's a simple tool—e.g., a specialized calculator for calculating very specific things).

In summary, the more frequently an app is used and the more complex it is, the more sense it makes to develop it for mobile devices. It’s worth emphasizing that the vast majority of contemporary projects would handle themselves just fine as web applications. Such a project is likely to fare better—lower entry barriers significantly help in acquiring users in the early stages of the app’s life.

Now, what to develop with? In my opinion, Flutter is the best choice. I’ve already discussed its enormous advantages for mobile app development, but that’s just the beginning. Flutter has reached such a level of maturity that web applications built with it perform excellently.

The main advantage of Flutter is writing in Dart. It’s comfortable for developers, fast, and very readable. It’s one of the best languages for maintaining a project. Another huge plus is the ease of transitioning from a web app to a mobile one and vice versa. It’s still the same source code, requiring only minor changes in a few files. This is the most convenient way to manage a product. Any update is written for all systems simultaneously, rather than three completely different projects that need to be consistently maintained (especially since they are often handled by different teams—even large companies sometimes struggle with consistency, let alone a five- or ten-person business).

It’s difficult to cover the entire complexity of the issue in one article. The main takeaway I want you to get from this reading is that web applications are far from passé, especially since most projects don’t require more. Mobile applications are still an interesting option but not always the best solution. Regardless of what we choose, Flutter is a phenomenal tool. Its shortcomings become apparent only in large and specific projects, and a person responsible for such an undertaking will know exactly which other tool will suit them best.