Mobile Development: Beginner's Blog Tutorial
Mobile Development

Mobile Development: Beginner's Blog Tutorial

29 July 20267 min read1205 words
Tags#react-native#expo#cross-platform#first-app

Building a mobile app starts with one decision that shapes everything after it: native or cross-platform. This guide lays out that choice with the trade-offs stated plainly, then walks you through the most beginner-friendly starting point, a React Native app created with Expo, running on your own phone within the hour. By the end you will know which path fits your situation and have a live app on a real device to prove the toolchain works.

The landscape in one honest picture

There are two families of approaches:

  • Native development means building separately for each platform with its own tools: Swift and Xcode for iOS, Kotlin and Android Studio for Android. You get full access to every platform feature the day it ships, the best possible performance, and interfaces that feel exactly right on each platform. The cost is two codebases, two skill sets, and roughly double the work for every feature.
  • Cross-platform development means one codebase that runs on both platforms. The two dominant options are React Native (JavaScript/TypeScript, UI rendered with real native components) and Flutter (Dart, UI drawn by its own rendering engine). Both are mature and both power widely used production apps.

There is also a third path worth naming: if your "app" is really a website people should reach from a phone, a responsive web app or a progressive web app may be all you need, with no app store involved at all. Check that before committing to either of the paths above.

Choosing your path without fooling yourself

Some honest rules of thumb:

  • Pick native when the app leans hard on platform capabilities: heavy camera or audio processing, advanced background behavior, widgets and platform integrations, demanding graphics, or when you target only one platform anyway. Also pick it if you want your skills anchored to one platform vendor's ecosystem for the long term.
  • Pick cross-platform when you are a small team or solo developer who needs both platforms, when the app is mostly screens, lists, forms, and API calls (which describes most apps), or when you already know the language. React Native suits people with JavaScript or React experience; Flutter suits people happy to learn Dart in exchange for very consistent rendering across devices.
  • Know the cross-platform costs going in. You still need a Mac to build and submit iOS apps yourself. Some device features require native modules or configuration per platform, so "write once" is really "write once, adjust per platform at the edges". Framework upgrades occasionally take a painful weekend. None of this outweighs maintaining two codebases for a typical app, but pretending the costs are zero leads to disappointment.

For a first app, this guide uses React Native with Expo. The reasoning is practical: JavaScript knowledge transfers from the web, Expo removes almost all native tooling setup, and you can test on your own phone without owning a Mac or paying any developer fee. If you later outgrow Expo's managed workflow, there is an established route to more control rather than a rewrite.

Step 1: Install the prerequisites

You need three things:

  • Node.js on your computer (an LTS release such as Node.js 24; verify with node -v).
  • Expo Go on your phone, installed from the App Store (iOS) or Google Play (Android). This free app runs your project during development so you do not need to build anything.
  • The same network: your computer and phone connected to the same Wi-Fi, which is how they find each other.

No Xcode, no Android Studio, no emulators. That is the point of starting with Expo.

Step 2: Create the project

In your terminal, run the standard scaffolding command:

npx create-expo-app@latest my-first-app

This creates a folder with a working starter app and installs its dependencies, which takes a few minutes. Then move into the folder and start the development server:

cd my-first-app
npx expo start

The terminal prints a QR code. Leave this running; it is the bridge between your editor and your phone.

Step 3: Run it on your own phone

Open the camera app on iOS or the Expo Go app on Android and scan the QR code from your terminal. Expo Go downloads the JavaScript bundle over Wi-Fi and the starter screen appears on your phone.

Now make it yours. Open the project in your editor, find the main screen file (in current templates that is app/index.tsx), change some visible text, and save. The app on your phone updates within a second or two. This loop, edit on the computer and see it on the device, is your development environment from now on.

If the QR code connects but the app never loads, the usual culprit is the network: corporate and guest Wi-Fi often block the connection between devices. Switching both devices to a personal hotspot is the standard fix, or start the server with npx expo start --tunnel to route the connection through the internet instead of the local network.

What you are looking at: the mental model

A React Native app is built from components, the same idea as React on the web, but with mobile building blocks instead of HTML: View for containers, Text for any text (all text must live inside a Text component, a rule that surprises web developers), Image, Pressable for touchable elements, and ScrollView or FlatList for scrolling content. Layout is done with flexbox through a JavaScript styling object rather than CSS files.

The current Expo template also gives you file-based routing through Expo Router: files in the app/ directory become screens, much like pages in a web framework. Add a file, and you have a new screen to navigate to. For a first project, two or three screens wired together this way teaches you most of what daily mobile work feels like.

Expectations for the road ahead

A fair picture of what comes after the first hour:

  • Development stays pleasant. The edit-and-reload loop on a real device is quick, and most app logic is plain JavaScript you can reason about.
  • Distribution is the steep part. Shipping to the app stores involves developer accounts (both stores charge a fee), signing, review processes, and build services or a Mac for iOS. Budget real time for your first release; every mobile developer does.
  • Some features cost extra effort. Push notifications, in-app purchases, and background tasks each come with platform-specific configuration. They are all achievable; none of them are an afternoon.
  • Test on real devices, both platforms. Screens differ, keyboards differ, safe areas differ. An app that is only ever seen on your own phone will surprise you on someone else's.

A sensible first project is a small utility you would use yourself: a packing checklist, a habit tracker, a unit converter. Two screens, some state, maybe local storage. Finish it, put it on your own phone, and use it for a week before deciding whether the stores are worth the ceremony.

Where to go next

Stuck on a step? Write to the desk and we will help you past it.

Comments

No comments yet. Be the first to share your thoughts.

Mobile Development: Your First App With Expo