Neden Mobil Uygulama Geliştirme için Flutter'ı Seçmelisiniz?

Paylaş :

LinkedIn'e göre Flutter mobil geliştirme, geliştiriciler arasında en hızlı büyüyen beceridir ve StackOverflow'un En Sevilen Diğer Çerçeveler, Kitaplıklar ve Araçlar hakkındaki anketine göre 2019'da ilk üç favori çerçeve arasındadır. ve sadece yeni üründe ustalaşmaya karar vermekle kalmadı, aynı zamanda bir proje yürütmeyi ve üretime göndermeyi bile başardı!

Neden Mobil Uygulama Geliştirme için Flutter'ı Seçmelisiniz?

Her şeyden önce, o mentio olmalıdır n firmamız sadece yerli gelişme ele açıklamış tır. Çapraz geliştirmeye olan ilgi sadece eğiticiydi ve ticari projelerde kullanmaya cesaret edemedik.

(Editörün notu: genişletilmiş uzmanlık eksikliği nedeniyle, aşağıda açıklanan görüş bu nedenle mutlak gerçek olarak kabul edilemez.)

Yine de Android ekibimiz, favori mobil işletim sistemimizi geliştiren şirketin kendi çözümünü sunması gerçeğiyle ilgilendi. Bu, denemekten kendimizi alamayacağımız anlamına geliyordu. Ayrıca, arkamızda yerel geliştirme deneyimi ile ustalaşmak oldukça acısızdı, rakiplerimizle tam tersi oldu.

Peki Flutter diğer çerçevelerle birlikte ne gibi ilginç şeyler sunuyor? Gerçekten övünebileceği ilk şey, UI oluşturma. OS SDK'da yerleşik araçları kullanmadan tüm öğeleri işleyen kendi oluşturma motoru sayesinde, performans gözle görülür şekilde artar.

Başka bir deyişle, koşullu düğmenin kodunu her platform için yerel koda yorumlamak yerine (diğer çerçevelerin yaptığı gibi), Flutter çerçevesi, yerel arayüz öğelerinin davranışını doğru bir şekilde simüle ederek (alınarak) her şeyi kendi başına işlemek gibi iddialı bir görevi üstlenir. animasyonları, durumu vb. hesaba katar) Bu, diğer yaklaşımlara kıyasla oluşturma hızını önemli ölçüde artırır ve ayrıca FPS'de düşüşler olmadan gerçekten karmaşık ekranlar oluşturmaya olanak tanır. Ayrıca kutu çözümü, hem Materyal Tasarımı hem de iOS yönergelerinden, ihtiyaçlarınızı karşılamak için neredeyse tamamen özelleştirilebilen birçok kullanıma hazır UI öğesi sağlar.

Ayrıca, reaktif bir UI tasarım yaklaşımının kullanıldığı ve sonuç olarak, tüm uygulamanın, yalnızca bir ekranın durumunu yönetmeyi değil, aynı zamanda ekranın durumunu yönetmeyi kolaylaştıran "widget'lar" adı verilen bir ağaçta yerleşik olduğu da belirtilmelidir. bir bütün olarak uygulama.

Başka bir koşulsuz artı, Flutter animasyonlarıyla çalışmaktır. Düzen değişiklikleri animasyonu için özel widget'lar sayesinde sadece birkaç kod satırında basit dönüşümler yapılabilir ve yukarıda belirtilen reaktif yaklaşım, kullanımlarını daha da uygun hale getirir:

Bu şekilde Flutter, aynı anda her iki popüler platformda da bir grafik arayüz oluşturmak için mükemmel bir araç haline gelir. Ancak hiçbir uygulama sadece iyi bir tasarımla yapamaz, iş mantığını da içermesi gerekir.

Flutter Redux, Scoped Model, BLoC'da «reaktif» mimari desenler sonuna kadar kullanılmaktadır ve diğerleri bunlardan bazılarıdır. Burada genel olarak bir sorun yok. Ancak, topluluk için daha geleneksel olan BLoC'u seçtik. Temiz Mimari yaklaşımını sorunsuz bir şekilde uygulamamızı sağladı. Bu şekilde uygulamanın tasarım kodunu iş mantığından ayırdık (bu, platformlar arası bir proje için çok kullanışlıdır). Ağla çalışmak açısından her şey oldukça iyi - Http ile çalışmak için birkaç kitaplık sunuluyor ve seçimimiz aralarında Dio'ya düştü. Bu arada, Android topluluğunda genel olarak kabul edilen Retrofit2'ye çok benziyor. Uygulamanın sistem verilerini depolamak için kitaplıklar da vardır (Android'de Paylaşılan Tercihler, iOS'ta NSUserDefaults).

İş verileri için bir SQLite bağlantı noktası var (kesinlikle Bölge veya Oda değil, en azından bir şey). Bir kamera, GPS ve çok daha fazlasını kullanmak için köprüler var.

Ancak şu anda bu işe kararlı ve üretimde kullanıma hazır demeye gönlümüz yok. Örneğin, iOS'ta video kaydı sırasında OOM oluştuğunda bir sorunla karşılaştık, bazen ilk birkaç kare sadece siyah oluyor. Ayrıca, çerçevenin oldukça genç olması nedeniyle, henüz çok çeşitli kütüphaneler bulunmamaktadır.

Elbette, bu bir yana, Flutter'ın dezavantajları da var. Tüm platformlar arası çözümlerle karakterize edilirler:

  • Yerel bir kod yazma gerekliliği ortadan kalkmadı (köprüler denir), çünkü gerekli kitaplık genellikle eksiktir veya işlevsellikten yoksundur. Senaryo daha da karamsar olabilir: her şey düzgün çalışıyor, ancak çözüm tarafından sağlanmayan bir eklenti eklemeniz gerekiyor. Sonuç olarak, zaman kaybetmeden kendi çözümünüzü oluşturmanız gerekir.
  • Uygulamanın yeni işletim sistemi sürümlerine uyarlanmasındaki gecikmeler. Yeni örnek, iOS 13'teki çubuğun rengidir. İşletim sisteminin yayınlanmasının üzerinden bir ay geçti, ancak henüz resmi bir sürüm sağlanmadı.
  • Popüler olmayan cihaz üreticileriyle ilgili daha fazla sorun (Android ile ilgili).
  • Çok dikkatli bir kullanıcı, yerel davranıştan farkları yine de bulabilir (bir kullanıcı listenin tıklanabilir öğelerine, kartlara veya Flutter'daki arka plana tıkladığında görüntülenen Dalgalanma animasyonu belirgin şekilde farklıdır).
  • Hata sistemin içine girmişse geliştirici tamamen güçsüzdür.

Sarmak için:

Bir iş fikrini test etmek için bir prototipe ihtiyacınız varsa ve mantık, cihazın yeteneklerinden «tüm meyve sularını sıkmayı» varsaymıyorsa, uygulama oldukça basit bir mantığa (tipik istemci-sunucu etkileşimi) sahiptir, ancak standart dışıdır. tasarım — o zaman Flutter mükemmel bir seçimdir. Tek bir kod tabanı, değişikliklerin basitliği ve mükemmel yüksek hızlı yanıt elde edeceksiniz. Ancak, bu tür ürünleri daha karmaşık hale getirmenin, her bir işletim sistemi için ayrı ayrı uygulama geliştirmeye kıyasla daha fazla maliyet ve zamana yol açacağını belirtmekte fayda var.

Çeşitli cihaz modülleriyle etkileşim gerektiren karmaşık çözümler için yerel geliştirme yine de seçilmelidir.

Hesabınızı yönetmek için giriş yapın

veya