günümüz şartlarında fullstack devam etmek de hem mantıklı değil, hem de mümkün değil gibi gözüküyor.
backend geliştirmekten daha çok zevk alıyorum, ancak mühendis olmadığım için frontend tarafta devam edersem "yaptığım iş, olduğu değeri daha çok gösterir" diye düşünüyorum.
backendde php biliyorum, şimdi elimdeki yeni bir proje nedeniyle laravel de öğreniyorum. (ki php kullanıp laraveli öğrenmemiş olmam ayıptı aslında)
react-native orta-alt seviye öğrendim kısa bir süre önce. 2-3 tane app üretip orada seviyemi yukarı taşıyacağım.
react.js başlangıç seviyesindeyim.
sizce react ve react-native'e mi yükleneyim?
yoksa vue.js veya angular vs. gibi şeylere mi yöneleyim?
veya sizce ne yapayım?
Çok uzun zamandır bu sektörde iş yapan birisi olarak vue, angular, react gibi teknolojilerin hiç birinde gelecek görmüyorum. Hepsi zamanla grafiğinin zirvesine ulaşıp sonra piyasadan kayboluyorlar. 3 sene önceki angular talebi ile şimdikine bakarsanız anlarsınız ne demek istediğimi.
React native küçük app'ler için avantajlı görünse de hiç bir zaman büyük bir app'te kullanılmayacak. Hibrit teknolojilerin tamamı için bu durum mevcut. Eğer uzun süreli bu sektörde kalacaksanız, Swift öğrenin.
@talasas, react native'in neden buyuk app'lerde kullanilmayacagini dusunuyorsunuz? AirBnb ve Uber Eats (hatta instagram icin de react native diyor bazi kaynaklar ama inanmiyorum pek) gibi buyuk app ornekleri var?
Ben 3 senedir native ios ve android app developer olarak calisiyorum. Gerci son 1 senedir Android'i tamamen biraktim, iOS'a odaklandim.
React native cok ilgi cekici geliyor su aralar. Hatta icten ice native ios/android development'i bitirebilir mi diye dusunmuyor da degilim. Su aralar ABD'de is arama surecindeyim, kendimi 1-2 ay kadar kapatip react native'e odaklanip ordan yurumeyi bile dusunuyorum bazen.
@elon,
benim de asıl niyetim amerika'da iş aramaya başlamak aslında. 2019 ilk çeyreğe kadar bu tür popüler yazılımların bazılarında kendimi hepten geliştirmek istiyorum o yüzden.
medium.com
react native küçük/büyük olmasından ziyade uygulamanın tipine ve içeriğine göre kullanışlı olabilen bir teknoloji. react native'e geçip sonrasında native dile dönen çok fazla uygulama oldu. ciddi performans sıkıntıları var. rn kullanan büyük uygulamalar da ciddi anlamda bridge kullanıyor. o yüzden hiçbir zaman native'in yerini alabileceğini düşünmüyorum.
@elon, evet bahsettiğin gibi bir PR yapılıyor ama detaylarına indiğinde konu maalesef öyle değil. Mesela Instagram'da Ayarlar menüsünün altındaki Push notification settings kısmı react native sadece, diğer uygulamalarda da buna benzer durumlar mevcut (detaylarına şu an hakim değilim)
Bunun bir kaç sebebi var aslında, Hibrit teknolojilerin görünen en büyük avantajı 2 platform için aynı codebase'i kullanarak maliyet düşürmek gibi düşünebiliriz. Fakat burda düşen maliyet %50 değil, 2 Platfromda Native geliştirmek 2X efor gerektiriyorsa, hibrit bir tekonoloji kullanmak da 1.5X'in üzerinde bir efor gerekiriyor. Belli bir ölçeği aşan işletmelerde "yazılım geliştirme" artık maliyet kalemi olmaktan çıkıyor bu sebeple burdan sağlayacakları getiri, götürülerine değmiyor. Zaten uç noktalarda bir optimizasyon yapmak istediğinizde hibrit teknolojiye harcayacağınız efor native'in üzerinde oluyor. Çok basit bir bakış açısı olacak ama bir diğer konu ise uygulama boyutu, React-Native'e bu konuda çok hakim değilim ancak Xamarin'de böyle bir problem var mesela, app'in boyutu native'e göre çok daha büyük oluyor ve büyük ölçekli kullanıcı kitlesine hitap ettiğinizde bu ciddi bir problem.
Bir diğer konu ise SDK'lar. Orta ölçekli bir app yaptığınızı varsayalım, milyonlarca SDK dahil ediyorsunuz içeriye 3rd party'lerden. Bu SDK'ların hibrit teknolojiler için kullanıma hazır olması biraz daha geç oluyor.
Kısacası benim düşüncem, fikir valide etmek için, bootstrap için, demo için hibrit teknolojiler evet ama büyüyen bir app için hayır. Sektörde bir çok örneğine şahit oldum bunun.
İşin diğer tarafı ise neden riske giriyorsunuz ? Swift'in varlığının devam edeceğinin garantisini size herkes verebilir, ama react native için aynı şeyi söyleyebilir misiniz ?
@talasas a kismen katiliyorum, react native her durumda verimli olmayabilir, bu tamamen uygulamaya ve performans gereksimine gore degisir. React native iyidir veya kotudur diye kesin yargiya varmak guc, yazilimin her alaninda oldugu gibi. Ozellikle araya giren her bir katman gelistirme zamaninin azalmasina neden olurken ayni zamanda cesitli kisitlamalarla birlikte gelir. React native icin de bu durum boyle. Eger ihtiyaciniz coklu platform icin hizli gelistirme ise en uygunu web app dir. ama web app hem performans hem de cihaz kaynaklarina erisim konusunda cok problemli oldugu icin react native gibi framewokler olusturulmus, web yazim stili arka tarafta native koda cevrilerek bu performans ve kaynak erisimi saglanmistir. ama ne de olsa yapilacakar yine de ikinci bir API tarafinda saglandigi icin bir yerde takilma ihtimali var. o noktalar da java ve android api gerekebilir. hatta bircok durumda (oyun gelistirme vs.) android standart api bile yeterli olmayip c++ gibi daha alt seviyede gelistirme gerekebiliyor ama gunumuzde kullanilan bircok uygulamanin react native ile gelistirilmesi yeterli olabilir.
Diger taraftan web teknolojileri konusunda ne olacagini kimse bilmiyor. react, vue ya da angular hangisi daha uzun vadeli olur bilmek guc. Ama kesin emin oldugum konu su, bunlar gider de baska bir javascript web framework gelir ise gelekte olan teknoloji bunlardan cok esinlenmis olacaktir. Hicbirsey kalici degil 2000li yillar basinda javascript tarafinda jquery, mootools, prototype yarisi vardi ve bunlardan jquery aradan siyrildi ve bu gunlere geldi. artik o da omrunu tamamladi ama yerine konumlanan teknolojiler jquery tamamen silmez sadece alanini daraltir. televizyon geldi diye artik evlerde radyo dinlemesek de arabada yine radyo dinliyoruz, yani bu teknolojiler icin de bu olur. bu ucu arasinda oncelikle react ogrenmeni oneririm, cunku hem daha esnek hem de daha kolay ogrenilebilir. vue da kolaylik bakimindan cok ovuluyor. java ve C# gibi object oriented bir dil gecmisi olan biri icin se angular ve onda kullanlan typescript cok yabanci olmaz ama angular komple bir cozum (framework ve api) oldugu icin ogrenmesi cok daha zaman alir.
eger back-end tarafi ilgini cekiyor ise ve bir taraftan da javascript konusuna yonelmek istiyorsan node.js de bir alternatif olabilir.
ozetle java veya C# (OOP diler) biliyorsan standart android ve angular, eger bilmiyorsan react ve react-native olabilir. ama asla tek bir frameworke bel baglama. onemli olan kullanilan programlama dilinin temeline ve yazilm mimarilerine hakim olmaktir. frameworkler gelip geicidir ve gelecekte ne olacagini kimse bilemez.
@talassas,
hocam peki web tarafında asıl öneriniz ne olur?
benim asıl uzmanlığım web çünkü. app işine sonradan girdim ve yüksek bir profesyonelliğim yok o konuda. orada swift öğrenebilirim belki ama nolursa olsun "bunlar benim referanslarım" diyemem bir süre.
o yüzden bir yandan kendimi web'in yeni teknolojilerine de hazırlamak istiyorum ki "bak bunlar referanslarım. bunlar da bildiğim şeyler" diyebileyim.
react-native ve react'e yönelme sebebim biraz bu aslında. bir yandan web teknolojisi öğrenirken, diğer yanda app'te de kendimi geliştirmiş oluyorum.
yoksa swift konusunda katılıyorum, eğer vakit bulabilirsem mutlaka öğrenmek isterim. ancak öncesinde kendi uzmanlığımda gelişmem gerek diye düşünüyorum.
(ki çok da emin değilim aslında)
@emrahday,
"ozetle java biliyorsan standart android ve angular, eger bilmiyorsan react ve react-native olabilir. ama asla tek bir frameworke bel baglama." şu cümle güzel aoldu abi. çünkü java bilmiyorum. javascript biliyorum, dediğin gibi sanırım react ve react-native sanırım daha kolay "aradan çıkarabileceğim" şeyler gibi. biraz kafamda ışık yandı açıkçası, buraya yöneleceğim gibi şuan.