Mobil Uygulama11 Kasım 20269 dk okuma
Native mi, hibrit mi mobil uygulama karar rehberi, Codevvo Yazılım kapak görseli

Native mi, Hibrit mi? Şirketiniz İçin Mobil Uygulama Karar Rehberi

Native mi, hibrit mi? Şirketiniz ya da saha ekibiniz için mobil uygulama yaptırmayı düşündüğünüzde tekliflerde bu terimlerle karşılaşırsınız; yanına bir de "Flutter", "React Native" ve "PWA" eklenir. Bu rehber terimleri sade bir dille ayırıyor, hangi durumda hangisinin mantıklı olduğunu anlatıyor ve teklif almadan önce yanıtlamanız gereken soruları bir kontrol listesinde topluyor. Fiyat ya da süre vermiyoruz; kapsamı bilinmeyen bir iş için bunlar tahmin olur.

Kısa cevap: teknolojiyi değil, uygulamanın sahadaki işini seçin

Doğru seçim, hangi teknolojinin "daha iyi" olduğuna değil, uygulamanın ne iş yapacağına bağlıdır. Kim kullanacak, nerede kullanacak, telefonun hangi özelliklerine ihtiyaç var ve veriler hangi sisteme gidecek? Bu sorular yanıtlanınca teknoloji seçimi çoğu zaman kendiliğinden netleşir.

Genel bir yaklaşım olarak şunu söyleyebiliriz:

  • Çoğu iş uygulaması için varsayılan seçenek çapraz platformdur (React Native ya da Flutter): tek kod tabanı, iki mağaza.
  • Derin donanım ya da yüksek performans ihtiyacı varsa native ya da çapraz platforma eklenen native modül değerlendirilir.
  • Yalnızca şirket içi kullanım ve basit ekranlar varsa PWA ile başlamak yeterli olabilir.

Bu bir ölçüm değil, bir başlangıç kuralıdır. Her projede ağırlıklar farklıdır.

Dört seçenek, tek tabloda: native, çapraz platform, hibrit ve PWA

Önce terimleri netleştirelim:

  • Native (yerel) uygulama: iPhone için Apple'ın, Android için Google'ın kendi dilleri ve araçlarıyla ayrı ayrı yazılan uygulamadır. İki platform, iki ayrı kod demektir.
  • Çapraz platform (cross-platform) uygulama: React Native ya da Flutter gibi araçlarla tek kod tabanından yazılır; ekranlar telefonun kendi arayüz bileşenleriyle çizilir. Mağazalara normal bir uygulama olarak yüklenir.
  • Web görünümlü hibrit uygulama: Bir web sitesinin, telefondaki bir uygulama kabuğunun içinde gösterilmesidir. Mağazada uygulama olarak görünür ama içeride bir web sayfası çalışır.
  • PWA (progresif web uygulaması): Tarayıcıda açılan, telefonun ana ekranına kısayol olarak eklenebilen ve uygulama gibi kullanılan bir web uygulamasıdır. Mağazadan indirmek gerekmez.

Aşağıdaki tablo nitel bir karşılaştırmadır; rakam içermez.

Kriter Native Çapraz platform Web görünümlü hibrit PWA
Kod tabanı Her platform için ayrı Tek kod, iki platform Tek web kodu Tek web kodu
Kullanıcı deneyimi Platforma tam uyumlu Native'e yakın Web sayfasına yakın Web sayfasına yakın
Cihaz özelliklerine erişim En geniş Geniş; gerekirse native modül eklenir Eklentilere bağlı Tarayıcının izin verdiği kadar
Mağazada yer alma Evet Evet Evet Gerekmez
Güncelleme Her platformda ayrı Tek yerden, iki mağazaya Çoğu değişiklik web tarafında Web tarafında, anında
Uygun olduğu iş Derin donanım, yoğun performans Çoğu kurumsal ve saha uygulaması Mevcut web sitesini mağazaya taşımak İç kullanım, form ve rapor ekranları

"Hibrit" ile "çapraz platform" aynı şey mi?

Değil, ama tekliflerde ve internetteki yazılarda sık karıştırılır. Bazıları React Native ve Flutter'ı da "hibrit" diye anar. Fark şuradadır: klasik hibrit uygulamada ekranlar bir web sayfasıdır ve uygulama içindeki bir tarayıcı penceresinde gösterilir. Çapraz platform araçlarında ise kod bir kez yazılır, ekranlar telefonun kendi bileşenleriyle oluşturulur.

Pratik sonucu şudur: aynı bütçe başlığı altında birbirinden çok farklı iki ürün teklif edilebilir. Bir teklifte "hibrit uygulama" yazıyorsa şu soruyu sorun: "Ekranlar web görünümü içinde mi çalışacak, yoksa React Native ya da Flutter gibi bir çapraz platform aracıyla mı yazılacak?"

Native ne zaman şart?

Native geliştirme, iki platform için iki ayrı kod ve genellikle iki ayrı uzmanlık demektir. Bu yük, aşağıdaki gibi ihtiyaçlar olduğunda karşılığını verir:

  • Derin donanım bağlantısı: Bluetooth ile özel bir ölçüm cihazına, yazıcıya ya da sensöre sürekli bağlanmak.
  • Yoğun performans: Ağır grafik, animasyon ya da cihazda büyük veri işleme.
  • Arka planda sürekli çalışma: Uygulama kapalıyken de konum takibi gibi işlerin kesintisiz sürmesi.
  • Platforma özgü özellikler: Ana ekran widget'ı gibi, bir platformun kendine has özelliklerini derinlemesine kullanmak.

Bu ihtiyaçlardan yalnızca biri varsa, bütün uygulamayı native yazmak yerine çapraz platform bir uygulamaya o işe özel bir native modül eklemek de mümkündür. Aşağıdaki örnek bunu gösteriyor.

Çoğu iş uygulamasında neden çapraz platform varsayılan?

Kurumsal ve saha uygulamalarının büyük kısmı benzer ekranlardan oluşur: giriş, liste, detay, form, onay, bildirim ve rapor. Bu ekranlar için çapraz platform şu kolaylıkları getirir:

  • Tek kod tabanı: Bir özellik bir kez yazılır, iki platformda çalışır.
  • Tek ekip: iOS ve Android için ayrı ekip yönetmek gerekmez.
  • Aynı anda yayın: Yeni sürüm iki mağazaya birlikte hazırlanır; iki platform arasında özellik farkı oluşmaz.
  • Mağazada gerçek uygulama: Push bildirim (uygulama kapalıyken telefona gelen uyarı), kamera ve konum gibi özellikler kullanılabilir.

React Native ile Flutter arasındaki seçim, yönetici açısından ikincil bir karardır. Belirleyici olan, uygulamayı yıllarca sürdürecek ekibin deneyimi ve bakımın kimde olacağıdır.

PWA yeterli olabilir mi? İç kullanım ve basit form senaryoları

Her iş için mağazaya uygulama yüklemek gerekmez. Uygulamayı yalnızca kendi çalışanlarınız kullanacaksa ve ekranlar liste, form ve rapordan ibaretse, PWA iyi bir başlangıçtır: kullanıcı bir bağlantıya tıklar, telefonunun ana ekranına ekler ve kullanmaya başlar. Güncellemeler web tarafında yapılır, mağaza onayı beklenmez.

Codevvo'nun geliştirdiği eğitim yönetim sistemi (LMS) bu yaklaşıma bir örnektir: arayüz mobil uyumlu PWA web teknolojisiyle geliştirildi ve ekstra uygulama indirmeden telefondan kullanılıyor.

PWA'nın sınırları da vardır. Bildirim, arka planda çalışma ve cihaz özelliklerine erişim; telefonun işletim sistemine ve tarayıcıya göre farklılık gösterebilir. Bu özellikler işinizin merkezindeyse mağazaya yüklenen bir uygulama daha güvenli bir seçimdir.

Saha ekipleri için kritik konular: çevrimdışı çalışma, bildirim, kamera ve konum

Saha personeli için yapılan uygulamalarda teknoloji seçimini çoğu zaman şu dört ihtiyaç belirler:

  • Çevrimdışı çalışma: Şantiyede, depoda ya da limanda bağlantı kopabilir. Uygulamanın veriyi telefonda tutup bağlantı gelince göndermesi (eşitleme) gerekiyorsa bu baştan tasarlanmalıdır; kendiliğinden gelmez.
  • Bildirim: Onay bekleyen bir talep ya da yeni bir görev anında kullanıcıya ulaşmalıysa push bildirim gerekir. Bildirime dokununca doğrudan ilgili ekranın açılması (deep linking) kullanımı kolaylaştırır.
  • Kamera ve belge: Fiş, fatura, teslim tutanağı ya da fotoğraf yüklemek saha işinin günlük parçasıdır.
  • Konum: Ziyaret kaydı ya da rota için konum gerekiyorsa, bunun yalnızca uygulama açıkken mi yoksa arka planda da mı alınacağı netleştirilmelidir.

Bu ihtiyaçlar ne kadar kritikse, mağazaya yüklenen (çapraz platform ya da native) bir uygulama o kadar öne çıkar.

Asıl iş arka ofiste: uygulamanın ERP, CRM ve muhasebeyle bağlantısı

Bir iş uygulamasının değeri ekranlarında değil, taşıdığı veridedir. Saha ekibinin girdiği sipariş ERP'ye düşmüyorsa, onaylanan avans muhasebeye yansımıyorsa uygulama yeni bir veri adası olur ve aynı bilgi yine iki kez girilir.

Bu yüzden teknoloji seçiminden önce şu sorular yanıtlanmalıdır: Uygulama hangi sistemden veri okuyacak, hangisine veri yazacak? Telefona hangi veri gidecek, hangisi merkezde kalacak? Yetkiler nerede yönetilecek? Genellikle uygulama doğrudan ERP'ye değil, arada duran bir sunucu katmanına bağlanır; bu katman ERP, CRM ya da muhasebe programıyla veri alışverişi yapar.

Codevvo'nun yaklaşımı burada da aynıdır: paket yazılımın bittiği yerde başlarız. Mevcut programınızı değiştirmeden, onun karşılamadığı saha ya da mobil kısmı tamamlarız. Bu bağlantının nasıl kurulduğunu ERP ve muhasebe entegrasyonu sayfasında, paketi koruyup tamamlama yaklaşımını paket ERP mi özel yazılım mı rehberinde anlattık. Hangi yöntemin kullandığınız programla mümkün olduğu ihtiyaca göre değerlendirilir.

Gerçek örnek: tek kod tabanıyla iki platform, gereken yerde native modül

Codevvo'nun geliştirdiği CNMarApp denizcilik operasyon uygulaması, bu yazıdaki "karma" yaklaşımın somut bir örneğidir:

  • Tek kod tabanı: Uygulama React Native (Expo) ile geliştirildi ve hem iOS hem Android'de çalışıyor. Expo, React Native uygulamalarını geliştirmeyi ve yayınlamayı kolaylaştıran bir araç setidir.
  • Saha ihtiyaçları: Kamera ile fiş ve fatura tarama, proje bazlı belge ekleme ve avans onay süreçleri uygulamanın içinde.
  • Bildirim ve doğrudan yönlendirme: Push bildirimleri (Expo Notifications) ve bildirimden ilgili ekrana doğrudan geçiş (deep linking).
  • Gereken yerde native: Android kullanıcıları için ana ekran widget'ları native Kotlin ile ayrıca yazıldı. Böylece kullanıcı uygulamayı açmadan projeleri ve takvimi görebiliyor.

Yani seçim "ya hep ya hiç" değildir. Uygulamanın büyük kısmı tek kod tabanında kalırken, platforma özgü bir özellik için native bir parça eklenebilir.

Karar kontrol listesi: teklif almadan önce yanıtlamanız gereken 7 soru

Aşağıdaki soruları yanıtlamak, hem doğru teknolojiyi seçmenizi hem de teklifleri karşılaştırmanızı kolaylaştırır. Bu bir puanlama değil, genel bir yol göstericidir.

  1. Kim kullanacak? Yalnızca şirket içi personel mi, yoksa müşteri ya da bayi de mi? Mağazada görünmek pazarlama için gerekli mi? (İç kullanım ve basit ekranlar ise PWA adayı.)
  2. İnternetsiz çalışması gerekiyor mu? Sahada veri girip sonra eşitlemek şart mı?
  3. Telefonun hangi özellikleri kritik? Push bildirim, kamera, belge tarama, konum.
  4. Derin donanım ihtiyacı var mı? Bluetooth cihaz, ağır grafik, arka planda sürekli çalışma. (Evet ise native ya da çapraz platform ve native modül.)
  5. iOS ve Android'de aynı özellikler mi isteniyor? (Evet ise çapraz platform varsayılan.)
  6. ERP, CRM ya da muhasebeyle çift yönlü veri alışverişi olacak mı? (Evet ise önce entegrasyon tasarımı, sonra teknoloji.)
  7. Uygulamayı yıllarca kim sürdürecek? Bakımı yapacak ekip hangi teknolojide deneyimli?

Maliyeti ne etkiler?

Bu yazıda fiyat konuşmuyoruz. Genel olarak maliyeti teknoloji adından çok kapsam belirler: ekran ve rol sayısı, çevrimdışı çalışma, bildirim ve cihaz özellikleri, bağlanılacak sistemler ve iki platformun ayrı ayrı mı yoksa tek kodla mı yazılacağı. Teklif öncesi hangi kalemlerin maliyeti etkilediğini özel yazılım maliyeti neleri etkiler yazımızda ayrıntılı anlattık.

Sık sorulan sorular

Native ve hibrit uygulama arasındaki fark nedir?

Native uygulama, her platform için o platformun kendi diliyle ayrı ayrı yazılır: iPhone için ayrı, Android için ayrı bir uygulama. Hibrit uygulama ise bir web sayfasını telefondaki bir uygulama kabuğunun içinde gösterir; tek kod iki platformda çalışır. Arada bir de çapraz platform seçeneği vardır: tek kod tabanından yazılır ama ekranlar telefonun kendi bileşenleriyle çizilir. Teklif alırken bu üçünü ayırmak, neyi satın aldığınızı anlamanın ilk adımıdır.

Hibrit ile çapraz platform (React Native, Flutter) aynı şey mi?

Hayır, ama günlük dilde sık karıştırılır. Klasik hibrit uygulama bir web görünümü (uygulama içinde açılan tarayıcı penceresi) üzerinde çalışır. React Native ve Flutter gibi çapraz platform araçlarında ise kod bir kez yazılır, ekranlar telefonun kendi arayüz bileşenleriyle oluşturulur. Bu nedenle kullanıcı deneyimi native uygulamaya daha yakındır. Bir teklifte yalnızca "hibrit" yazıyorsa hangisinin kastedildiğini sormak gerekir.

Şirket için mobil uygulama mı, yoksa PWA (web uygulaması) mı yeterli?

PWA (progresif web uygulaması), tarayıcıda açılan ama telefona kısayol olarak eklenip uygulama gibi kullanılabilen bir web uygulamasıdır. Uygulamayı yalnızca kendi çalışanlarınız kullanacaksa, ekranlar çoğunlukla liste, form ve rapordan oluşuyorsa ve uygulama mağazasında görünmek gerekmiyorsa PWA ile başlamak makul bir yoldur. Kamera, bildirim, arka planda çalışma ya da cihaza derin erişim kritikse mağazaya yüklenen bir uygulama daha uygun olur.

Saha ekibi için uygulama internet olmadan çalışabilir mi?

Tasarıma bağlıdır. Uygulama, veriyi önce telefonda saklayıp bağlantı geldiğinde merkezdeki sisteme gönderecek şekilde kurulabilir. Bu özellik kendiliğinden gelmez; baştan ihtiyaç olarak yazılmalı, hangi verinin telefonda tutulacağı ve iki kişi aynı kaydı değiştirirse ne olacağı önceden kararlaştırılmalıdır. Sahada çekim sorunu yaşanan bir iş yapıyorsanız bunu teklif aşamasında açıkça belirtin.

React Native mi Flutter mı, işletme açısından fark eder mi?

Yönetici açısından ikisi de tek kod tabanıyla iOS ve Android'e çıkmayı sağlayan olgun araçlardır. Asıl fark, uygulamayı yıllarca sürdürecek ekibin hangisinde deneyimli olduğudur. Seçimi aracın kendisinden çok, bakımı kimin yapacağına, ekibin geçmiş işlerine ve uygulamanın bağlanacağı sistemlere göre yapmak daha sağlıklıdır.

Hibrit uygulama yavaş mı olur? Hangi durumda native şart?

Liste, form, onay ve rapor ekranlarından oluşan çoğu iş uygulamasında çapraz platform ile kullanıcı farkı hissetmez. Native genellikle şu durumlarda öne çıkar: Bluetooth ile özel bir cihaza bağlanmak, yoğun grafik ya da animasyon, arka planda sürekli çalışma veya platforma özgü bir özelliği derinlemesine kullanmak. Bu ihtiyaçların bir kısmı çapraz platform uygulamaya native bir modül eklenerek de karşılanabilir.

Mobil uygulama ERP/CRM ile nasıl bağlanır?

Uygulama genellikle doğrudan ERP'ye değil, arada duran bir sunucu katmanına bağlanır; bu katman ERP, CRM ya da muhasebe programıyla veri alışverişi yapar. Böylece telefona yalnızca gereken veri gider, yetki ve güvenlik tek yerde yönetilir. Kullandığınız programla hangi yöntemin mümkün olduğu programın dış erişim imkanlarına göre değerlendirilir. Bu tasarım, teknoloji seçiminden önce yapılmalıdır.

Tek kod tabanıyla iOS ve Android'e aynı anda çıkılabilir mi?

Evet, çapraz platform yaklaşımının temel amacı budur. Codevvo'nun geliştirdiği CNMarApp denizcilik operasyon uygulaması React Native (Expo) ile tek kod tabanından yazıldı ve hem iOS hem Android'de çalışıyor. Android'deki ana ekran widget'ları ise native Kotlin ile ayrıca geliştirildi; yani tek kod tabanı ile gerektiği yerde native modül bir arada kullanılabilir.

Hangi seçeneğin size uyduğunu birlikte netleştirelim

Codevvo Yazılım, Bursa merkezli bir özel yazılım ekibidir; Bursa'dan Türkiye genelindeki işletmelerle çalışırız. Mobil uygulamayı tek başına bir ürün olarak değil, iş süreçlerinizin ve kullandığınız sistemlerin bir parçası olarak ele alırız.

Görüşmede uygulamanın kimin için ve ne iş için yapılacağını, hangi sistemlere bağlanacağını konuşur, size uygun seçeneği birlikte belirleriz; bazen cevap "PWA ile başlayın" olabilir. Yukarıdaki kontrol listesini yanınızda getirmeniz yeterli.

Ön görüşme için bize yazın. Daha önce yaptığımız işleri görmek isterseniz referanslarımıza göz atabilirsiniz.

İşletmeniz için hazır mısınız?

Dijital dönüşüm yolculuğunuzu birlikte planlayalım

Süreç analizi, doğru teknoloji seçimi ve entegrasyon planlaması için ücretsiz ön görüşme talep edin.

Ücretsiz Görüşme Talep Et