React Native için React bilmek gerekir mi ?

Efsanevi

New member
9 Mar 2024
574
0
0
React Native İçin React Bilmek Gerekir mi? Bir Uygulama Hayalinin Bizi Götürdüğü Yer

Geçenlerde yazılım öğrenmeye yeni başlayan bir arkadaşımın yaşadığı bir olayı duydum ve açıkçası bu olay bana yazılım dünyasında sık sık karşılaştığımız bir soruyu yeniden düşündürdü: React Native öğrenmek isteyen biri, önce mutlaka React öğrenmeli mi? Arkadaşımın adı Mert olsun. Mert, uzun zamandır kendi mobil uygulamasını geliştirmek istiyordu. Aklında oldukça basit görünen ama çevresindeki insanların hayatını kolaylaştırabilecek bir fikir vardı. İnsanların mahallelerindeki ihtiyaç fazlası eşyaları paylaşabilecekleri, komşularıyla iletişim kurabilecekleri ve küçük yardımlaşma grupları oluşturabilecekleri bir uygulama geliştirmek istiyordu.

Mert, araştırma yaparken React Native kavramıyla karşılaştı. Birkaç video izledi, bazı eğitimleri inceledi ve kısa sürede heyecanlandı. Çünkü aynı kod tabanıyla hem Android hem de iOS uygulamaları geliştirebilme düşüncesi ona oldukça mantıklı gelmişti. Fakat karşısına sürekli başka bir kavram çıkıyordu: React.

Bir akşam çevrim içi bir yazılım forumunda şu soruyu sordu:

"React Native öğrenmek istiyorum ama React bilmiyorum. Doğrudan React Native ile başlasam olur mu, yoksa önce React öğrenmek zorunda mıyım?"

Bu sorunun altında beklediğinden fazla yanıt birikti. Kimileri önce React öğrenmesini öneriyordu. Bazılarıysa doğrudan React Native ile başlayabileceğini söylüyordu. Birkaç kişi JavaScript öğrenmeden hiçbirine başlamaması gerektiğini savunuyordu.

Mert'in kafası karışmıştı. Asıl ilginç olan ise sorunun cevabını ararken yalnızca programlama öğrenmenin değil, öğrenme biçimimizin de ne kadar önemli olduğunu keşfetmesiydi.

1. Bölüm: Aynı Masada Üç Farklı Bakış Açısı

Mert, bir hafta sonu küçük bir yazılım topluluğunun buluşmasına katıldı. Burada Ayşe ve Kerem isimli iki geliştiriciyle tanıştı. Üçü de farklı deneyimlere sahipti. Kerem, uzun süredir web uygulamaları geliştiriyor ve sorunları küçük parçalara ayırarak çözmeyi seviyordu. Ayşe ise yazılım projelerinin yanında kullanıcı araştırmaları yapıyor, insanların bir uygulamayı neden kullandığını ve hangi noktalarda zorlandığını anlamaya çalışıyordu.

Mert sorusunu yeniden açtı.

"React bilmiyorsam React Native öğrenirken sürekli bir şeyleri kaçırır mıyım?"

Kerem hemen teknik açıdan düşünmeye başladı.

"Önce kullandığın dili tanımalısın. JavaScript'in değişkenlerini, fonksiyonlarını, dizilerini ve nesnelerini anlamadan React Native kodlarının neden çalıştığını çözmek zorlaşabilir. Ama bunun için aylarca beklemen de gerekmiyor. Temel konuları öğren, sonra küçük bir uygulama yap. Takıldığın yerde eksiklerini tamamla."

Ayşe ise farklı bir noktaya dikkat çekti.

"Bir şeyi öğrenirken yalnızca ne kadar hızlı ilerlediğine bakma. Öğrendiğin kavramları gerçekten anlayıp anlamadığına da bak. Bir eğitim videosundaki kodu kopyalayarak çalışan bir ekran oluşturabilirsin ama uygulamanın neden o şekilde davrandığını bilmiyorsan ilk hatada zorlanabilirsin."

İkisi de haklıydı ama farklı sorulara cevap veriyorlardı. Kerem öğrenme sürecinin teknik yapısını, Ayşe ise öğrenmenin kalıcılığını ve kişinin kendi gelişimini değerlendirmesini önemsiyordu.

Mert o akşam eve dönerken ilk kez şu ayrımı fark etti: Bir teknolojiye başlayabilmekle o teknolojiyi anlayarak kullanabilmek aynı şey değildi.

Peki sizce yazılım öğrenirken öncelik hızlıca bir ürün ortaya çıkarmak mı, yoksa altyapıyı sağlamlaştırmak mı olmalı? Belki de asıl mesele, ikisi arasında doğru dengeyi kurabilmektir.

2. Bölüm: React ile React Native Arasındaki Görünmez Köprü

Mert'in ilk araştırdığı konu, React ile React Native arasındaki ilişki oldu. İsimleri birbirine benzediği için ikisinin aynı şey olduğunu düşünmüştü. Fakat araştırdıkça aralarındaki ilişkinin hem güçlü hem de önemli farklılıklar içerdiğini gördü.

React, kullanıcı arayüzleri oluşturmak için kullanılan bir JavaScript kütüphanesidir. Bileşenler, özellikler, durum yönetimi ve olaylara tepki verme gibi kavramlarla arayüzlerin daha düzenli biçimde geliştirilmesini sağlar.

React Native ise React yaklaşımından yararlanarak mobil uygulamalar oluşturmayı mümkün kılar. Android ve iOS gibi platformlarda, web sayfasındaki HTML öğelerini taklit etmek yerine yerel kullanıcı arayüzü bileşenlerini kullanır.

Mert bir örnek üzerinden düşünmeye başladı.

Bir web uygulamasında genellikle div ile karşılaşabilirdi. React Native tarafındaysa benzer amaçlarla View kullanılıyordu. Web ortamında metinler çoğunlukla p veya span gibi HTML öğeleriyle gösterilirken React Native'de metinler Text bileşeniyle oluşturuluyordu.

Yani React Native öğrenmek, yalnızca web kodlarını alıp telefon ekranına taşımak değildi. Ortak bir düşünme biçimi vardı ama uygulamanın çalıştığı ortam farklıydı.

Kerem bunu küçük bir örnekle açıkladı:

JavaScript

```

import React from 'react';

import { View, Text } from 'react-native';

export default function App() {

return (

Merhaba, dünya!

);

}

```

Mert kodu çalıştırdığında ekranda kısa bir metin gördü. Kod basitti ama onun için önemli bir başlangıçtı. Bir bileşenin nasıl tanımlandığını, başka bileşenlerin nasıl kullanıldığını ve ekrana nasıl içerik yerleştirildiğini anlamaya başlamıştı.

Ardından Kerem ona şunu sordu:

"Bu kodu çalıştırabiliyorsun. Peki yarın ekrana bir buton, kullanıcı listesi ve arama alanı eklemek istersen ne yapacaksın?"

Mert cevap veremedi.

İşte o noktada React'in neden önemli olduğu ortaya çıktı. Çünkü gerçek bir mobil uygulama, birkaç metin ve butondan ibaret değildi. Bileşenlerin tekrar kullanılabilmesi, verilerin yönetilmesi, kullanıcı etkileşimlerinin işlenmesi ve arayüzün değişen durumlara göre güncellenmesi gerekiyordu.

React'in temel kavramları, React Native içerisinde de karşısına çıkacaktı.

Önemli not: React bilmeden React Native'e başlamak mümkündür. Ancak JSX, bileşenler, props, state ve Hooks gibi React kavramlarını öğrenmek, geliştirme sürecini belirgin biçimde kolaylaştırır. Özellikle useState ve useEffect gibi Hooks yapılarını anlamak, etkileşimli mobil uygulamalar geliştirirken oldukça yararlıdır.

3. Bölüm: Geçmişten Bugüne Yazılım Öğrenmenin Değişen Yüzü

Mert bir süre sonra daha geniş bir soru sormaya başladı: Neden bu kadar çok teknoloji öğrenmek zorundayız?

Bu sorunun cevabı biraz da yazılım dünyasının tarihindeydi.

İlk dönemlerde bilgisayar programlama, daha sınırlı donanım olanakları ve farklı teknik kısıtlamalar nedeniyle oldukça farklı bir uzmanlık gerektiriyordu. Zamanla kişisel bilgisayarların yaygınlaşması, internetin gelişmesi ve akıllı telefonların hayatın merkezine yerleşmesiyle yazılım geliştirme alanı büyük ölçüde genişledi.

Eskiden bir web sitesi hazırlamakla mobil uygulama geliştirmek çoğu zaman farklı teknolojiler ve ayrı geliştirme süreçleri gerektiriyordu. Android ve iOS için ayrı uygulamalar geliştirmek isteyen ekipler, platformlara özgü diller ve araçlarla çalışabiliyordu.

Bu durum günümüzde tamamen ortadan kalkmış değil. Ancak React Native gibi teknolojiler, ortak bilgi ve kodlardan yararlanarak farklı platformlara uygulama geliştirmeyi kolaylaştırdı.

React Native'in ilk sürümü 2015 yılında açık kaynak olarak yayımlandı. Bu yaklaşım, JavaScript ve React bilgisine sahip geliştiricilerin mobil uygulama geliştirme alanına geçiş yapabilmesini kolaylaştıran önemli adımlardan biri oldu.

Mert bu bilgiyi öğrendiğinde, React öğrenmenin yalnızca belirli bir kütüphaneyi anlamak olmadığını fark etti. Aynı zamanda farklı platformlarda kullanılabilecek bir arayüz geliştirme yaklaşımını öğreniyordu.

Üstelik bu değişim yalnızca teknik bir konu değildi. Küçük ekiplerin daha az kaynakla uygulama geliştirebilmesi, bağımsız geliştiricilerin fikirlerini daha kolay sınayabilmesi ve farklı mesleklerden insanların yazılım projelerine katılabilmesi açısından da önemliydi.