folder Tahribat.com Forumları
linefolder Mobil Programlama
linefolder React-Native Vs Flutter 2019 Ekim



React-Native Vs Flutter 2019 Ekim

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek

    Merhabalar,

    Gerek forumdan gerek çevremdeki kişilerin bana yoğunla bu ikisi arasında ne fark var sorusuna istinaden bir konu açmak ve tartışma ortamı yaratmak istedim...

    Bilirsiniz ki React-Native Facebook un framework'ü Flutter da Google'nin framework'ü.

     

    Şimdi ben Flutter ile 4 adet uygulama geliştirdim 3'ü büyük 1 tanesi ufak bir uygulama.

    Son 6 aydır da React-Native geliştiriyorum. Kendi fikirlerimi ve düşüncelerimi belirtmek istedim... 2013 yılından beri Native Android(JAVA) uygulama geliştiriyorum bu arada.

    ---- Flutter avantajları -----

    Bir çok UI Widgetlar'ı hazır.  Örneğin bir drawerMenu yapacaksanız. Scaffold içerisine bir drawerMenu ekleyip hızlıca drawerMenu yapabiliyorsunuz keza bottomNavigation vs alayını kolaylıkla 3-4 satırda ekleyebiliyorsunuz...

    2 ekran arasında geçişleri rahatlıkla yapabiliyorsunuz. Navigation için vs özel bir yapıya falan ihtiyacınız yok   bu stack switch işlemlerini yapmıyorsunuz c# daki windows form gibi yada androiddeki gibi sadece o ekranı çağırıyorsunuz iş bitiyor. Geri dönüş özelliği olup olmadığını belirtiyorsunuz ekranı çağırdığınız kodda olay bitiyor.

    Redux gibi bir yapıya ihtiyacınız yok.   (Eğer çok ihtiyacınız var ise BLOC kullanabilirsiniz.)

    Tamamen OOP'un dibine vuruyorsunuz. Class yapıları vs c#/Java gibi dillere benzer..

    Biraz snytax'ı zorluyor ama JavaScript de olan bir çok özellik bunda da var örneğin JavaScript de Promise diye bir olay varken Dart'da Future diye geçiyor.

    Mesela RN yazarken Promise de dönen objenin kontrolünü yapamıyorken. Futureden bir Array veya Class döndürebiliyorum. Bu sayede parametreleri tek tek kontrol etmeme gerek kalmıyor.

    Onun dışında variable tanımlama olayı var. integer/string/double/float gibi değerleri kullanıyorken Javascript de bütün her şey bir obje olduğu için her yerde parse işlemi yapmak zorundayım...

    State yönetimi çok daha hoşuma gidiyor.. Örneğin React-Native de propslar'a müdahale edemiyorken Flutter'da direkt widgetların  objelerine erişebiliyorum...

    Hot Reload özelliği var (RN de 60 da getirdi bu özelliği ama hala iyi değil..) çok daha iyi bir şekilde çalışıyor. Bazı durumlarda React-Native projeyi yeniden build almanız gerekirkern Flutter da böyle bir olay yok...

    Örneğin Flutter kodlarken bir kısmını Native yazıp projenin bir kısmı Dart ile kodlayabiliyorsunuz...

    Dart ile native kodları çağırabiliyor direkt kullanabiliyorsunuz (Channel dan bahsetmiyorum...)

    link olayları otomatik. Bir lib eklediğinizde sizden zorunlu olarak atıyorum rn deki gibi 0.60 zorunludur gibi bir durum yok.

    Istediğiniz flutter versiyonunda istediğniz kütüphaneyi kullanabilirsiniz. Çünkü kodlar C/C++'a dönüşüyor yani RN deki gibi bir bridge yok. Direkt native koda çevriliyor kodlar... 

    Flutter'ın yaptığı değişiklikler kütüphanelere etkilemiyor. Mesela adam kütüphaneyi flutter 1.2 de iken yazdı diyelim. Sen flutter 5.4 kullanırken bile hiçbir paket uyuşmazlığı yaşamıyorsun RN deki gibi....

    RN bir yerde hata aldığınızda  (Çoğu zaman) size hangi satırda patladığını vs göstermiyor. Bazen açıklama bile anlaşılır değil.

    Fakat Flutter'da direkt çıktı olarak hangi satırda patladığını vs gösteriyor. Hata yönetimi daha açıklayıcı.. Paketler nerde patlamış vs görebiliyorsunuz..

    Performans olarak RN yi sollar geçer Flutter....

    Birde en çok sıkıntı yaşadığım mesele şudur ki; RN de Android telefonda bir tasarım yapıyorum. IOS Da farklı gözüküyor Androidde farklı! Flutter da birebir aynı görünüyor iki ekranda da Flutter'ın bu özelliğini de çok sevmiştim.

    <strong style="font-size: 13.3333px;">---- React-Native avantajları -----

    React-Native yazıyorsanız React.JS yani web front-endi de rahatlıkla yaparsınız çünkü birebir aynı neredeyse. Mantık falan herşey birebir aynı geçiş yaparken 2-3 gün zorlanırsınız sonra alışırsınız..

    Tarayıcıda debug yaparken mesela sunucudan bir object geldi diyelim... bunu tarayıcının debugerinde  düzgün bir biçimde görüntüleyebiliyorsunuz. Flutter'da parse edip string olarak görebilirsiniz anca yada debug modda açıp o değişkenin üstüne gelince kontrol edebiliyorsunuz.

    Comunnity olarak Flutter yanına yaklaşamaz aradığınız kütüphaneleri rahatlıkla bulabilirsiniz. Flutter da bulmanız biraz daha zor olabilir. Flutter da aldığınız hatanın cevabını daha geç bulabilirken RN de daha kolay buluyorsunuz.

    Eğer iş olarak düşünüyorsanız RN dev arayan şirket sayısı 10 ise Flutter arayan 1 veya 2 dir.

    Birden fazla ekranı aynı anda çalıştırıp test edebiliyorsunuz UI Yaparken (Flutter da denemedim gerçi).

    Mesela ben bir UI Yaparken Iphone modellerin alayını açıyorum büyük bir ekranda. tasarlarken hepsinde aynı anda nasıl göründüğünü görebiliyorum. Test ederken bütün ekranlarda tek tek test etmek yerine aynı anda hepsinde görüntüleyebiliyorum.

    CSS'e hakimseniz RN de style değiştirmek daha basit. CSS'e benzer bir yapısı var. CSS tagları benzer nitelikte. Örneğin marginTop paddingTop bacgroundColor gibi vs.vs.

     

     

    Flutter da UI Yapmak biraz zor build fonksiyonu aşağı doğru uzuyıor. Bir kaç çözüm getirmiş Flutter ama çok da iyi değil RN de HTML kodlar gibi kodladığınızdan kodlanması daha kolay.

     

    ---- SONUÇ -----

    İmkanım olsaydı kesinlikle Flutter yazardım. 4-5 yıldır JavaScript yazıyorum sıkıntı yok ama RN de sürekli hata almaktan ciğerim soldu. Flutter'a başlarken böyle değildi. Nerde hata yaptığımı anlıyor değiştiriyordum...

    RN de kütüphaneleri linklemekten çiğerim soldu.

    RN 59 da çalışan kütüphane 0.60-0.61 de çalışmıyor patlıyor çatlıyor. Javascript sürümünü yükselt hatasını alıyorum bir kütüphanede yükseltince diğeri patlıyor... Patlayan kısımlara elle müdahale etmek zorunda kalıyorsunuz. Bazen proje patlıyor 3-4 saat uğraşıyorsunuz sonra terminali kapatıyorsunuz simülatörü kapatıyorsunuz node modules dosyasını siliyorsunuz. modül dosyalarını yükleyip projeyi çalıştırdığınızda hata almıyorsunuz :P  Garip..... Bunlar hep sizin zamanınıza mal oluyor...

    RN yazacaksanız kesinlikle EXPO.io kullanın kafanız rahat olsun....  Uğraşmayın böyle şeylere herşeyi hazır getiriyor zaten... Hem cloud mimarisi ile QR kodu okut her telefonda debug yap. Hemde navigasyon işlemleri vs vs alayı hazır bir şekilde geliyor. Paketlerinin kullanımı da basit. Bir çok şeyi kendisi otomatik yapıyor...

    Hem performans açısından hemde zaman maliyeti açısından Flutter bence daha iyi.

    Fakat Flutter ile ekmek yemeniz çok ama çok zor. Bende şuan RN yazıyorum Flutter kodlamak istememe rağmen :)

    Uzunca bir süre Flutter yazan bir şirket aradım fakat bulamadım. RN geçtim bende mecburiyetten. (2019 Şubat aylarından bahsediyorum). Şuan tam olarak nedir ne değildir çok bilmiyorum. Ben kendi bildiklerimi öğrendiklerimi söylemek istedim.

     

     

    Peki sizce RN mi daha iyi Flutter mi ? Neden ?

     

     

     

    MhmdAlmz tarafından 04/Eki/19 14:54 tarihinde düzenlenmiştir

    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    u235
    u235's avatar
    Kayıt Tarihi: 31/Mart/2008
    Erkek

    Güzel bir karşılaştırma olmuş. RN hiç bakmadım flutterda bir iki proje koduna baktım syntaxda sanki çok bracket kullanılıyor gibime geldi.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    Eline saglik hocam güzel yazmissin :) Saydigin bir cok neden flutter ile baslanmasi icin yeterli. Eksik gördügün sebeplerin bir cogu da flutter'in react native göre daha yeni olmasi ve sektörde kendine henüz tam yer bulamamasi. Ben flutter'in geleceginin acik oldugunu, mobile development dünyasini degistirecegini düsünenlerdenim. Ben de gerek objective-c, java, xamarin gibi cesitli dil ve platformlarda mobile appler gelistirdim ve suana kadar flutter'da gördügüm hic bir rahatligi göremedim. Insanlar flutter'i tanidikca kopamiyorlar ki bunlarin basinda ben geliyorum.

    Google, flutter'a elbette yatrim yapiyordur ancak reklam konusunda daha cok yapmali. Dart ile desktop+web uygulamalar da gelistirilebilir ancak o kisimda geleceginin cok olacagini düsünmüyorum.

    Son olarak; suan mobile gelistirme alaninda gelecegine yatirim yapmak isteyen arkadaslarin flutter ögrenmelerini tavsiye ederim. Flutter ögrenip is bulmak pek mümkün degil. MhmdAlmz'in dedigi gibi türkiye'de imkan olmadigi halde avrupa'da da pek yok, olanlar da zaten ekstra özellik (bilsen iyi olur) olarak istiyorlar. Flutter'in bunu kiracagini düsünüyorum. Bu da daha cok flutter'i yayginlastirarak olacaktir..

    React native'in avantaji, farkli platformlarda uygulama gelistirebiliyorsunuz ve is bulma konusunda daha sanslisiniz. Yani react bilen biri web de mobile de gelistirebilir ve rahatlikla is bulabilir.

    Bundan sonra sahsi tüm projelerimde flutter kullaniyorum, kullanacagim. Hatta firmada yetkim oldugu sürece de xamarin yerine flutter ile gelistirmeye calisacagim :)

     


    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    makets
    makets's avatar
    Kayıt Tarihi: 17/Ocak/2010
    Erkek

    Hocam İstanbul buluşması konusu patladı ama biz yine de bi flutter buluşması mi yapsak (:

    Aslında hangi dil, platformu seçersen seç mobil programlama zor ve sabır işi. Bu konuyu bir tarafa bırakırsak ben flutteri kurcaliyorum. Henüz tam olarak esnek değil, community problemi var doğru ama performansı iyi ve kullanabiliyorum. Reacti kullanmadım bilmiyorum.  

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Retro
    by_Tet
    by_Tet's avatar
    Kayıt Tarihi: 22/Mayıs/2012
    Erkek

    Uzun zamandır pek çok yapıyla proje oluşturdum, oluşturmaya devam ediyorum. Ancak bugün tek düşüncem gerçekten native ne ise onu kullanmak. Android ise Java/Kotlin iOS ise Objective-C/Swift. Başka yolu yordamı kaçarı yok.

    Android için aptal türk karakter test implement muhabbetini biliyorsunuzdur. React native ile flutter ile benzer hataları aşmak için ciddi efor sarf etmek gerekiyor.

    Kod yazmakla uğraşmayım hatalar daha eğlenceli diyorsanız flutter ionic rn hatta Cordova falan ne isterseniz kullanın

    Kodla uğraşayım hatalar minimum düzeyde olsun diyorsanız native dilleri öğrenmek zorundasınız.

    Instagram gibi ihtiyaç oldukça yazıldığı ortamı geliştirilen büyük bir projede bile hala hatalar var. Instagram blank white screen şeklinde ararsanız bulursunuz. (Ki şuan amk postlarını ben de göremiyorum ve her telefonda yok. Son güncelleme ile gitti) react native in ne kadar sıkıntılı olduğunu görebilirsiniz

    Ki Instagram ihtiyaç duydukça rn geliştiriyor Facebook ekibi..


    iyibu! yeniden..
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    Flutter cok yeni. Is noktasinda sikinti ama native gelistirmek got deligini genisletirken, flutter fordluyor sadece. Ihtiyacim olan kucuk bir mobill app'i 3-4 gunluk flutter resmi dokumanina goz atarak hallettim. Tabi ben cok buyuk ve komplike uygulamalar yapmadigim icin is buyudukce ne derece saglam durur o kismini bilmiyorum ancak java-c# falan yazan adam widget nedir kavradigi noktada cok rahat uretime gecebilir flutter ile.  Dart olayi bizim gibi kod yazmayi C ve turevi ailelerle ogrenen adamlar icin sorun olmuyor rahat ama python ile ve direk Js ile hasir nesir olanlar Dart icin azcik ugrassa yeter.


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tagext
    tagext's avatar
    Üstün Hizmet Madalyası Başarı Madalyası
    Kayıt Tarihi: 25/Temmuz/2002
    Erkek

    vakit darsa iki platformda da native yazamayacaksan flutter bence çok iyi.

    react native de iyi ama dart  js ye göre daha performanslı bir dil.


    ftw
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    İnce Memed
    ComputerWolf
    ComputerWolf's avatar
    Üstün Hizmet Madalyası
    Kayıt Tarihi: 26/Mart/2003
    Erkek

    https://www.eventbrite.com/e/flutter-turkiye-study-jam-tickets-75052942371


    Hep denedin. Hep yenildin. Olsun yine dene , yine yenil ama daha iyi yenil !
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    banneduser
    banneduser's avatar
    Kayıt Tarihi: 15/Nisan/2013
    Erkek

    Hocalar google fushia işletim sistemi çıkaracak ve flutter bu işletim sisteminde ön planda olan teknoloji olacak. 

    Daha önce chromela işletim sistemsi birşey yapmaya çalıştılar ama olmadı. bkzn.chromebook. Ama Dartı bünyelerinde desteklediler ve flutter a iyi destek sağladılar. Şu an bazı IDE durumlarıyla ruh hastası yapabilsede 2 sene sonraya bunun için işletim sistemi olacak. Hem de internet sitesi, android ve ios ta çalışıyor. Ve dahası flutterın istediği tüm ekranlarda çalışabilmekmiş. 


    ride or die..
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    caagroup
    caagroup's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    MhmdAlmz bunu yazdı

    Bazen proje patlıyor 3-4 saat uğraşıyorsunuz sonra terminali kapatıyorsunuz simülatörü kapatıyorsunuz node modules dosyasını siliyorsunuz. modül dosyalarını yükleyip projeyi çalıştırdığınızda hata almıyorsunuz :P  Garip..... Bunlar hep sizin zamanınıza mal oluyor...

    Özellikle şundan nefret ediyorum ama bir proje için başladım bir kere... yazını okuduktan sonra keşke flutter tercih etseydim diyorum belkide ederim... daha işin ortalarındayım.

    İş bulma gibi bir derdim yok kendi işimi yapıyorum sence fluttere geçsemmi?
    (e-ticaret app)

     

  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MhmdAlmz
    MhmdAlmz's avatar
    Kayıt Tarihi: 09/Ağustos/2015
    Erkek
    caagroup bunu yazdı
    MhmdAlmz bunu yazdı

    Bazen proje patlıyor 3-4 saat uğraşıyorsunuz sonra terminali kapatıyorsunuz simülatörü kapatıyorsunuz node modules dosyasını siliyorsunuz. modül dosyalarını yükleyip projeyi çalıştırdığınızda hata almıyorsunuz :P  Garip..... Bunlar hep sizin zamanınıza mal oluyor...

    Özellikle şundan nefret ediyorum ama bir proje için başladım bir kere... yazını okuduktan sonra keşke flutter tercih etseydim diyorum belkide ederim... daha işin ortalarındayım.

    İş bulma gibi bir derdim yok kendi işimi yapıyorum sence fluttere geçsemmi?
    (e-ticaret app)

     

    Hocam geçeni öneniririm proje senin projen ise.

    https://play.google.com/store/apps/details?id=com.mhmdalmz.example.unfollowjet

    https://play.google.com/store/apps/details?id=kurye.moto.istanbul.temkurye_musteri_uygulamasi

    https://play.google.com/store/apps/details?id=com.temkurye.kurye

    https://play.google.com/store/apps/details?id=com.muhammedalmaz.kuran_meali

    Bunları flutter ile yaptım. 

    Flutter ile e ticaret daha rahat ve hızlı olur 


    Andolsun kuşluk vaktine ve dindiği zaman o geceye ki, Rabbin sana veda etmedi ve darılmadı! Ve kesinlikle senin için sonu önünden (ahiret dünyadan) daha hayırlıdır. ileride Rabbin sana verecek de hoşnut olacaksın! O, seni bir yetim iken barındırmadı mı? Seni, yol bilmez iken (doğru) yola koymadı mı? Seni bir yoksul iken zengin etmedi mi? Öyle ise, sakın yetime kahretme (onu horlama)! El açıp isteyeni de azarlama! Fakat Rabbinin nimetini anlat da anlat!
Toplam Hit: 4099 Toplam Mesaj: 18
vs flutter react-native