{"id":36526,"date":"2025-12-19T11:00:39","date_gmt":"2025-12-19T08:00:39","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/"},"modified":"2025-12-19T11:00:39","modified_gmt":"2025-12-19T08:00:39","slug":"expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/","title":{"rendered":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim"},"content":{"rendered":"<h2>Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim<\/h2>\n<p>Mobil uygulama geli\u015ftirme d\u00fcnyas\u0131nda, React Native, tek bir kod taban\u0131yla hem iOS hem de Android platformlar\u0131 i\u00e7in uygulama olu\u015fturma yetene\u011fiyle \u00f6ne \u00e7\u0131k\u0131yor. Ancak bu s\u00fcrecin kurulum ve y\u00f6netim karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 basitle\u015ftiren g\u00fc\u00e7l\u00fc bir yard\u0131mc\u0131 var: Expo Framework. Bu rehber, Expo&#8217;nun temel prensiplerini, sundu\u011fu avantajlar\u0131 ve modern React Native uygulamalar\u0131 geli\u015ftirirken nas\u0131l etkili bir \u015fekilde kullan\u0131labilece\u011fini ad\u0131m ad\u0131m a\u00e7\u0131klayarak, geli\u015ftiricilere evrensel uygulamalar in\u015fa etme yolculuklar\u0131nda sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sunmay\u0131 ama\u00e7lamaktad\u0131r.<\/p>\n<h3>Expo Nedir ve Neden Kullanmal\u0131y\u0131z?<\/h3>\n<p>Expo, React Native uygulamalar\u0131 geli\u015ftirmeyi ve da\u011f\u0131tmay\u0131 kolayla\u015ft\u0131ran a\u00e7\u0131k kaynakl\u0131 bir ara\u00e7 seti ve \u00e7er\u00e7evedir. Geli\u015ftiricilerin native mod\u00fcllerle u\u011fra\u015fmadan, JavaScript ile h\u0131zla prototip olu\u015fturmas\u0131na, test etmesine ve uygulamalar\u0131n\u0131 yay\u0131nlamas\u0131na olanak tan\u0131r. Expo, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131rken, ayn\u0131 zamanda evrensel uygulamalar olu\u015fturma potansiyelini de beraberinde getirir.<\/p>\n<h4>React Native Geli\u015ftirmede Expo&#8217;nun Rol\u00fc<\/h4>\n<p>React Native, JavaScript kullanarak native mobil uygulamalar olu\u015fturmay\u0131 m\u00fcmk\u00fcn k\u0131lar. Ancak, bu uygulamalar\u0131n cihaz\u0131n donan\u0131m\u0131na (kamera, konum, bildirimler vb.) eri\u015fmesi gerekti\u011finde, genellikle native kod (Objective-C\/Swift veya Java\/Kotlin) yazmak veya mevcut native mod\u00fclleri entegre etmek gerekir. Bu s\u00fcre\u00e7, \u00f6zellikle web geli\u015ftirme ge\u00e7mi\u015fi olanlar i\u00e7in karma\u015f\u0131k olabilir. Expo, bu native katman\u0131 soyutlayarak, geli\u015ftiricilerin sadece JavaScript ile \u00e7al\u0131\u015fmas\u0131na ve bir\u00e7ok cihaz \u00f6zelli\u011fine haz\u0131r API&#8217;ler arac\u0131l\u0131\u011f\u0131yla eri\u015fmesine olanak tan\u0131r. Bu sayede, geli\u015ftiriciler native kod yazma veya derleme ortamlar\u0131 kurma gibi zorluklarla kar\u015f\u0131la\u015fmadan h\u0131zl\u0131ca \u00fcretime ge\u00e7ebilirler.<\/p>\n<h4>Managed Workflow ve Bare Workflow Fark\u0131<\/h4>\n<p>Expo, iki ana i\u015f ak\u0131\u015f\u0131 sunar:<\/p>\n<ul>\n<li><strong>Managed Workflow:<\/strong> Expo&#8217;nun sundu\u011fu t\u00fcm kolayl\u0131klar\u0131 ve ara\u00e7lar\u0131 kullan\u0131rs\u0131n\u0131z. Uygulaman\u0131z\u0131n native kod taban\u0131 Expo taraf\u0131ndan y\u00f6netilir. Bu, h\u0131zl\u0131 ba\u015flang\u0131\u00e7, kolay test ve OTA (Over-the-Air) g\u00fcncellemeleri gibi avantajlar sunar. Ancak, sadece Expo SDK&#8217;s\u0131nda bulunan native mod\u00fclleri kullanabilirsiniz. \u00d6zel native kod veya \u00e7ok spesifik native k\u00fct\u00fcphaneler ekleyemezsiniz.<\/li>\n<li><strong>Bare Workflow:<\/strong> Bu i\u015f ak\u0131\u015f\u0131, geleneksel bir React Native projesine daha yak\u0131nd\u0131r. Expo ara\u00e7lar\u0131n\u0131 kullanmaya devam edersiniz ancak native kod taban\u0131na tam eri\u015fiminiz olur. Bu, projenize istedi\u011finiz native mod\u00fcl\u00fc ekleyebilece\u011finiz anlam\u0131na gelir. Managed workflow&#8217;dan bare workflow&#8217;a ge\u00e7i\u015f yapmak m\u00fcmk\u00fcnd\u00fcr (<code>expo eject<\/code> veya EAS Build ile <code>development client<\/code> olu\u015fturma gibi y\u00f6ntemlerle), bu da projeniz b\u00fcy\u00fcd\u00fck\u00e7e veya \u00f6zel ihtiya\u00e7lar ortaya \u00e7\u0131kt\u0131k\u00e7a esneklik sa\u011flar.<\/li>\n<\/ul>\n<h4>Expo&#8217;nun Avantajlar\u0131: H\u0131zl\u0131 Geli\u015ftirme ve Evrensel Destek<\/h4>\n<p>Expo&#8217;nun ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>H\u0131zl\u0131 Kurulum:<\/strong> Geleneksel React Native kurulumuna g\u00f6re \u00e7ok daha h\u0131zl\u0131 ve kolayd\u0131r. Native geli\u015ftirme ortamlar\u0131 kurmaya gerek kalmaz.<\/li>\n<li><strong>Basit Geli\u015ftirme:<\/strong> JavaScript ile t\u00fcm native \u00f6zelliklere eri\u015fim sa\u011flar.<\/li>\n<li><strong>Evrensel Uygulamalar:<\/strong> Tek bir kod taban\u0131yla iOS, Android ve hatta web i\u00e7in uygulama geli\u015ftirme imkan\u0131 sunar.<\/li>\n<li><strong>H\u0131zl\u0131 Test:<\/strong> Expo Go mobil uygulamas\u0131 sayesinde, uygulamalar\u0131n\u0131z\u0131 fiziksel cihazlarda an\u0131nda test edebilirsiniz.<\/li>\n<li><strong>OTA G\u00fcncellemeleri:<\/strong> Uygulaman\u0131z\u0131 App Store veya Google Play Store&#8217;a yeniden g\u00f6ndermeden JavaScript kodunuzu g\u00fcncelleyebilirsiniz.<\/li>\n<li><strong>Geni\u015f API Deste\u011fi:<\/strong> Kamera, konum, bildirimler, dosya sistemi gibi bir\u00e7ok native \u00f6zelli\u011fe eri\u015fim sa\u011flayan zengin bir SDK sunar.<\/li>\n<\/ul>\n<h3>Expo Projesi Ba\u015flatma ve Temel Yap\u0131<\/h3>\n<p>Yeni bir Expo projesi ba\u015flatmak olduk\u00e7a basittir ve geli\u015ftirme ortam\u0131n\u0131z\u0131 h\u0131zla haz\u0131r hale getirmenizi sa\u011flar.<\/p>\n<h4>Gerekli Ortam Kurulumu<\/h4>\n<p>Expo ile \u00e7al\u0131\u015fmaya ba\u015flamadan \u00f6nce, bilgisayar\u0131n\u0131zda Node.js ve npm (veya yarn) y\u00fckl\u00fc olmal\u0131d\u0131r. Bunlar, React Native ve Expo projelerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in temel gereksinimlerdir.<\/p>\n<pre><code class=\"language-bash\">\n# Node.js ve npm y\u00fckl\u00fc de\u011filse, \u00f6ncelikle bunlar\u0131 kurun.\n# npm'in g\u00fcncel oldu\u011fundan emin olun:\nnpm install -g npm@latest\n<\/pre>\n<p><\/code><br \/>\nArd\u0131ndan, Expo CLI'y\u0131 global olarak y\u00fcklemeniz \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">\nnpm install -g expo-cli\n# veya yarn kullan\u0131yorsan\u0131z:\nyarn global add expo-cli\n<\/pre>\n<p><\/code><br \/>\nBu komut, Expo projeleri olu\u015fturmak, \u00e7al\u0131\u015ft\u0131rmak ve y\u00f6netmek i\u00e7in kullanaca\u011f\u0131n\u0131z komut sat\u0131r\u0131 arac\u0131n\u0131 kurar.<\/p>\n<h4>Yeni Bir Expo Projesi Olu\u015fturma<\/h4>\n<p>Expo CLI y\u00fcklendikten sonra, yeni bir proje olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\nnpx create-expo-app my-universal-app\n<\/pre>\n<p><\/code><br \/>\n<code>my-universal-app<\/code> yerine projenizin ad\u0131n\u0131 yazabilirsiniz. Bu komut, size bir \u015fablon se\u00e7ene\u011fi sunacakt\u0131r:<\/p>\n<ul>\n<li><code>blank<\/code>: Temel bir bo\u015f proje.<\/li>\n<li><code>tabs<\/code>: React Navigation ile sekme tabanl\u0131 bir navigasyon yap\u0131s\u0131na sahip \u00f6rnek bir proje.<\/li>\n<\/ul>\n<p>Genellikle <code>blank<\/code> \u015fablonuyla ba\u015flamak, projenizi s\u0131f\u0131rdan in\u015fa etmek i\u00e7in iyi bir se\u00e7enektir. Komut tamamland\u0131\u011f\u0131nda, projenizin dizinine ge\u00e7ebilir ve uygulamay\u0131 ba\u015flatabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\ncd my-universal-app\nnpm start\n# veya yarn start\n<\/pre>\n<p><\/code><br \/>\nBu komut, geli\u015ftirme sunucusunu ba\u015flat\u0131r ve size bir QR kodu g\u00f6sterir.<\/p>\n<h4>Proje Dizini ve Temel Dosyalar<\/h4>\n<p>Yeni olu\u015fturulan Expo projenizin dizin yap\u0131s\u0131 \u015funa benzer olacakt\u0131r:<\/p>\n<pre><code class=\"language-bash\">\nmy-universal-app\/\n\u251c\u2500\u2500 assets\/                  # Uygulama kaynaklar\u0131 (resimler, fontlar vb.)\n\u251c\u2500\u2500 node_modules\/            # Proje ba\u011f\u0131ml\u0131l\u0131klar\u0131\n\u251c\u2500\u2500 .gitignore               # Git taraf\u0131ndan g\u00f6z ard\u0131 edilecek dosyalar\n\u251c\u2500\u2500 app.json                 # Expo projesinin yap\u0131land\u0131rma dosyas\u0131\n\u251c\u2500\u2500 App.js                   # Uygulaman\u0131z\u0131n ana bile\u015feni\n\u251c\u2500\u2500 babel.config.js          # Babel yap\u0131land\u0131rmas\u0131\n\u251c\u2500\u2500 package.json             # Proje meta verileri ve ba\u011f\u0131ml\u0131l\u0131klar\u0131\n\u251c\u2500\u2500 README.md                # Proje a\u00e7\u0131klamas\u0131\n<\/pre>\n<p><\/code><\/p>\n<ul>\n<li><strong><code>App.js<\/code> (veya <code>App.tsx<\/code>):<\/strong> Uygulaman\u0131z\u0131n ba\u015flang\u0131\u00e7 noktas\u0131 ve ana bile\u015fenidir. T\u00fcm UI ve uygulama mant\u0131\u011f\u0131 buradan ba\u015flar.<\/li>\n<li><strong><code>app.json<\/code>:<\/strong> Expo projenizin manifest dosyas\u0131d\u0131r. Uygulaman\u0131z\u0131n ad\u0131, simgesi, splash ekran\u0131, platforma \u00f6zg\u00fc ayarlar ve daha fazlas\u0131 burada tan\u0131mlan\u0131r. Bu dosya, uygulaman\u0131z\u0131n nas\u0131l g\u00f6r\u00fcnece\u011fini ve davranaca\u011f\u0131n\u0131 belirleyen kritik bir yap\u0131land\u0131rma dosyas\u0131d\u0131r.<\/li>\n<li><strong><code>package.json<\/code>:<\/strong> Projenizin ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve betiklerini i\u00e7erir.<\/li>\n<\/ul>\n<h3>Expo CLI ve Geli\u015ftirici Ara\u00e7lar\u0131<\/h3>\n<p>Expo CLI, geli\u015ftirme s\u00fcrecinizi y\u00f6netmek i\u00e7in bir dizi kullan\u0131\u015fl\u0131 komut ve ara\u00e7 sunar.<\/p>\n<h4>Expo CLI Komutlar\u0131na Genel Bak\u0131\u015f<\/h4>\n<p>Expo CLI, projenizi ba\u015flatmaktan, derlemeye kadar bir\u00e7ok i\u015flemi y\u00f6netmenizi sa\u011flar. \u0130\u015fte baz\u0131 temel komutlar:<\/p>\n<table>\n<thead>\n<tr>\n<th>Komut<\/th>\n<th>A\u00e7\u0131klama<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>expo start<\/code><\/td>\n<td>Geli\u015ftirme sunucusunu ba\u015flat\u0131r ve bir QR kodu g\u00f6sterir.<\/td>\n<\/tr>\n<tr>\n<td><code>expo build:android<\/code><\/td>\n<td>Android i\u00e7in bir APK veya AAB dosyas\u0131 olu\u015fturur (Managed Workflow).<\/td>\n<\/tr>\n<tr>\n<td><code>expo build:ios<\/code><\/td>\n<td>iOS i\u00e7in bir IPA dosyas\u0131 olu\u015fturur (Managed Workflow).<\/td>\n<\/tr>\n<tr>\n<td><code>expo publish<\/code><\/td>\n<td>Uygulaman\u0131z\u0131n JavaScript kodunu Expo sunucular\u0131na y\u00fckler (OTA g\u00fcncellemeleri i\u00e7in).<\/td>\n<\/tr>\n<tr>\n<td><code>expo eject<\/code><\/td>\n<td>Managed Workflow'dan Bare Workflow'a ge\u00e7i\u015f yapar (eski y\u00f6ntem, art\u0131k EAS Build ile Custom Dev Client tercih edilir).<\/td>\n<\/tr>\n<tr>\n<td><code>expo install [paket]<\/code><\/td>\n<td>Expo SDK ile uyumlu paketleri y\u00fckler.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Expo Go Uygulamas\u0131 ile Test Etme<\/h4>\n<p>Expo Go, Expo taraf\u0131ndan geli\u015ftirilen \u00fccretsiz bir mobil uygulamad\u0131r. Bu uygulama, geli\u015ftirme a\u015famas\u0131ndaki Expo projelerinizi fiziksel bir iOS veya Android cihazda an\u0131nda test etmenizi sa\u011flar. <code>expo start<\/code> komutunu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, terminalde veya taray\u0131c\u0131da g\u00f6r\u00fcnt\u00fclenen QR kodunu Expo Go uygulamas\u0131yla tarayarak uygulaman\u0131z\u0131 cihaz\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131rabilirsiniz. Bu, em\u00fclat\u00f6r veya sim\u00fclat\u00f6r kullanma ihtiyac\u0131n\u0131 ortadan kald\u0131rarak geli\u015ftirme d\u00f6ng\u00fcs\u00fcn\u00fc inan\u0131lmaz derecede h\u0131zland\u0131r\u0131r.<\/p>\n<h4>Hata Ay\u0131klama ve Geli\u015ftirici Men\u00fcs\u00fc<\/h4>\n<p>Uygulaman\u0131z Expo Go'da \u00e7al\u0131\u015f\u0131rken, cihaz\u0131n\u0131z\u0131 sallayarak veya sanal bir cihazda <code>Cmd\/Ctrl + M<\/code> tu\u015flar\u0131na basarak geli\u015ftirici men\u00fcs\u00fcn\u00fc a\u00e7abilirsiniz. Bu men\u00fcde \u015funlar bulunur:<\/p>\n<ul>\n<li><strong>Reload:<\/strong> Uygulamay\u0131 yeniden y\u00fckler.<\/li>\n<li><strong>Debug Remote JS:<\/strong> Chrome Geli\u015ftirici Ara\u00e7lar\u0131'n\u0131 kullanarak JavaScript kodunuzda hata ay\u0131klaman\u0131z\u0131 sa\u011flar.<\/li>\n<li><strong>Enable Hot Reloading:<\/strong> Kodunuzu kaydetti\u011finizde uygulaman\u0131n otomatik olarak g\u00fcncellenmesini sa\u011flar.<\/li>\n<li><strong>Enable Fast Refresh:<\/strong> Bile\u015fen d\u00fczeyinde h\u0131zl\u0131 yenileme sa\u011flar, bu da durumun korunmas\u0131na yard\u0131mc\u0131 olur.<\/li>\n<li><strong>Show Element Inspector:<\/strong> UI \u00f6\u011felerini incelemenizi sa\u011flar.<\/li>\n<\/ul>\n<p>Bu ara\u00e7lar, hatalar\u0131 tespit etmek ve uygulaman\u0131z\u0131 optimize etmek i\u00e7in paha bi\u00e7ilmezdir.<\/p>\n<h3>Expo Bile\u015fenleri ve API'leri ile \u00c7al\u0131\u015fma<\/h3>\n<p>Expo SDK, React Native'in temel bile\u015fenlerinin yan\u0131 s\u0131ra, cihaz\u0131n native \u00f6zelliklerine eri\u015fim sa\u011flayan zengin bir API koleksiyonu sunar.<\/p>\n<h4>Expo SDK ve Dahili Mod\u00fcller<\/h4>\n<p>Expo SDK, kamera, konum, bildirimler, dosya sistemi, sens\u00f6rler ve daha fazlas\u0131 gibi bir\u00e7ok native cihaza eri\u015fim sa\u011flayan \u00f6nceden olu\u015fturulmu\u015f mod\u00fcller i\u00e7erir. Bu mod\u00fcller, <code>expo install<\/code> komutuyla kolayca projenize eklenebilir ve ard\u0131ndan JavaScript kodunuzda kullan\u0131labilir. \u00d6rne\u011fin, <code>expo-camera<\/code>, <code>expo-location<\/code>, <code>expo-notifications<\/code> gibi paketler, karma\u015f\u0131k native entegrasyonlar yerine basit JavaScript API'leri sunar.<\/p>\n<h4>\u00d6rnek: Konum Servisleri Kullan\u0131m\u0131<\/h4>\n<p>Bir kullan\u0131c\u0131n\u0131n konumunu almak i\u00e7in <code>expo-location<\/code> mod\u00fcl\u00fcn\u00fc kullanabiliriz. \u0130lk olarak, paketi y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">\nexpo install expo-location\n<\/pre>\n<p><\/code><br \/>\nArd\u0131ndan, <code>App.js<\/code> dosyan\u0131zda a\u015fa\u011f\u0131daki gibi kullanabilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">\nimport React, { useState, useEffect } from 'react';\nimport { View, Text, StyleSheet, Button } from 'react-native';\nimport * as Location from 'expo-location';\n\nexport default function App() {\n  const [location, setLocation] = useState(null);\n  const [errorMsg, setErrorMsg] = useState(null);\n\n  useEffect(() => {\n    (async () => {\n      let { status } = await Location.requestForegroundPermissionsAsync();\n      if (status !== 'granted') {\n        setErrorMsg('Konum eri\u015fimi reddedildi');\n        return;\n      }\n\n      let currentLocation = await Location.getCurrentPositionAsync({});\n      setLocation(currentLocation);\n    })();\n  }, []);\n\n  let text = 'Konum bekleniyor...';\n  if (errorMsg) {\n    text = errorMsg;\n  } else if (location) {\n    text = <code>Enlem: ${location.coords.latitude}, Boylam: ${location.coords.longitude}<\/code>;\n  }\n\n  return (\n    <View style={styles.container}>\n      <Text style={styles.paragraph}>{text}<\/Text>\n    <\/View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center',\n    padding: 20,\n  },\n  paragraph: {\n    fontSize: 18,\n    textAlign: 'center',\n  },\n});\n<\/pre>\n<p><\/code><br \/>\nBu \u00f6rnek, kullan\u0131c\u0131n\u0131n \u00f6n plan konum iznini ister ve ard\u0131ndan mevcut konumunu al\u0131r ve ekranda g\u00f6sterir.<\/p>\n<h4>\u00d6rnek: G\u00f6r\u00fcnt\u00fc Se\u00e7ici ve Depolama<\/h4>\n<p>Kullan\u0131c\u0131n\u0131n cihaz galerisinden bir g\u00f6r\u00fcnt\u00fc se\u00e7mesini sa\u011flamak i\u00e7in <code>expo-image-picker<\/code> mod\u00fcl\u00fcn\u00fc kullanabiliriz.<\/p>\n<pre><code class=\"language-bash\">\nexpo install expo-image-picker\n<\/pre>\n<p><\/code><br \/>\nKullan\u0131m \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-javascript\">\nimport React, { useState } from 'react';\nimport { Button, Image, View, Platform, StyleSheet } from 'react-native';\nimport * as ImagePicker from 'expo-image-picker';\n\nexport default function ImagePickerExample() {\n  const [image, setImage] = useState(null);\n\n  const pickImage = async () => {\n    let result = await ImagePicker.launchImageLibraryAsync({\n      mediaTypes: ImagePicker.MediaTypeOptions.All,\n      allowsEditing: true,\n      aspect: [4, 3],\n      quality: 1,\n    });\n\n    if (!result.canceled) {\n      setImage(result.assets[0].uri);\n    }\n  };\n\n  return (\n    <View style={styles.container}>\n      <Button title=\"Galeriden Resim Se\u00e7\" onPress={pickImage} \/>\n      {image && <Image source={{ uri: image }} style={styles.image} \/>}\n    <\/View>\n  );\n}\n\nconst styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  image: {\n    width: 200,\n    height: 200,\n    marginTop: 20,\n  },\n});\n<\/pre>\n<p><\/code><br \/>\nBu kod, bir d\u00fc\u011fmeye bas\u0131ld\u0131\u011f\u0131nda cihaz\u0131n g\u00f6r\u00fcnt\u00fc galerisini a\u00e7ar, kullan\u0131c\u0131n\u0131n bir g\u00f6r\u00fcnt\u00fc se\u00e7mesine izin verir ve se\u00e7ilen g\u00f6r\u00fcnt\u00fcy\u00fc ekranda g\u00f6sterir.<\/p>\n<h3>Uygulama Yay\u0131nlama ve Da\u011f\u0131t\u0131m<\/h3>\n<p>Uygulaman\u0131z\u0131 geli\u015ftirdikten sonra, onu kullan\u0131c\u0131lara ula\u015ft\u0131rman\u0131n zaman\u0131 gelir. Expo, bu s\u00fcreci de kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Geli\u015ftirme Ortam\u0131ndan Yay\u0131nlamaya<\/h4>\n<p>Managed Workflow'da, uygulaman\u0131z\u0131 yay\u0131nlamak i\u00e7in <code>expo publish<\/code> komutunu kullanabilirsiniz. Bu komut, uygulaman\u0131z\u0131n JavaScript kodunu ve kaynaklar\u0131n\u0131 Expo'nun CDN'ine y\u00fckler. Bu, \u00f6zellikle hata d\u00fczeltmeleri veya k\u00fc\u00e7\u00fck \u00f6zellik g\u00fcncellemeleri i\u00e7in h\u0131zl\u0131 OTA (Over-the-Air) g\u00fcncellemeleri yapman\u0131z\u0131 sa\u011flar. Kullan\u0131c\u0131lar, uygulamalar\u0131n\u0131 App Store veya Google Play Store'dan yeniden indirmek zorunda kalmadan en son s\u00fcr\u00fcm\u00fc otomatik olarak alabilirler.<\/p>\n<h4>Android ve iOS i\u00e7in Derleme (Build) S\u00fcreci<\/h4>\n<p>Uygulaman\u0131z\u0131 App Store veya Google Play Store'da yay\u0131nlamak i\u00e7in native bir derlemeye (APK\/AAB veya IPA) ihtiyac\u0131n\u0131z vard\u0131r. Expo, bu s\u00fcreci de basitle\u015ftirir.<\/p>\n<pre><code class=\"language-bash\">\n# Android i\u00e7in:\neas build -p android --profile production\n\n# iOS i\u00e7in:\neas build -p ios --profile production\n<\/pre>\n<p><\/code><br \/>\nBu komutlar, Expo Application Services (EAS) Build hizmetini kullanarak uygulaman\u0131z\u0131n native derlemesini olu\u015fturur. EAS Build, bulut tabanl\u0131 bir hizmettir ve kendi yerel derleme ortam\u0131n\u0131z\u0131 kurma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r. Bu hizmet, sertifika ve sa\u011flama profili y\u00f6netimi gibi karma\u015f\u0131k ad\u0131mlar\u0131 da basitle\u015ftirir. Build i\u015flemi tamamland\u0131\u011f\u0131nda, size indirilebilir bir APK\/AAB veya IPA dosyas\u0131 sa\u011flan\u0131r.<\/p>\n<h4>OTA G\u00fcncellemeleri ve Bak\u0131m<\/h4>\n<p>Expo'nun en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri OTA g\u00fcncellemeleridir. Uygulaman\u0131z\u0131n native kodu de\u011fi\u015fmedi\u011fi s\u00fcrece (\u00f6rne\u011fin, yeni bir Expo SDK s\u00fcr\u00fcm\u00fcne ge\u00e7i\u015f veya native mod\u00fcl ekleme), JavaScript kodunuzda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fiklikleri <code>expo publish<\/code> veya <code>eas update<\/code> komutlar\u0131yla an\u0131nda da\u011f\u0131tabilirsiniz. Bu, kullan\u0131c\u0131lar\u0131n her k\u00fc\u00e7\u00fck g\u00fcncelleme i\u00e7in ma\u011fazadan yeni bir s\u00fcr\u00fcm indirmesini beklemeden h\u0131zl\u0131ca hata d\u00fczeltmeleri ve yeni \u00f6zellikler sunman\u0131z\u0131 sa\u011flar. Bu, uygulama bak\u0131m\u0131n\u0131 ve kullan\u0131c\u0131 deneyimini \u00f6nemli \u00f6l\u00e7\u00fcde iyile\u015ftirir.<\/p>\n<h3>Expo'nun \u0130leri D\u00fczey \u00d6zellikleri ve S\u0131n\u0131rlamalar\u0131<\/h3>\n<p>Expo, geli\u015ftiricilere g\u00fc\u00e7l\u00fc ara\u00e7lar sunarken, baz\u0131 ileri d\u00fczey \u00f6zellikler ve potansiyel s\u0131n\u0131rlamalar\u0131 da beraberinde getirir.<\/p>\n<h4>Custom Dev Clients ve EAS Build<\/h4>\n<p>EAS Build, Expo'nun modern derleme ve da\u011f\u0131t\u0131m platformudur. Geleneksel <code>expo build<\/code> komutunun yerini alm\u0131\u015ft\u0131r ve \u00e7ok daha fazla esneklik sunar. EAS Build ile, Managed Workflow'da bile \u00f6zel native mod\u00fcller i\u00e7eren \"Development Client\"lar olu\u015fturabilirsiniz. Bu, Expo Go'nun aksine, projenize \u00f6zel native kodlar\u0131 i\u00e7eren bir geli\u015ftirme uygulamas\u0131d\u0131r. B\u00f6ylece, Managed Workflow'un kolayl\u0131klar\u0131ndan faydalan\u0131rken, gerekti\u011finde native mod\u00fcller ekleyebilme esnekli\u011fine sahip olursunuz.<\/p>\n<h4>Web ve Masa\u00fcst\u00fc Deste\u011fi<\/h4>\n<p>Expo, React Native for Web projesiyle entegrasyonu sayesinde uygulamalar\u0131n\u0131z\u0131 web platformunda da \u00e7al\u0131\u015ft\u0131rman\u0131za olanak tan\u0131r. <code>expo start --web<\/code> komutuyla uygulaman\u0131z\u0131n web s\u00fcr\u00fcm\u00fcn\u00fc taray\u0131c\u0131n\u0131zda g\u00f6r\u00fcnt\u00fcleyebilirsiniz. Bu, tek bir kod taban\u0131yla hem mobil hem de web platformlar\u0131n\u0131 hedeflemenizi sa\u011flayarak \"evrensel\" uygulama geli\u015ftirme vizyonunu g\u00fc\u00e7lendirir. Ayr\u0131ca, Electron gibi ara\u00e7larla masa\u00fcst\u00fc uygulamalar\u0131 da olu\u015fturmak m\u00fcmk\u00fcnd\u00fcr, ancak bu daha \u00e7ok deneysel bir aland\u0131r.<\/p>\n<h4>S\u0131n\u0131rlamalar ve Ne Zaman Bare Workflow Tercih Edilmeli<\/h4>\n<p>Expo Managed Workflow'un sundu\u011fu kolayl\u0131klar harika olsa da, baz\u0131 s\u0131n\u0131rlamalar\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>Native Mod\u00fcl K\u0131s\u0131tlamas\u0131:<\/strong> Yaln\u0131zca Expo SDK's\u0131nda bulunan veya Expo taraf\u0131ndan desteklenen native mod\u00fclleri kullanabilirsiniz. \u00c7ok \u00f6zel bir native k\u00fct\u00fcphaneye ihtiyac\u0131n\u0131z varsa, Managed Workflow yeterli olmayabilir.<\/li>\n<li><strong>Uygulama Boyutu:<\/strong> Expo SDK's\u0131n\u0131n tamam\u0131 uygulaman\u0131za dahil edildi\u011fi i\u00e7in, ba\u015flang\u0131\u00e7 uygulama boyutu biraz daha b\u00fcy\u00fck olabilir.<\/li>\n<\/ul>\n<p>E\u011fer projeniz \u00e7ok \u00f6zel native mod\u00fcllere ihtiya\u00e7 duyuyorsa, belirli bir cihaz donan\u0131m\u0131na do\u011frudan eri\u015fim gerektiriyorsa (\u00f6rne\u011fin, \u00f6zel bir Bluetooth cihaz\u0131), veya uygulaman\u0131z\u0131n native kod taban\u0131na tam kontrol sa\u011flamak istiyorsan\u0131z, Bare Workflow veya EAS Build ile Custom Dev Client olu\u015fturma se\u00e7eneklerini de\u011ferlendirmelisiniz. Bu, Expo'nun sundu\u011fu esnekli\u011fin bir g\u00f6stergesidir; ihtiyac\u0131n\u0131za g\u00f6re Managed ve Bare workflow aras\u0131nda ge\u00e7i\u015f yapabilirsiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Expo Framework, React Native ekosistemine yeni ba\u015flayanlar ve h\u0131zl\u0131 prototipleme yapmak isteyen deneyimli geli\u015ftiriciler i\u00e7in paha bi\u00e7ilmez bir ara\u00e7t\u0131r. Kurulum kolayl\u0131\u011f\u0131, zengin API deste\u011fi, h\u0131zl\u0131 test imkanlar\u0131 ve OTA g\u00fcncellemeleri gibi \u00f6zellikleriyle, evrensel mobil uygulamalar geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftirir. Managed Workflow ile h\u0131zla ba\u015flayabilir, gerekti\u011finde EAS Build ve Custom Dev Client gibi ara\u00e7larla projenizin native yeteneklerini geni\u015fletebilirsiniz. Expo, modern uygulama geli\u015ftirmenin karma\u015f\u0131kl\u0131\u011f\u0131n\u0131 azaltarak, geli\u015ftiricilerin daha \u00e7ok kullan\u0131c\u0131 deneyimine ve i\u015f mant\u0131\u011f\u0131na odaklanmas\u0131n\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<h3>SSS (S\u0131k Sorulan Sorular)<\/h3>\n<h4>1. Expo \u00fccretsiz mi?<\/h4>\n<p>Evet, Expo Framework'\u00fcn temel kullan\u0131m\u0131 ve bir\u00e7ok \u00f6zelli\u011fi \u00fccretsizdir. Expo Application Services (EAS) Build gibi baz\u0131 bulut tabanl\u0131 hizmetler i\u00e7in \u00fccretsiz katmanlar bulunur, ancak daha y\u00fcksek kullan\u0131m veya geli\u015fmi\u015f \u00f6zellikler i\u00e7in \u00fccretli planlar mevcuttur.<\/p>\n<h4>2. Mevcut bir React Native projesini Expo'ya ta\u015f\u0131yabilir miyim?<\/h4>\n<p>Mevcut bir \"Bare\" React Native projesini Managed Expo projesine ta\u015f\u0131mak genellikle m\u00fcmk\u00fcn de\u011fildir, \u00e7\u00fcnk\u00fc Expo'nun kendi native mod\u00fcl ve proje yap\u0131s\u0131 vard\u0131r. Ancak, Expo projenizi \"eject\" ederek veya EAS Build ile Custom Dev Client olu\u015fturarak Bare React Native projesine d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz.<\/p>\n<h4>3. Expo ile performans\u0131 y\u00fcksek uygulamalar geli\u015ftirebilir miyim?<\/h4>\n<p>Kesinlikle. Expo, React Native \u00fczerine in\u015fa edildi\u011fi i\u00e7in, React Native'in sundu\u011fu native performans avantajlar\u0131ndan faydalan\u0131r. Expo SDK's\u0131ndaki mod\u00fcller de performans odakl\u0131d\u0131r. Performans sorunlar\u0131 genellikle uygulaman\u0131n JavaScript kodundaki optimizasyon eksikliklerinden veya yanl\u0131\u015f kullan\u0131mdan kaynaklan\u0131r, Expo'nun kendisinden de\u011fil.<\/p>\n<h4>4. Expo Go nedir?<\/h4>\n<p>Expo Go, Expo taraf\u0131ndan geli\u015ftirilen ve App Store ile Google Play Store'da bulunan \u00fccretsiz bir mobil uygulamad\u0131r. Geli\u015ftirme a\u015famas\u0131ndaki Expo projelerinizi fiziksel bir cihazda an\u0131nda test etmenizi sa\u011flar. Terminalde g\u00f6sterilen QR kodunu tarayarak uygulaman\u0131z\u0131 cihaz\u0131n\u0131zda \u00e7al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<h4>5. Expo'nun web deste\u011fi ne anlama geliyor?<\/h4>\n<p>Expo, React Native for Web entegrasyonu sayesinde, yazd\u0131\u011f\u0131n\u0131z React Native kodunu web taray\u0131c\u0131lar\u0131nda da \u00e7al\u0131\u015ft\u0131rabilir. Bu, tek bir kod taban\u0131yla hem mobil uygulamalar (iOS\/Android) hem de web uygulamalar\u0131 geli\u015ftirebilece\u011finiz anlam\u0131na gelir. Bu, \u00f6zellikle evrensel bir kullan\u0131c\u0131 deneyimi sunmak isteyen projeler i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim\nMobil uygulama geli\u015ftirme d\u00fcnyas\u0131nda, React Native, tek&#8230;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[128],"tags":[],"class_list":{"0":"post-36526","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-react","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim\" \/>\n<meta property=\"og:description\" content=\"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim Mobil uygulama geli\u015ftirme d\u00fcnyas\u0131nda, React Native, tek...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-19T08:00:39+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim\",\"datePublished\":\"2025-12-19T08:00:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\"},\"wordCount\":2546,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"React\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\",\"name\":\"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-19T08:00:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/","og_locale":"tr_TR","og_type":"article","og_title":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim","og_description":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim Mobil uygulama geli\u015ftirme d\u00fcnyas\u0131nda, React Native, tek...","og_url":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-19T08:00:39+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"14 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim","datePublished":"2025-12-19T08:00:39+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/"},"wordCount":2546,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["React"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/","url":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/","name":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-19T08:00:39+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/expo-framework-temelleri-evrensel-react-native-uygulamalari-gelistirmek-icin-modern-rehberim\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Expo Framework Temelleri: Evrensel React Native Uygulamalar\u0131 Geli\u015ftirmek \u0130\u00e7in Modern Rehberim"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36526"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36526\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}