React ile Cross Platform Düşünmek

Web ve mobil cihazlar için daha az efor ile ürün geliştirmek

Eğer bir ürününüz varsa tüm platformlardan erişilebilir olmak istemeniz oldukça doğru bir düşüncedir. Peki nasıl ? Web için farklı teknolojiler, mobilde android, ios ve hatta pastada daha az payı olan windows mobile platformları için ayrı ayrı teknolojiler ile geliştirme yapmak gerekiyorken nasıl olacakta daha az efor sarfederek tüm platformlara ürün geliştireceğiz ?

Bu soruyu bende zaman zaman kendime soruyorum. Soru beni ürünün ilk tasarlanma aşamasına götürüyor devamlı. Daha önceki yazılarımda teknoloji seçiminin önemine vurgu yapmaya çalışmıştım. Siz eğer mevcut bir ürünü yeniden geliştirmeye karar verdiyseniz teknolojiyi oldukça esnek ve dayanıklı bir yapı üzerine inşaa etmelisiniz.

Günümüzde artık tüm ürünler ortak data yapısı ile haberleşmeyi tercih ediyorlar. Bunun bir çok faydası var. Yarın biz artık ön yüzü x teknolojisi ile yeniden yazıyoruz dediğinizde değişecek tek şey ön yüz teknolojiniz olur. Asıl mimari devamlı ayakta durmaya devam eder. Tüm datayı micro servisler üzerinden sunarak daha esnek ve basit bir yapıyı tercih etmek bu nedenle oldukça mantıklıdır.

Ben bu yazımda tek bir dil ile nasıl kendi ürünlerimi cross platform haline getirebildiğimden bahsedeceğim.

Servisler, servisler ve servisler

Ön tarafta hız ve performans açısından benim favorim React! Son bir kaç yıldır kendisi ile çok güzel işler yapıyoruz. React ve EcmaScript’in yenilikleri sayesinde daha hızlı dinamik web uygulamaları üretebiliyoruz. Data storage için ise Redux kullanarak datayı istediğim gibi manipule edebiliyorum. Artık tüm html’i tabiri caiz ise bodozlama render eden mekanizmalar yerini daha ince detayları düşünen nazik araçlara bıraktı.

Bu araçlar sayesinde biz çok daha hızlı, çok daha performanslı ve kullanıcı deneyimi açısından iyileştirilmiş web uygulamaları geliştirebiliyoruz. Bu nedenle klasik frontend geliştiricinin iş tanmı bir miktar değişti diyebilirim.

Eskiden html, css ve jquery ile web sayfaları geliştirenler artık tüm uygulama mantığını yöneten uygulamanın önemli kısımlarını devralan geliştiriciler olarak evrim geçiriyorlar. Maalesef bu evrimi tamamlayamayanlar için gelecek pek parlak değil üzgünüm. ☹️

Eskiden her şeyi tek dosya içerisine yazanlar şimdilerde daha clean kod yazmaya, yazdığı kodu lint etmeye ve test driven geliştirmeye başlıyor. Bu durumdan ben her iki tarafında frontend-backend memnun olduğunu düşünüyorum. Backend geliştirici olması gerektiği gibi işin daha çok data tarafı ile ilgilenerek servis geliştiriyor frontend geliştirici servisleri kullanarak tüm uygulamayı tasarlayıp geliştiriyor.

Neden React Tercih Ediyorum?

Electron ve React kullanarak aynı zamanda cross platform native desktop app’ler geliştirebiliyoruz.

Bu benim için oldukça önemli çünkü bir ürün geliştiriyorsam ve micro servislere sahipsem tek bir dil ve teknoloji ile tüm platformlar için uygulama geliştirebilirim. Bu sayede daha az efor ile web uygulamam için geliştirdiğim reusable component’larımı mobil uygulamam içinde kullanarak belki bir kaç stil değişikliği ile hızlıca geliştirme yapabilirim.

Neden JavaScript ?

Tek bir dil ile bütün uygulamayı hatta tüm platformlara kod yazabilmek ilk olarak zamandan tasarruf demektir. Tek bir dil olduğu için ortak kod paylaşımları yapılabilir. Tüm bunlar tek bir geliştiricinin ürünün tüm platformlarına kod yazabilmesi demek kısacası. Native tarafta üretilen çıktı gerçek bir objective-c veya java kodu olduğu için benim React Native ile JavaScript yazarak tüm platformlar için kod yazmam oldukça doğru bir seçim sanırım.

Böylece benzer stack’leri kullandığım için her platformda konuya hakim olabiliyorum. Eğer istersem Electron ile yine cross platform desktop uygulamalar geliştirebilirim.

Daha basit…

Daha hızlı..

Müşteriler beklemekten nefret ederler hatta bu bekleme süreleri ms olsa dahi. O nedenle ürününüzün oldukça hızlı olması gerekiyor. React bu konuda oldukça başarılı bir render mekanizmasına sahip. Sadece React değil Vue gibi çok sıcak baktığım teknolojiler söz konusu. Seçim size kalmış ancak her ne yaparsanız yapın hızlı olmalısınız bu kaçınılmaz maalesef. Burada bazı pratiklerden faydalanmak gerekebiliyor bunlara şu yazımdan ulaşabilirsiniz.

Özetle…

Her zaman söylediğim gibi yeni ve modern teknolojiler ile ürün geliştirmek klasik yöntemlere göre biraz zaman gerektirir. Ancak bu harcadığınız zamana değecektir. Her biri kendi alanında başarısını kanıtlamış teknolojileri bir araya getirmek ve ortaya cross platform bir yapı çıkarmak sabır gerektiren bir süreç.

Artık frontend bir zamanlar bildiğiniz frontend gibi değil. Bunu anlamaya başladıktan sonra çok daha hızlı, güvenli ve kullanıcıların kullanmaktan hoşlanacağı ürünler ortaya çıkarabilirsiniz.

Sevgiler.

https://superpeer.com/oguz

--

--

developer @trendyol, ex @eBay, sci-fi addict. JavaScript, Frontend, Software Architecture

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Oğuz Kılıç

developer @trendyol, ex @eBay, sci-fi addict. JavaScript, Frontend, Software Architecture