React Native

React Native ile Uygulama Geliştirmek

Volkan ŞENGÜL

@volkansengul

React Native Nedir?

Sihirli değnek değil !

RN Neden Ortaya Çıktı

  • Kısa zamanda
  • Az kişi ile
  • En düşük maliyet ile
  • Her platforma uygulama geliştirmek için

Neyi Hedefliyor?

  • Javascript
  • Web Geliştirme yapar gibi
    • HTML -> JSX
    • Css 

Neden React Native

  • Tamamen Native !
  • Javascript bilmek yeterli
  • Hot Reloading / Live Reloading
  • Güçlü bir topluluk
  • UI Inspector
  • Geliştirme aşamasında yüksek verimlilik

Kimler Kullanıyor

  • Facebook
  • Instagram
  • Bloomberg
  • Uber
  • Wix
  • WallMart
  • Discord
  • ...

Kurulum

https://facebook.github.io/react-native/docs/getting-started

Uygulama Oluşturmak

react-native init myapp

Nasıl çalışır?

RN Temel Yapıtaşları

  • React
  • UI Componentleri
  • Sistem API'leri
  • 3rd Party Component
  • Styling ( css / flexbox )

RN Temel Yapıtaşları

  • State Yönetimi
    • ​Redux
    • Mobx
    • Hooks ?
  • Navigation
    • ​react-navigation
    • react-native-navigation

React

  • JavasScript Tabanlı
  • UI Component Kütüphanesi
  • Shadow DOM != Virtual DOM

UI Componentler

  • View
  • Button
  • Text
  • TextInput
  • TouchableOpacity
  • Image

Sistem API'leri

  • AppState
  • Vibration
  • Keyboard
  • Linking
  • Dimensions
  • Share
  • Alert
  • Netinfo

3rd Party Component

  • JavaScript + Native
    • linking ?

Styling

  • Css ?
  • Flexbox

React : İyi

React : Kötü

React : Çirkin

Fundamentals

React için önemli kavramlar

Component

Props (Stateless Data)

  • Render maliyetini azaltır
  • Değişmeyecek veriler için kullanılır

State (Statefull Data)

  • Değişebilir veriler için kullanılır
  • Her değişimde o bileşen yeniden render edilir
  • this.state şeklinde erişilir ve this.setSate ile tanımlanırlar

JSX

  • JSX ⇒ (Transpilers) ⇒ JS
  • XML benzeri sözdizim

Kurallar

<element></element> // doğru
<element/> // doğru
<element> // yanlış

Açılan eleman mutlaka kapatılmalı

Alt elemanlar tek bir eleman içinde sarmalanmalı.

// doğru
(<element>
   <element1/>
   <element2/>
</element>)
 
//yanlış
(
<element1/>
<element2/>
)

Teşekkürler

React Native Giriş

By Volkan Şengül

React Native Giriş

react native'e giriş yapıyoruz.

  • 414