0Pricing
React Native Academy · Lektion

Ihr erstes Expo-Projekt erstellen

Verwenden Sie `npx create-expo-app`, um ein neues Projekt anzulegen, sehen Sie sich die generierten Dateien an und verstehen Sie den Einstiegspunkt einer React-Native-Anwendung.

Ihr erstes Expo-Projekt erstellen ist eine kostenlose React Native Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Native Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Native Academy-Kurs umfasst insgesamt 4 Lektionen.

The create-expo-app Command

Der einfachste Einstieg ist npx create-expo-app MyApp. Damit wird die neueste Vorlage geladen, Ordner werden eingerichtet und alles wird installiert. Füge einen Template-Flag hinzu, um leer oder mit Navigation zu starten.

# Create a new Expo project
npx create-expo-app MyFirstApp

# Create with a blank TypeScript template
npx create-expo-app MyFirstApp --template blank-typescript

# Create with tabs navigation template
npx create-expo-app MyFirstApp --template tabs

# Move into the project
cd MyFirstApp

Generated Folder Structure Overview

Lernen Sie Ihre neuen Ordner kennen. App.js ist der Einstiegspunkt, den React zuerst rendert, app.json enthält Ihre Konfiguration und assets/ speichert Bilder und Schriften. Der Code bildet alles ab.

MyFirstApp/
├── App.js          # Root component (entry point)
├── app.json        # Expo configuration
├── package.json    # NPM dependencies & scripts
├── babel.config.js # Babel transpiler config
├── assets/         # Images, fonts, icons
│   ├── icon.png
│   ├── splash.png
│   └── adaptive-icon.png
└── node_modules/   # Installed packages

The app.json Configuration File

app.json ist die Konfigurationszentrale deines Projekts — App-Name, Version, Symbole, Splash-Screen und plattformspezifische Einstellungen für iOS und Android. Änderungen daran erfordern einen Neustart des Builds und kein Hot-Reloading.

{
  'expo': {
    'name': 'My First App',
    'slug': 'my-first-app',
    'version': '1.0.0',
    'orientation': 'portrait',
    'icon': './assets/icon.png',
    'splash': {
      'image': './assets/splash.png',
      'resizeMode': 'contain',
      'backgroundColor': '#ffffff'
    },
    'ios': {
      'bundleIdentifier': 'com.yourname.myfirstapp'
    },
    'android': {
      'package': 'com.yourname.myfirstapp'
    }
  }
}

The package.json and Scripts

package.json listet Ihre Abhängigkeiten und Skripte auf. Die Standardwerte – start, ios, android, web – starten Ihre App an verschiedenen Orten. Sie können auch Ihre eigenen Skripte hinzufügen.

// package.json (excerpt)
{
  'name': 'my-first-app',
  'version': '1.0.0',
  'main': 'node_modules/expo/AppEntry.js',
  'scripts': {
    'start': 'expo start',
    'android': 'expo start --android',
    'ios': 'expo start --ios',
    'web': 'expo start --web'
  },
  'dependencies': {
    'expo': '~50.0.0',
    'react': '18.2.0',
    'react-native': '0.73.x'
  }
}

Understanding App.js — The Root Component

App.js exportiert die Stammkomponente, die React Native als Erstes rendert – jede andere Komponente befindet sich darin. Es ist die erste Datei, die Sie bearbeiten, ähnlich wie index.html in einem Webprojekt.

import { StatusBar } from 'expo-status-bar';
import { StyleSheet, Text, View } from 'react-native';

export default function App() {
  return (
    <View style={styles.container}>
      <Text>Open up App.js to start working!</Text>
      <StatusBar style='auto' />
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});

JSX: Describing UI in JavaScript

JSX ermöglicht es dir, HTML-ähnliches Markup in JavaScript zu schreiben, um deine Benutzeroberfläche zu beschreiben. Es ist jedoch kein HTML — verwende style anstelle von class, onPress anstelle von onclick. Der Code zeigt es.

import { View, Text } from 'react-native';

const name = 'World';
const count = 42;

export default function App() {
  return (
    <View>
      {/* This is a JSX comment */}
      <Text>Hello, {name}!</Text>
      <Text>You have {count} messages.</Text>
      {count > 0 && <Text>You have unread items.</Text>}
    </View>
  );
}

Babel and Transpilation

Expo verwendet Babel, um modernes JavaScript und JSX in Code zu übersetzen, den jede Plattform ausführen kann. Die Konfiguration musst du nur selten anpassen – meistens, um praktische Pfad-Aliase wie @/components hinzuzufügen.

// babel.config.js (default Expo config)
module.exports = function(api) {
  api.cache(true);
  return {
    presets: ['babel-preset-expo'],
    plugins: [
      // Example: add module resolver for clean imports
      [
        'module-resolver',
        {
          root: ['./'],
          alias: {
            '@components': './components',
            '@screens': './screens',
          },
        },
      ],
    ],
  };
};

Installing Additional Dependencies

Um Pakete hinzuzufügen, wird npx expo install gegenüber npm install bevorzugt – es wählt die Version aus, die zu Ihrem Expo SDK passt, und vermeidet so subtile Versionskonflikte. Reines npm ist für reine JS-Pakete in Ordnung.

# Use expo install for SDK-compatible packages
npx expo install expo-camera expo-location
npx expo install react-native-maps

# Use npm install for pure JS packages
npm install lodash date-fns

# Check for outdated Expo SDK packages
npx expo install --check

# Fix version mismatches
npx expo install --fix

Making Your First Code Change

Öffnen Sie App.js, ändern Sie den Text und speichern Sie — Fast Refresh aktualisiert Ihre App in unter einer Sekunde und behält dabei den Zustand bei. Probieren Sie, eine Farbe anzupassen, um sofortiges Feedback zu sehen. ✨

// Modified App.js
import { StyleSheet, Text, View } from 'react-native';

export default function App() {
  return (
    <View style={styles.container}>
      <Text style={styles.title}>Hello, React Native!</Text>
      <Text style={styles.subtitle}>I made my first change.</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#f0f4ff',
    alignItems: 'center',
    justifyContent: 'center',
  },
  title: { fontSize: 24, fontWeight: 'bold', color: '#333' },
  subtitle: { fontSize: 16, color: '#666', marginTop: 8 },
});

The Expo SDK and Managed Workflow

Das Expo SDK bietet Ihnen vorgefertigte Module für Kamera, Standort, Sensoren und mehr. Im verwalteten Workflow übernimmt Expo den nativen Code für Sie — einfacher, aber auf SDK-APIs beschränkt.

// Example: using Expo SDK modules
import * as Battery from 'expo-battery';
import * as Haptics from 'expo-haptics';

async function checkBattery() {
  const level = await Battery.getBatteryLevelAsync();
  console.log('Battery level:', level); // 0.0 - 1.0
}

async function vibrate() {
  await Haptics.notificationAsync(
    Haptics.NotificationFeedbackType.Success
  );
}

TypeScript Support in Expo

Expo bietet erstklassigen TypeScript-Support. Beginne mit der TypeScript-Leervorlage (blank-typescript) oder benenne App.js in App.tsx um. TypeScript erkennt Typfehler frühzeitig und verbessert die Autovervollständigung.

// App.tsx with TypeScript
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';

interface Props {
  greeting?: string;
}

export default function App({ greeting = 'Hello' }: Props) {
  const message: string = greeting + ', TypeScript!';
  return (
    <View style={styles.container}>
      <Text>{message}</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: { flex: 1, alignItems: 'center', justifyContent: 'center' },
});

Quick Check

Teste dein Verständnis der React Native Mobile Development-Konzepte aus dieser Lektion.

Lesson Recap

Du hast deine erste App erstellt: create-expo-app baut sofort ein vollständiges Projekt, app.json steuert die Einstellungen und Fast Refresh zeigt Änderungen live an. Als Nächstes: Auf Geräten ausführen! 🚀

Häufig gestellte Fragen

Ist die Lektion „Ihr erstes Expo-Projekt erstellen“ kostenlos?

Ja — der vollständige Text von „Ihr erstes Expo-Projekt erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Native Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Native Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Ihr erstes Expo-Projekt erstellen“?

Verwenden Sie `npx create-expo-app`, um ein neues Projekt anzulegen, sehen Sie sich die generierten Dateien an und verstehen Sie den Einstiegspunkt einer React-Native-Anwendung. Du übst React Native Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Native Academy zu starten?

Keine Vorkenntnisse erforderlich. React Native Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Ihr erstes Expo-Projekt erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Native Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Native Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Node, Expo CLI und Simulatoren installieren
  2. Ihr erstes Expo-Projekt erstellen
  3. Auf Gerät und Emulator ausführen
  4. Die Projektstruktur verstehen
← Zurück zu React Native Academy