01Sorun ve çözüm
Flutter uygulama geliştirme projelerine, uygulamanın hangi cihaz özelliklerine dokunacağını çıkararak başlıyoruz. Kamera, konum ve bildirim gibi yaygın ihtiyaçlar olgun paketlerle karşılanır; ödeme kuruluşu SDK'sı, özel donanım ya da ana ekran widget'ı gibi konularda yerel kod gerekip gerekmediği baştan netleşir. Böylece teklif, sonradan sürpriz çıkaracak belirsizlikler bırakmadan hazırlanır ve iki platformun yayın takvimi birlikte planlanır.
02Kimler için
Flutter uygulama kimler için doğru seçim
Flutter her proje için doğru araç değildir; aşağıdaki profillerde getirisi daha belirgindir.
- Aynı uygulamayı iOS ve Android kullanıcılarına aynı anda ve sınırlı bir bütçeyle sunmak isteyen girişimler
- Markasına özgü, animasyonlu ve platformdan bağımsız görünen bir arayüz isteyen perakende ve hizmet işletmeleri
- Ayrı ayrı bakımı yapılan yerel uygulamalarını tek kod tabanında birleştirmek isteyen şirketler
- Önce telefonla başlayıp aynı kodu ileride tablet, web paneli ya da masaüstü ekranlara taşımayı planlayan ekipler
- Personel ve saha uygulamalarında hem iPhone hem Android cihazlardan oluşan karma bir filo kullanan kuruluşlar
03İhtiyaçlar
Flutter projesinde baştan kararlaştırılması gerekenler
Bu kararlar ilk geliştirme döneminde verilmezse ilerleyen sürümlerde pahalı yeniden yazımlara yol açar.
- 01
Durum yönetimi yaklaşımı
Riverpod, Bloc ya da Provider gibi seçeneklerden biri projenin büyüklüğüne göre seçilir ve bütün ekranlarda tutarlı uygulanır. Ekrandan ekrana değişen yaklaşımlar, yeni katılan bir geliştiricinin kodu anlamasını zorlaştıran sık rastlanan bir sorundur.
- 02
Paket seçimi ve bağımlılık riski
pub.dev'deki her paket aynı özenle bakılmaz. Kritik işlevler için bakımı süren, platform desteği açık paketler seçilir; terk edilme riski taşıyanlar ince bir katmanın arkasına alınarak gerektiğinde değiştirilebilir tutulur.
- 03
Yerel kod ihtiyacı
Platforma özel bir SDK, arka planda uzun süre çalışan görevler ya da ana ekran widget'ı gerektiğinde platform kanalları üzerinden Swift ve Kotlin ile yerel modül yazılır. Bu ihtiyaçların kapsamı tahmine bırakılmaz, keşif aşamasında listelenir.
- 04
Ortam ve sürüm ayrımı
Test, hazırlık ve canlı ortamlar için ayrı uygulama kimlikleri ve yapılandırmalar tanımlanır. Böylece test sürümü canlı veriye dokunmaz ve aynı telefonda canlı sürümle yan yana kurulabilir.
04Özellikler
Tek kod tabanında sunulan işlevler
Ortak kod tabanının asıl değeri, aşağıdaki işlevlerin iki platformda tek seferde ve aynı davranışla çalışmasıdır.
- 01
Markaya özel arayüz
Bileşenler tasarım sisteminize göre bir kez kodlanır; renk, yazı tipi ve boşluk kuralları merkezi tema dosyasından yönetilir. İstenirse iOS kullanıcılarına Cupertino, Android kullanıcılarına Material davranışları sunulur.
- 02
Çevrim dışı veri ve önbellek
Liste ve detay ekranlarının verisi yerel veritabanında saklanır, bağlantı geldiğinde arka uçla eşitlenir. Kullanıcı tünelde ya da asansörde de son gördüğü bilgiye ulaşır.
- 03
Bildirim ve derin bağlantı
Firebase Cloud Messaging ile iki platforma tek altyapıdan bildirim gönderilir. Bildirime dokunan kullanıcı ilgili ürün, sipariş ya da duyuru ekranına doğrudan açılır.
- 04
Çoklu dil ve erişilebilirlik
Metinler çeviri dosyalarından gelir, sağdan sola yazılan diller dahil yerelleştirme desteklenir. Ekran okuyucu etiketleri ve büyük yazı ayarları test listesinde yer alır.
05Entegrasyonlar
Flutter uygulamalarının konuştuğu servisler
Uygulamanın değeri, arkasındaki sistemlerle ne kadar sağlıklı veri alışverişi yaptığına bağlıdır.
- 01
Firebase hizmetleri
Kimlik doğrulama, Firestore, Remote Config ve Crashlytics FlutterFire paketleriyle bağlanır; her şeyi Firebase'e yığmak yerine yalnızca işe yarayan servisler seçilir.
- 02
Kendi arka ucunuz ve ERP
REST ya da GraphQL API'ler üzerinden sipariş, stok ve müşteri verileri mevcut yazılımlarınızdan alınır; dışarıya veri açmayan sistemler için araya bir ara katman yazılır.
- 03
Ödeme altyapıları
Kartlı ödemede ödeme kuruluşunun mobil SDK'sı ya da 3D Secure doğrulamalı ödeme sayfası uygulamaya yerleştirilir; kart verisi uygulamada tutulmaz.
- 04
Harita ve konum servisleri
Google Maps ya da OpenStreetMap tabanlı harita paketleriyle şube bulucu, adres seçimi ve rota gösterimi eklenir.
06Süreç
Flutter uygulama yaptırmak istiyorum: süreç nasıl işler?
Adım 01
Analiz
İş akışınızı, kullanıcılarınızı ve mevcut sistemlerinizi dinleriz; kapsamı, öncelikleri ve kabul ölçütlerini yazılı hâle getiririz.
Adım 02
Tasarım
Ekran akışlarını ve veri modelini çıkarırız. Arayüzü sizinle gözden geçirip onay almadan geliştirmeye geçmeyiz.
Adım 03
Geliştirme
Kısa döngülerle çalışırız; her döngü sonunda çalışan bir sürümü test ortamında görürsünüz.
Adım 04
Test
İşlevsel testler, entegrasyon testleri ve temel güvenlik kontrolleriyle hataları yayından önce yakalarız.
Adım 05
Yayın
Sunucu, alan adı, yedekleme ve izleme ayarlarını yaparak canlıya alırız; ekibinize kısa bir kullanım eğitimi veririz.
Adım 06
Bakım
İsterseniz bakım ve destek anlaşmasıyla güncellemeleri, izlemeyi ve yeni geliştirmeleri sürdürürüz.
07Teknoloji
Flutter uygulama mimarisi, test ve performans
Kodu sunum, iş kuralları ve veri katmanlarına ayırıyor, her katmanı bağımsız test edilebilir tutuyoruz. Flutter'ın birim, widget ve entegrasyon testleri tek araç zincirinde çalışır; kritik ekranlar için görsel karşılaştırma testleri, bir tasarım değişikliğinin başka bir ekranı bozup bozmadığını gösterir. Bu testler kod deposuna yapılan her birleştirmede otomatik koşar.
Devamını okuDaha az göster
Performans tarafında uzun listelerde tembel yükleme, görsel önbelleği ve gereksiz yeniden çizimleri önleyen bileşen yapısı kullanılır. Flutter uygulamalarının paket boyutu yerel uygulamalardan bir miktar büyük olabilir; bu fark kod küçültme ve platforma göre ayrılmış derlemelerle sınırlandırılır. Flutter sürüm yükseltmeleri ve paket uyumluluğu bakım ve destek kapsamında düzenli izlenir.
08Çalışma modelleri
Bu hizmette çalışma modelleri
- 01
Proje bazlı
Sabit kapsam, sabit fiyat ve belirli teslim tarihi
Kapsamı belli, teslim tarihi olan işler için.
- Yazılı kapsam ve kabul ölçütleri
- Sabit fiyat ve belirli teslim tarihi
- Teslim ve kabul adımları sözleşmede
- 02
Bakım ve destek
Aylık sözleşmeli, SLA'lı bakım, destek ve geliştirme saati
Yayındaki bir sistemin sürekliliği için.
- Aylık sözleşme ve SLA
- İzleme, güncelleme ve hata düzeltme
- Aylık geliştirme saati
09Sık sorulan sorular
Flutter uygulama hakkında sık sorulan sorular
Flutter uygulama yaptırma fiyatları neye göre değişir?
Ekran sayısı, özel animasyon ve tasarım beklentisi, yerel modül ihtiyacı, bağlanacak servisler ve yönetim paneli maliyeti belirler. Tek kod tabanı iki ayrı yerel uygulamaya göre emeği azaltır; yerel kod gerektiren kısımlar ise bu kazanımı sınırlayabilir.
Flutter uygulama için firma seçerken neye dikkat etmeliyim?
Daha önce yazılmış Flutter kodunun okunabilirliğine, test alışkanlığına ve yerel modül yazabilme yetkinliğine bakın. Kaynak kodun, mağaza hesaplarının ve Firebase projesinin sizin adınıza olacağı sözleşmede açıkça yazılmalıdır.
Flutter mı, React Native mi tercih etmeliyim?
İkisi de ortak kod tabanı sunar. Flutter arayüzü kendi motoruyla çizdiği için platformlar arasında görsel tutarlılıkta öne çıkar; React Native ise JavaScript ve React bilen ekiplerde ve web ile kod paylaşımında avantaj sağlar. Ekibinizin yetkinliği ve ürün ihtiyacı seçimi belirler.
Flutter uygulaması yerel uygulama kadar akıcı çalışır mı?
Flutter kodu cihaz için makine koduna derlenir; liste, form ve animasyon ağırlıklı iş uygulamalarında genellikle belirgin bir fark hissedilmez. Yoğun grafik işleme ya da artırılmış gerçeklik gibi alanlarda yerel geliştirme daha uygun olabilir.
Mevcut yerel uygulamamızı Flutter'a geçirebilir miyiz?
Evet. Uygulamayı tek seferde yeniden yazmak yerine Flutter modülleri mevcut iOS ve Android uygulamasına ekran ekran eklenebilir. Bu yöntem riski zamana yayar ve kullanıcıların uygulamayı yeniden indirmesini gerektirmez.
Aynı kod web sitesinde de kullanılabilir mi?
Flutter web çıktısı alabilir, ancak arama motoru görünürlüğü gereken içerik siteleri için uygun değildir. Kurum içi panel ya da oturum açılarak kullanılan ekranlarda değerlendirilebilir.
10İlgili hizmetler