> 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-1.0/giris-and-terimler.md).

# Giriş & Terimler

<figure><img src="https://30791023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fticd3gejglRJIYeNG4Z2%2Fuploads%2FmnLlNGFZzX9IJhmnSU0K%2FEkran%20Resmi%202024-03-09%2001.30.00.png?alt=media&amp;token=2187e628-d3fb-476a-8f80-afe6284ad9c9" alt=""><figcaption></figcaption></figure>

<figure><img src="https://30791023-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fticd3gejglRJIYeNG4Z2%2Fuploads%2FlGXQpZu5fIFtmONExtkl%2Freact-native-developers-roadmap-v0-jujxaljsdpy91.jpg.webp?alt=media&amp;token=969c16fa-cfdc-4948-8a0f-7a18c0831588" alt="" width="563"><figcaption></figcaption></figure>

## **Native**

Native geliştirme demek. İşletim sistemine göre kullanılan programlama dilinin uyum sağlaması durumudur. Java ve Swift dilleri Native dillerdir. Java ile Android telefonlara özel uygulamalar yapılabilirken. Swift ile IOS tabanlı işletim sistemi olan cihazlarda uygulamalar geliştirilebilir.

***

## **Cross Platform**

React Native ve Android birer Cross Platform uygulama geliştirme araçlarıdır. Bu yazılımlar Hem android hem de IOS tabanlı işletim sistemlerinde uygulamalar hazırlamaya olanak sağlar. Flutter Dart dili üzerinde bir mimari oluştururken, React Native Javascript tabanlı yazılım kullanır.

***

## **IDE (Integrated Development Environment)**

Entegre geliştirme ortamı anlamına gelir. Bir IDE, yazılım geliştirme sürecini kolaylaştırmak için geliştirilmiş bir yazılım aracıdır. Birçok temel özelliği bünyesinde barındırır ve geliştiricilere birçok aracı tek bir kullanıcı arayüzünde sunar.

***

## **Git & Github**

Git, dağıtılmış bir sürüm kontrol sistemidir. Yazılım geliştirme sürecinde kullanılan bir araçtır ve geliştiricilere kod tabanını yönetme, değişiklikleri izleme, işbirliği yapma ve kodu sürümlemek gibi bir dizi özellik sunar. Git, bir projenin tüm geçmişini ve farklı sürümlerini saklayarak geliştiricilere esneklik sağlar.

GitHub, Git tabanlı bir bulut barındırma hizmetidir. Geliştiricilerin Git kullanarak sürüm kontrolü yapmasına ve projelerini depolamasına olanak tanır. Ayrıca, GitHub, işbirliği yapmayı ve açık kaynaklı projelerde katkıda bulunmayı kolaylaştırmak için bir dizi sosyal özellik sunar. Bu özellikler arasında kod incelemesi, sorun takibi, wiki oluşturma, çekme istekleri ve projelerinizi diğer geliştiricilerle paylaşma bulunur.

Kısacası, Git, kod tabanının yönetimi için bir araçken, GitHub, bu Git tabanlı projelerin bulut tabanlı olarak barındırılması, işbirliği yapılması ve paylaşılmasını sağlayan bir platformdur. Git ve GitHub, yazılım geliştirme sürecinde yaygın olarak kullanılan ve birçok geliştiricinin iş akışını kolaylaştıran önemli araçlardır.

***

## **Immutability (Değişmezlik)**:

Immutability, verilerin değiştirilemezliği anlamına gelir. Bir veri bir kez oluşturulduğunda, o veri üzerinde doğrudan değişiklik yapmak yerine, yeni bir veri oluşturularak değişiklik yapılır. Yani, bir kez oluşturulan bir verinin değeri değiştirilemez. Bu, orijinal verinin korunmasını ve beklenmedik yan etkilerin önlenmesini sağlar. Redux'ta, değişmezlik ilkesi, reducer'ların orijinal state'i değiştirmek yerine yeni bir state döndürmesi gerektiği anlamına gelir. Bu, Redux'un state değişikliklerini izlemesini ve güncellemeleri etkin bir şekilde yönetmesini sağlar.

***

## **Serielleştirme**

Serielleştirme, verilerin belirli bir formata dönüştürülmesi işlemidir, böylece bu veriler farklı platformlar arasında iletilip saklanabilir hale gelir. Serielleştirme işlemi, verileri bir metin dizisine, JSON formatına veya başka bir uygun formata dönüştürerek gerçekleştirilir. Redux'ta, serielleştirme genellikle Redux store'undaki state'in dışa ve içe aktarılması sırasında önemlidir. Özellikle, Redux'ta bir web tarayıcısı tabanlı uygulama kullanılıyorsa, state'in localStorage'a veya bir sunucuya kaydedilmesi veya oradan geri yüklenmesi gibi durumlarda serielleştirme işlemi önemlidir. Bu, uygulamanın durumunu korumanın yanı sıra, farklı cihazlar arasında veri paylaşımını da sağlar.
