# Hello Mobile Navigation Let's use React Navigation to build a simple chat application for Android and iOS. ## Setup and Installation First, make sure you're [all set up to use React Native](http://facebook.github.io/react-native/docs/getting-started.html). Next, create a new project and add `react-navigation`: ```sh # Create a new React Native App react-native init SimpleApp cd SimpleApp # Install the latest version of react-navigation from npm npm install --save react-navigation # Run the new app react-native run-android # or: react-native run-ios ``` Verify that you can successfully see the bare sample app run on iOS and/or Android: ```phone-example bare-project ``` We want to share code on iOS and Android, so lets delete the contents of `index.ios.js` and `index.android.js` and replace it with `import './App';`. Now lets create the new file for our app implementation, `App.js`. ## Introducing Stack Navigator For our app, we want to use the `StackNavigator` because we want a conceptual 'stack' navigation, where each new screen is put on the top of the stack and going back removes a screen from the top of the stack. Let's start with just one screen: ```js import React from 'react'; import { AppRegistry, Text, } from 'react-native'; import { StackNavigator } from 'react-navigation'; class HomeScreen extends React.Component { static navigationOptions = { title: 'Welcome', }; render() { return Hello, Navigation!; } } const SimpleApp = StackNavigator({ Home: { screen: HomeScreen }, }); AppRegistry.registerComponent('SimpleApp', () => SimpleApp); ``` The `title` of the screen is configurable on the [static `navigationOptions`](/docs/navigators/navigation-options), where many options can be set to configure the presentation of the screen in the navigator. Now the same screen should appear on both iPhone and Android apps: ```phone-example first-screen ``` ## Adding a New Screen In our `App.js` file, let's add a new screen called `ChatScreen`: ```js class ChatScreen extends React.Component { static navigationOptions = { title: 'Chat with Lucy', }; render() { return ( Chat with Lucy ); } } ``` We can then add a button to our `HomeScreen` component that links to `ChatScreen` using the `routeName` `Chat`. ```js class HomeScreen extends React.Component { static navigationOptions = { title: 'Welcome', }; render() { const { navigate } = this.props.navigation; return ( Hello, Chat App!