Cohorts
  • Discover
  • About Us
  • Blog
  • Patika.dev
  • Web3

React Native

Mobil Programlama
Mobil Uygulama Geliştirme Nedir
Mobil Uygulama Geliştirme Analizi
Mobil Uygulama Geliştirmede UI & UX
Mobil Uygulama Geliştirmede Renkler

React Native Ortamı
React Native Nasıl Çalışır
macOS Kurulumu
Windows Kurulumu
Proje Dizini Genel
Proje Dizini Android
Proje Dizini iOS

React & React Native Temelleri
React Native Temelleri-Bölüm Tanıtımı
JSX Giriş
JSX & React Native Döküman İncelemesi
Component Yapısı
Component Yapısı (Devam)
Stillendirmeye Giriş
Flex Yapısı
Flex Yapısı (Devam)
Custom Component
Custom Component (Devam)
News App
Patistore

State ve Lifecycle
State ve Lifecycle-Bölüm Tanıtımı
State Giriş
State Devam
Lifecycle Giriş
Lifecycle Devam (Declarative State Yapısı)
Lifecycle Devam (Mount)
Lifecycle Devam (Clean up)
Class vs Functional Component
Music App (İnceleme)
Music App
Music App (Devam)
ToDo

Navigasyon
Navigasyon-Bölüm Tanıtımı
React Navigation Paketinin İncelenmesi
React Navigation Paket Kurulumu
React Navigation Paketine Başlangıç
Sayfalar Arası Geçiş
Sayfa Geçişlerinde Veri Aktarma
Kebap Fitness App
Tab & Drawer Navigator Modülleri
Nested Navigation Yapısı

Web API-Bölüm Tanıtımı
Web API nedir?
JSON Veri Tipi
Axios paketi ile HTTP Request
Promise Çözümleme (then&catch)
Promise Çözümleme (async&await)
Çekilen Veriyi Görüntüleme
Dükkan (Veri çekme ve tasarım )
Dükkan (Custom Hook yapısı)
Dükkan (Lottie paketi ile animasyonlar)
Dükkan (Detay sayfası)
Tarifka

State Management (Redux)
State Management nedir?
Redux ile State Management Temelleri
Redux Detayları ve Tekrar
Mevcut Bir Yapıya Redux Entegrasyonu
Dükkan (Login Tasarımı)
Dükkan (Formik)
Dükkan (Vector Icons)
Dükkan (usePost Custom Hooku)
Dükkan (Redux Yapısı)
Dükkan (Logout)
kodwork

Firebase Tanıtımı ve Kurulumu
Firebase Auth Modülü
Firebase Realtime DB
Firebase Realtime DB (Devam)
bana ne? (Generic Style)
bana ne? (Auth sayfaları)
bana ne? (Auth işlemleri)
bana ne? (Content Input componenti)
bana ne? (Content göndermek)
bana ne? (Content çekmek)
bana ne? (Log out işlemleri)
bana ne? (Dislike??)
bana ne? (Uygulamayı tamamlayış)
Codetalks

Uygulama İcon Değiştirme (Android)
Uygulama İcon Değiştirme (iOS)
Uygulama Release Alma (Android)
Uygulama Release Alma (iOS)
Uygulama Mağazası (App Store Connect)
Uygulama Mağazası (Google Play Console)

Test Nedir? Neden Yazılır?
İlk Testimizi Yazalım
Fonksiyon Test Etme
Örnek-Stil Testi
Uygulamanın Genel Testi
Coverage

GCP ve API Key Alma
Maps Paketinin Yüklenmesi
Harita Verisinin Çekilmesi
Loading Componenti
Markerleri Görüntüleme
useRef Hook'u ve Zoom İşlemi
User Card Modal Eklentisi

Proje Raporu Nedir
Örnek Proje Raporu Çıkarma

React ve React Native Temelleri


JSX


React'ın dil formatıdır. Bir nevi Syntatic Sugar yapısıdır aslında. Daha çok okunabilir bir format sunar.


Mesela şu yapıyı;


React.createElement(CatComponent, { name: "Miyavko", isCute: true }, "Meow!");


Şu formatta yazabilmeye olanak sağlar.


<CatComponent name="Miyavko" isCute={true}>
  Meow!
</CatComponent>


Component


React dünyasınındaki her bir parça. Değer alabilen, aldığı değerleri işleyebilen özel yapılar.


const RockstarCard = (props) => {
  return (
    <View style={styles.rockstar}>
      <Text> {props.name} is rocking! 🔥 </Text>
    </View>
  );
};


Mesela burada RockstartCard adında bir component tanımlanmış. Baştan sona bir function olduğu için bu yapılara Functional Component denir. Aldığı props parametresi ise ona gönderilebilen özel değerleri temsil eder.


Bu component'i kullanmak istersek de;


<RockstarCard name="Freddie Mercury" />


şeklinde kullanırız.


Styling


React Native Yoga layout yapısını kullanır. Aynı CSS'de olduğu gibi benzer property'ler kullanılarak isimlendirme yapılır.


Mesela;


    StyleSheet.create({
          backgroundColor: 'red',
          padding: 10,
          marginTop: 5,
          borderRadius: 20
          borderWidth: 1
    })


yapısı örnek bir stillendirmedir.


  • https://yogalayout.com/playground/
  • https://railslove.github.io/react-flexbox-playground/
  • https://flexbox.buildwithreact.com


Custom Component


React olabildiğince sadece ve yalın bir kod yazmayı hedefler. Karmaşıklığa doğru gidebilecek her bir component yapısı sadeleştirilmelidir. Haliyle okunması gittikçe zorlaşan, yönetilmesi zor bir yapı sezdiğinizde bunu parçalara bölüp kodları ayırmanız gerek. Bu arayüz bileşenleri için de geçerli.


Tekrarlı kullanıma ihtiyaç duyulabilecek bir yapı söz konusuyla burada devreye onu bileşenlere ayırmak giriyor. Kendi yaşam döngüleri olan componentler üzerinden gitmek her zaman karmaşık yapılara kıyasla daha mantıklı bir çözümdür.


const App = () => {
  return (
    <View style={styles.container}>
        <View style={styles.input_container}>
            <TextInput
                placeholder="Username.." 
                onChangeText={setUsername}
                value={username}
                style={styles.input}
            />
            <View style={styles.button_container}>
                <Icon name="account" size={20}>
                <Button title="Username" onPress={handleUsername}/>
            </View>
        </View>
        <View style={styles.input_container}>
            <TextInput
                placeholder="Email address.." 
                onChangeText={setEmail}
                value={email}
                style={styles.input}
            />
            <View style={styles.button_container}>
                <Icon name="account" size={20}>
                <Button title="Send Mail" onPress={handleSendMail}/>
            </View>
        </View>
        <View style={styles.input_container}>
            <TextInput
                placeholder="Password.." 
                onChangeText={setPassword}
                value={password}
                style={styles.input}
            />
            <View style={styles.button_container}>
                <Icon name="key" size={20}>
                <Button title="Send Password" onPress={handlePassword}/>
            </View>
        </View>
    </View>
  );
};


VS


const Input = ({value, placeholder, onChangeText, icon, title, onSubmit}) => {
        <View style={styles.container}>
            <TextInput
                placeholder={placeholder} 
                onChangeText={onChangeText}
                value={value}
                style={styles.input}
            />
            <View style={styles.buttoncontainer}>
                <Icon name={icon} size={20}>
                <Button title={title} onPress={onSubmit}/>
            </View>
        </View>
}

const App = () => {
  return (
    <View style={styles.container}>
        <Input
            value={username}
            placeholder="Username.."
            onChangeText={setUsername}
            icon="account"
            title="Send Username"
            onSubmit={handleUsername}
        />
        <Input
            value={email}
            placeholder="Email address.."
            onChangeText={setEmail}
            icon="account"
            title="Send Mail"
            onSubmit={handleSendMail}
        />
        <Input
            value={password}
            placeholder="Password...."
            onChangeText={setPassword}
            icon="key"
            title="Send Password"
            onSubmit={handlePassword}
        />
    </View>
  );
};


Hangisi daha okunabilir?


🔧


  • https://tr.reactjs.org/docs/thinking-in-react.html
  • https://reactnative.dev/docs/intro-react
  • https://www.fastfwd.com/custom-component-in-react-native/
  • https://www.digitalocean.com/community/tutorials/how-to-create-custom-components-in-react
  • https://www.freecodecamp.org/news/how-the-golden-rule-of-react-components-can-help-you-write-better-code-127046b478eb/
Previous
Next

Lesson discussion

Swap insights and ask questions about “React Native”.

Enroll to participate
Start the course to unlock the discussion. Enrolling helps us keep conversations relevant to learners.
Cohorts
WebsiteDiscoverBlogPatika.devRise In
CoursesCircleRustSoliditySolanaWeb3 FundamentalsBlockchain Basics
CompanyAbout UsTerms of UsePrivacy PolicyGDPR NoticeCookies
Don't miss any update!

Disclaimer: The information, programs, and events provided on https://cohorts.patika.dev is strictly for upskilling and networking purposes related to the technical infrastructure of blockchain platforms. We do not provide financial or investment advice, nor do we make any representations regarding the value, profitability, or future price of any blockchain or cryptocurrency. Users are encouraged to conduct their own research and consult with licensed financial professionals before engaging in any investment activities. https://cohorts.patika.dev disclaims any responsibility for financial decisions made by users based on the information provided here.

© 2026 Cohorts, All rights reserved