Giriş: Katmanlı Mimarlık Cross-Platform Mobile Apps için Maddeler

Cross-platform mobil gelişimi, hem iOS hem de Android'i hedef almak için tek bir kod tabanına izin veren takımlar için standart haline geldi, ancak uygulama mimarisinin seçimi, platforma özgü bir spaghetti Katmanlı mimarisi gibi bir karışıklık, veritabanının uygulama ve uygulama ilkelerine göre özellikle de uygulama alanlarının farklı bölümlerine göre daha etkin bir şekilde uygulanmasına olanak tanır.

Katmanlı Mimariyi Anlamak

Katmanlı mimari, genellikle n-tier mimarisi olarak adlandırılır, yatay dilimlere bir uygulama ayrılır. Her katman iyi tanımlanmış bir role sahiptir ve sözleşme veya arayüzler aracılığıyla bitişik katmanlarla iletişim kurar. Mobil uygulamalardaki en yaygın katmanlar şunlardır:

  • [[Düzg:0)Öyleleme Katmanı[[Dönetici: 1) Kullanıcı arayüzü (UI) ve kullanıcı deneyimi (UX) ekranları oluşturur ve arayüz durumunu yönetir.
  • [FONT=0)İş Mantık Katmanı (BLL))[FONT=Uygulamanın ne yaptığını tanımlayan temel kurallar, iş akışları ve hesaplamalar.Bu katman platforma özgü API'ler asla referans olmamalıdır.
  • [FONT:0)Data Access Katman (DAL))[Uygun API, yerel veritabanı veya dosya depolama gibi metinler. İş mantığı katmanı için birleşik bir arayüz sağlar, verilerin SQLite, REST veya GraphQL’dan olup olmadığını görmezden gelmek için uygulamanın geri kalanını göz önünde bulundurmak.
  • [FONT:0]Hizmet Katmanı (isteğenim)) - Bazen kimlik doğrulama, kalibrasyon veya analitik gibi endişeleri yönetebilmek için kullanılır. BLL ve dış hizmetler arasında oturur.

Katı ayrılık, sunum katmanında bir değişiklik anlamına gelir (örneğin, bir listeden bir ağa geçiş) iş kurallarını veya veri erişimlerini etkilemez. Benzer şekilde, Firebase'den özel bir geri dönüş için güncelleme yalnızca veri erişim katmanında güncelleme gerektirir. Bu izolasyon, platforma özel UI kalıplarının (Maliye Tasarımı Android, İnsan Interface Kılavuzları iOS'nda) paylaşıldığı zaman özellikle de önemlidir.

Cross-Platform Development için temel Faydaları

1. maksimum Kod Reusability

Uygun bir tabakalı mimaride, iş mantığı ve veri erişim katmanları bir kez yazılabilir ve tüm hedef platformlarında paylaşılabilir. Sunum katmanı hala UI widgets'tan bazı platforma özgü kod (örneğin, navigasyon yapısı veya font) içerebilir, ancak temel mantık aynı kalır.Bu, web veya Masaüstü hedeflerini yazmak için kod miktarını büyük ölçüde azaltır. Örneğin, bir Flutter projesi (tablo veya BLoC) UI widgets'lardan gelen bir platforma özel kod (taban)

2. Bağımsız Koruma

Her katman, diğerlerini etkilemeden veya değiştirilemez.Eğer üçüncü taraf API'si uç noktası biçimini değiştirirse, yalnızca veri erişim katmanının değiştirilmesi gerekir. Tasarım ekibi kullanıcı arayüzünü geri almak istiyorsa, sunum katmanı yeniden yazılabilir.Bu geri dönüşüm böcekleri azaltır ve dönüşüm döngüleri hızlandırılır.

3. Future Özellikler ve Platformlar için erişilebilirlik

Katmanlı mimari doğal olarak ölçeklendirmeyi destekler. Yeni bir özellik eklemek genellikle iş mantığı katmanını ve sunum katmanını genişletmek anlamına gelir, ancak veri katmanı küçük eklemeleri gerektirebilir.Daha önemlisi, ekip yeni bir platformu desteklemeye karar verir (örneğin, Mac veya Windows), sadece yeni bir sunum katmanı uygulamak gerekir; paylaşılan iş ve veri katmanları zaten uyumlu.)

4. Akışkan Test ve Debugging

Katmanlar izolasyonda test edilebilir. Birim testleri, UI veya ağ bağımlıları olmadan iş mantığı katmanına karşı çalıştırılabilir.Integra testleri veri erişim katmanını depolama hizmetleriyle hedefle hedefletir. Sunum katmanı tüm platformlarda aynı şekilde test edilebilir, çünkü her katmanın tek bir sorumluluğu vardır, hatalar karmaşık bir hesaplamada neredeyse kesinlikle iş mantığı katmanındadır, UI kodunda değil. Cross- platformlarında takımlar aynı şekilde çalıştırılan tek bir test paketinden faydalanır.

5. Paralel Team İşbirliği

Katmanlı mimari, takımların iş yerinde çalışmasını sağlar. UI/UX tasarımcıları, paylaşılan iş mantığına ve platformun özel sunumuna sahipken sunum katmanına odaklanabilir ve iş mantığının bir araya gelmesi ve geliştirme araçlarına göre geliştirilir. İletişim sadece arayüzler (FL-play) ile ilgili olarak, bir ekip bu tür arayüzlere (örneğin, konsolidasyon koduna ve başka bir ekip) yardımcı olabilir.

Pratik İpuçları

Define Clear Boundaries

En yaygın hata, katmanların birbirlerine kanmasına izin verir. Klasik bir anti-pattern bir UI bileşenine doğrudan veritabanı erişimdir.Enforce katı kurallar: Sunum katmanı asla bir veritabanı sürücüsü ithal etmelidir ve iş mantığı katmanı asla bir UI widget'ı göndermemelidir.In Reaction Native'de, bu bağlam sağlayıcıları ve özel kancalar ile elde edilebilir; Flutter'da, miras plakaları veya sağlayıcı paketleri ile.

Ortak Katmanlar için Platform-Agnostic Tools seçin

Yeniden tekrarlama, iş mantığı ve veri erişim tabakalarını bir dilde yaz ve hedef-agnostic. For Flutter, Dart kodu doğal olarak hedeflerle paylaşılır.For React Native, TypeScript/JavaScript zaten bu tür soyutlamalar sağlar -örneğin,FLT:0[değiştir | kaynağı değiştir]

Inter-Layer İletişim için Interfaces kullanın

Her katman soyutlamalara (yüze veya protokollerine bağlı), beton uygulamalara bağlı değildir. Örneğin, iş katmanında farklı bir biyometrik kütüphane tanımlayın ve üretim için uygulama sağlayın (Firebase) ve test (mock). Bu model gerekli olduğunda ünite testleri ve farklı platformlara adapte olmak için önemlidir (örneğin iOS vs. Android'de farklı bir biyometrik kütüphaneyi kullanarak).

UI'yi İşletme Mantıkından Ayrı tutun

Bu ilke, çapraz platform uygulamaları için özellikle önemlidir, çünkü platform UI yönergeleri farklıdır. İş mantığı, bir düğmenin bir MalzemeÜT:1 olarak mı verildiğine dikkat etmemelidir; iş mantık tabakaları tepki verir ve yeni devlet yayarlar.

Düzenli olarak Refak Katmanları

Uygulama büyüdükçe, katman sınırları bulanık olabilir.Program periyodik mimari yorumları.Sekizli ithalat için sızıntıyafağı işaretlerine bakın) veritabanı sorguları içeren ağ talepleri doğrudan veya iş mantığını korumak için yardımcı olabilir. Teknik borçtan kaçınmak için erken. Otomatik linters ve mimarlık uygulama araçları (e.g.ENFLT:3).

Anticipate için Meydanlar

Katmanlı mimari, küçük uygulamalar için ezici hissedebiliriz, ancak ticaret-off, birden fazla soyutlama katmanından performans çıkar, ancak modern derleyici ve JIT / AOT optimizasyonları da bu durumu en aza indirmek için ekipleri eğitebilir.

Gerçek Dünya Başarı Hikayeleri

Birçok işletme çapraz platform uygulamaları katmanlı mimariyi benimsemiştir.Üyetim:0)Alibaba'nın ) mobil e-ticaret platformu, iyi tanımlanmış bir veri ile temiz bir mimarlık yaklaşımı kullanır ve hızlı bir şekilde sunmalarına izin verir, ana egzersiz algoritmalarının yaklaşık% 90'ını paylaşmalarına izin verir.

Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç Sonuç

Katmanlı mimari, çapraz platform mobil uygulamaları için yapısal, kullanılabilir bir temel sağlar.Sesli iş mantığından, takımlar yüksek kod tekrarlanabilir, daha kolay bakım, ölçeklenebilir bir büyüme elde eder ve gelişmiş bir test edilebilirlik sağlarken, iş ihtiyaçlarını ve platform güncellemelerini değiştirmek için uzun vadeli faydaları gerektirir.