> For the complete documentation index, see [llms.txt](https://uby-rn.gitbook.io/react-native/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://uby-rn.gitbook.io/react-native/ders-2.0/react-native-baslangic/proje-yapisi.md).

# Proje Yapısı

<figure><img src="https://30791023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fticd3gejglRJIYeNG4Z2%2Fuploads%2Fion3lb0hoY98D3nXPVaB%2FEkran%20Resmi%202024-03-17%2001.19.09.png?alt=media&amp;token=89d18f37-6521-4d46-aefa-67223f332018" alt="" width="432"><figcaption><p>Proje Yapısı</p></figcaption></figure>

Yukarıdaki proje yapısı ve dosya içerikleri ile ilgili bilgilendirme yapacak olursak:

1. `assets`: Bu klasör proje içerisinde kullanılan resim dosyalarını ve font ailelerini kapsar.
2. `node_modules`:  npm paketleri ile gelen temel kütüphaneler ve daha sonradan proje içerisinde kullanılmak istenen kütüphaneleri kapsar.
3. `.gitignore`:  Bu dosya git ile push işlemi yaparken pushlamak istemediğimiz dosyaları veya klasörleri belirttiğimiz bir bildirim dosyasıdır.
4. `App.js`: Projenin başlangıç dosyasıdır. Bütün uygulama bu javascript dosyasından itibaren başlar.
5. `babel.config.js`: Varsayılan React Native ön ayarını genişleten babel-preset-expo ön ayarını uygular ve dekoratörler, [tree-shaking](https://korayguler.medium.com/nedir-bu-tree-shaking-931a5c39d860) web paketleri ve yüklüyse isteğe bağlı yerel bağımlılıklarla yazı tipi simgeleri yükleme desteği ekler. Ek Babel eklentileri veya ön ayarları eklemek için bu dosyayı da değiştirebilirsiniz.
6. `package-lock.json`: &#x20;
   * Yalnızca bağımlılıkları belirli bir sürüm numarasına kilitlemek için kullanılır.
   * npm’nin önceden kurulmuş paketler için tekrarlanan meta\
     veri çözümlerini atlamasını sağlayarak kurulum sürecini optimize eder.
   * Takım arkadaşlarının, dağıtımların ve sürekli entegrasyonun tam olarak aynı bağımlılıkları kurmasının garanti edildiği bir bağımlılık ağacının tek bir temsilini tanımlar.
7. `package.json`:  Bu dosya projenin bağımlılıklarını, komut dosyalarını ve meta verilerini içerir. Projenize yeni bir bağımlılık eklendiğinde bu dosyaya eklenecektir. Ayrıca eklemek veya kaldırmak için komut dosyalarını da değiştirebilirsiniz. Projenizin geliştirme sunucusunu tetiklemek için&#x20;

   * `expo start`
   * `expo start --android`
   * `expo start --ios`
   * `expo start --web`

   gibi dört varsayılan komut dosyası sağlanmıştır.
