React Native

Агата Рудько

Зачем нужны мобилки?

🥺

А как разрабатывать мобильные приложения?

  • Java, Kotlin
  • Objective C, Swift
  • Кроссплатформенные приложения

А как запускать?

  • Android Studio
  • Xcode

Что такое React Native и зачем он нужен?

- Пишем сразу под несколько платформ

- Пишем на JS, а под капотом работает нативный код

- Разрабатываем интерфейс с помощью React

Как писать код на React Native?

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

function App() {
  return (
    <View>
      <Text>Hello React Native!</Text>
    </View>
  );
}

Базовые компоненты

View, Text:

 

View aka div, но стили пробрасываем в style, а не в className)

 

Любой текст (буковки) может быть только внутри Text.

Взаимодействие с пользователем

Button, TouchableOpacity, TouchableHighlight:

 

Button - это нативная кнопка 🤔🤔🤔.
 

TouchableOpacity - это штука на которую можно нажать, и она поменяет свой opacity 🤔🤔🤔.
 

TouchableHighlight - это штука на которую можно нажать, и она поменяет цвет фона 🤔🤔🤔.

Обработка действий

Нажатия обрабатываются через onPress (тк. тыкаем пальцем ☝️).

 

Нажатия могут быть обработаны не на всех компонентах. На View нажать нельзя! Можно нажать на Button, Touchable компоненты, Text и другие.

Как добавить стиля

StyleSheet

import { StyleSheet } from 'react-native';

export default StyleSheet.create({
  container: {
    flex: 1,
    alignItems: 'center',
    justifyContent: 'center',
  },
  title: {
    fontSize: 36,
    marginBottom: 5,
  },
  itemText: {
    fontSize: 18,
    color: 'rgba(0, 0, 0, 0.5)',
  },
});

Флексим

Размещать элементы на экране можно только с помощью FlexBox. Это единственная опция, которая есть в React Native.

 

Другими словами: display: flex всегда.

 

Padding, margin, position и остальное счастье работает нормально.

Ещё приколы

ScrollView:

 

По умолчанию прокрутки нет нигде. Если хотите её добавить - нужно обернуть все в ScrollView. Он в свою очередь пригоден для простых конструкций. Если нужен большой длинный список, то нужно использовать FlatList.

Ещё приколы

SafeAreaView:

Остальной зоопарк компонентов

Навигация 🛰️

На вебе у нас есть страницы. В приложении - это экраны.

 

Переходить по экранам нам позволяют навигаторы.

function Home() {
  return (
    <Tab.Navigator>
      <Tab.Screen name="Feed" component={Feed} />
      <Tab.Screen name="Messages" component={Messages} />
    </Tab.Navigator>
  );
}
function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator>
        <Stack.Screen name="Home" component={Home} />
        <Stack.Screen name="Profile" component={Profile} />
        <Stack.Screen name="Settings" component={Settings} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}

ВопросЫ?

17 - React Native

By Startup Summer