Three types of app options (as a web developer entrepreneur)

Building an app is not easy, especially if you are a web developer. When I first built an app, I was puzzled about what options I had and what the best choices were for my situation. I didn't know anything back then, so I had to learn through many mistakes, often regretting my decisions.

In today's article, I will explain what options you have, when trying to build an app as not an app developer, but as a web developer. I'll also share my opinionated recommendations based on my own experience and my mistakes.

Let's get started!

1. Three Types of Apps

When it comes to mobile app development, there are three main options: Native , Cross-Platform, and WebView Apps. Let's explore each in detail.

1-1. Native App (iOS, Android)

What is it?

This is the "original" way of building an app. Apple and Google provided a framework/language/guide to make people to build an app, and this is it.

  • iOS apps are built using Swift
  • Android apps are built using Kotlin/Java

Pros

  • Performance: Best performance and user experience
  • High-quality libraries: Full access to platform-specific features
  • Latest technology: Direct access to latest technologies (it means that you will be able to use features faster than any other stacks)

Cons

  • Stiff learning curve: Need to learn different knowledge for each platform
  • High maintaining cost: Higher maintenance costs since there should be two codebases for iOS and Android
  • Longer development time: You have to do everything twice for every features you want to add

1-2. Cross-Platform App (React Native, Flutter)

What is it?

An application built using frameworks that compile into native code for both iOS and Android from a single codebase. Hmm.... what? Ok in simple terms, some coding geniuses(like developers in Meta or Google) made a tool to build iOS and Android app at the same time only using one language or framework! Popular frameworks include React Native, Flutter.

Pros

  • Single codebase: Single codebase for both platforms
  • Faster development than native apps: Faster development compared to native apps
  • Many useful libraries: Large community and extensive libraries

Cons

  • Learning curve: Learning curve for framework-specific concepts
  • Less Performant than native: Performance overhead compared to native apps(but not that significant these days tbh)

1-3. WebView App

What is it?

An application that uses a WebView component (essentially an internal browser) to display a website as a mobile app. You can think of it as a "website wrapper" to make a website like an app.

Pros

  • No learning curve: Reuse existing web codebase and knowledge
  • Single codebase including web!!: Single codebase for web and mobile
  • Familiarity: Familiar web development workflow
  • NPM libraries: Access to npm ecosystem and web libraries
  • Development Speed: Rapid development and deployment

Cons

  • Performance: Performance limitations compared to native apps.
  • Extra integration works needed: Platform integration requires additional work since it uses webview.
  • Additional UX handling needed: You need to put extra effort to make it look like an app, or it may not feel as "native" to users.

2. So.... what should I have to choose?

While the answer to this kind of questions often ended up with "it depends,"
..... but let me give you my opinionated answer to that.

Choose a WebView app.

Here's why I recommend this approach, especially for web developers:

2-1 Advantages of the WebView Approach

Lower Maintenance Cost

  • Single codebase covers both web and mobile platforms
  • Reduces development time and resources
  • Easier to manage updates and fixes

Less learning curve

  • Leverage existing web knowledge
  • No need to learn new programming languages, just use javascript

Speed, Speed, Speed

  • Quick iterations and updates since you are using familiar tech stack.
  • Immediate bug fixes without app store approval
  • Faster time-to-market

2-2 Considerations and Challenges

  • WebView-specific issues need attention
  • Some native features require additional integration work
  • Authentication and deep linking need special handling

3. WebView Implementation Options

If you decide to go with the WebView approach, you have several implementation options:

3-1 Native + WebView

  • Direct implementation using platform-specific WebView components
  • Maximum control over native features
  • Requires native development knowledge

3-2 React Native + WebView

  • Uses React Native's WebView component
  • Familiar for React developers
  • Good balance of native features and web capabilities

3-3 Capacitor (formerly Cordova, PhoneGap)

  • Full-featured framework for WebView apps
  • Rich plugin ecosystem
  • Good documentation and community support

3-4 next2app (This is what I'm building)

  • Simplified WebView wrapper for Next.js applications
  • Automated build and deployment process
  • Optimized for web developers

4. Final Verdict

If you're a web developer trying to build an app without unnecessary complications, consider using next2app. Based on my experience building apps as a web developer, I've simplified and automated many common processes in this tool. It provides the fastest path from web application to mobile app while maintaining the development experience you're familiar with.

Remember, the best choice depends on your specific needs, but for most web developers looking to expand into mobile apps, a WebView-based approach offers the most practical path forward.