Unity'den React Native'e geçerken en çok kafam karışan şey framework'ün dili değildi — terminolojisiydi. Component, State, Props... Bunlar ne demek? Ama bir süre sonra fark ettim: Unity'de bunları zaten biliyordum, sadece farklı isimler kullanıyordum.
GameObject = Component (Neredeyse)
Unity'de her şey bir GameObject'tir. Sahnedeki bir küp, bir ışık kaynağı, görünmez bir yönetici — hepsi GameObject. Bunlara davranış eklemek için MonoBehaviour script'leri attach edersiniz.
React Native'de her şey bir Component'tir. Bir buton, bir metin kutusu, görünmez bir context sağlayıcı — hepsi component. Bunlara davranış eklemek için props ve hooks kullanırsınız.
Fark şu: Unity'de bu ilişki görsel bir editörde kurulur. React Native'de kod yazarak kurulur.
// Unity MonoBehaviour düşünce yapısıyla React Native Component
function PlayerCard({ name, score }: { name: string; score: number }) {
return (
<View style={styles.card}>
<Text style={styles.name}>{name}</Text>
<Text style={styles.score}>{score}</Text>
</View>
);
}
State = Inspector Değişkenleri
Unity'de [SerializeField] ile Inspector'da görebileceğiniz değişkenler tanımlarsınız. Runtime'da bu değerler değişince GameObject güncellenir.
React Native'de useState hook'u tam olarak bunu yapar. State değişince component yeniden render edilir.
// Unity'deki [SerializeField] private int _health = 100;
// React Native karşılığı:
const [health, setHealth] = useState(100);
Props = Inspector'a Dışarıdan Veri Vermek
Unity'de bir script'e prefab'dan ya da başka bir script'ten değer atayabilirsiniz. React Native'de bunu props ile yaparsınız.
Temel fark: Unity'de bu bağlantı editörde kurulur, React Native'de parent component tarafından verilir.
En Büyük Zihinsel Kayma: Declarative vs Imperative
Unity geliştirme büyük ölçüde imperative'dir. "Şu nesneyi şuraya taşı, şu rengi değiştir, şu animasyonu oynat" dersiniz.
React Native declarative'dir. "Bu state'deyken ekran şöyle görünsün" dersiniz. Framework gerisini halleder.
Bu fark başta sinir bozucu geldi. "Ama ben bunu nasıl yapacağını söylemek istiyorum!" Zamanla anlıyorsunuz ki "nasıl"ı framework'e bırakmak, sizi "ne" üzerine odaklanmaya serbest bırakıyor.
Sonuç
Eğer Unity geçmişiniz varsa ve React Native öğrenmeye çalışıyorsanız, sıfırdan başladığınızı düşünmeyin. Temeller aynı — sadece dili çevirmeniz gerekiyor.