09.02.01. React Native Kodları

Uygulamamız kullanıcının isminin alındığı ve mesajlaşmanın yapıldığı iki ekrandan oluşacak. Bu bölümde oluşturulan dosyalar ve ilişkileri anlatılacaktır.

Öncelikle App.Js dosyasını oluşturalım.

Components klasöründeki Main kullanıcı isim girişi iken Chat mesajlaşma bölümü içindir. Navigation, daha önceki derslerde anlattığımız react-navigation üzerine kurulmuştur. Bir Stack Navigator kullanarak Main ekranına tekrar dönüş sağlanmıştır.

Main.js:

Main’de TouchableOpacity bileşenine tıklandığında kullanıcı ismi (name) state üzerinden bir sonraki sayfaya taşınır. this.props.navigation.navigate fonksiyonu içindeki name: this.state.name komutu bir sonraki sayfaya state’in taşınmasını sağlar. (Bu yönetim zor olduğu için Redux konusu anlatılmıştır, uygulama karmaşıklaştıkça Redux önerilir.)

Chat.js:

Chat.js, görsel bir chat bileşeni için react-native-gifted-chat ve mesajları taşıma için Fire.js (Firebase işlemlerini içeriyor) kullanır. Kullanıcı ismi state içinden alınırken Firebase tarafındaki kullanıcı Fire.shared.uid üzerinden alınır. 

<GiftedChat messages={this.state.messages} onSend={Fire.shared.send} user={this.user} /> bileşeninin aldığı parametreler sayesinde chat ortamı hızlıca hazırlanır. message’lar state üzerinde tutulur. Gönderim işlemi (onSend) Firebase üzerinden yapılır. user için ise bir önceki sayfadan alınan değer kullanılır.

Fire.js: Firebase bağlantısı ve haberleşmesi

init fonksiyonunda firebase bağlantı ayarları yapılmaktadır. Bu ayarları firabase web uygulaması üzerinden web geliştirici için config ayarlarından alabilirsiniz. Kullanıcının sisteme bağlanması observeAuth üzerinden yapılır. callback ile mesajlar alınıp parse edilirken send ile de mesajlar firebase gönderilmektedir.