iOS Swift kitaplıklarını bağlama
Önemli
Şu anda Xamarin platformunda özel bağlama kullanımını araştırıyoruz. Gelecekteki geliştirme çalışmalarını bilgilendirmek için lütfen bu ankete katılın.
iOS platformu, anadili ve araçlarıyla birlikte sürekli gelişmektedir ve en son teklifler kullanılarak geliştirilmiş birçok üçüncü taraf kitaplığı vardır. Kodun ve bileşenin yeniden kullanılmasını en üst düzeye çıkarmak, platformlar arası geliştirmenin temel hedeflerinden biridir. Swift ile oluşturulan bileşenleri yeniden kullanma özelliği, geliştiriciler arasındaki popülerlik arttıkça Xamarin geliştiricileri için giderek daha önemli hale gelmiştir. Normal Objective-C kitaplıkları bağlama işlemini zaten biliyor olabilirsiniz. Artık Swift Framework Bağlama işlemini açıklayan ek belgeler kullanıma sunulmuştur, bu nedenle bir Xamarin uygulaması tarafından aynı şekilde kullanılabilir. Bu belgenin amacı, Xamarin için Swift Bağlaması oluşturmaya yönelik üst düzey bir yaklaşımı açıklamaktır.
Üst düzey yaklaşım
Xamarin ile, herhangi bir üçüncü taraf yerel kitaplığını bir Xamarin uygulaması tarafından kullanılacak şekilde bağlayabilirsiniz. Swift yeni dildir ve bu dille oluşturulan kitaplıklar için bağlama oluşturmak için bazı ek adımlar ve araçlar gerekir. Bu yaklaşım aşağıdaki dört adımı içerir:
- Yerel kitaplığı oluşturma
- Xamarin araçlarının C# sınıfları oluşturmasını sağlayan Xamarin meta verilerini hazırlama
- Yerel kitaplığı ve meta verileri kullanarak Xamarin bağlama kitaplığı oluşturma
- Xamarin uygulamasında Xamarin bağlama kitaplığını kullanma
Aşağıdaki bölümlerde bu adımlar ek ayrıntılarla özetlenmiştir.
Yerel kitaplığı oluşturma
İlk adım, yerel bir Swift Framework'ün üst bilgi oluşturularak Objective-C hazır olmasını sağlamaktır. Bu dosya, istenen Swift sınıflarını, yöntemlerini ve alanlarını kullanıma sunan ve Xamarin bağlama kitaplığı aracılığıyla hem hem de Objective-C sonuçta C# için erişilebilir hale getiren otomatik olarak oluşturulan bir üst bilgidir. Bu dosya çerçeve içinde şu yolun altında bulunur: FrameworkName.framework>/Headers/<FrameworkName-Swift.h>.< Kullanıma sunulan arabirim tüm gerekli üyelere sahipse, sonraki adıma atlayabilirsiniz. Aksi takdirde, bu üyeleri kullanıma açmak için daha fazla adım gerekir. Yaklaşım, Swift çerçevesi kaynak koduna erişiminiz olup olmadığına bağlıdır:
- Koda erişiminiz varsa gerekli Swift üyelerini özniteliğiyle
@objc
süsleyebilir ve Xcode derleme araçlarının bu üyelerin dünyaya ve üst bilgisine açık olması gerektiğini bilmesini sağlamak için Objective-C birkaç ek kural uygulayabilirsiniz. - Kaynak kodu erişiminiz yoksa, özgün Swift çerçevesini sarmalayan ve özniteliğini kullanarak
@objc
uygulamanızın gerektirdiği genel arabirimi tanımlayan bir proxy Swift çerçevesi oluşturmanız gerekir.
Xamarin meta verilerini hazırlama
İkinci adım, bağlama projesi tarafından C# sınıfları oluşturmak için kullanılan API tanımı arabirimlerini hazırlamaktır. Bu tanımlar Objective Sharpie aracı ve yukarıda belirtilen otomatik olarak< oluşturulan FrameworkName-Swift.h> üst bilgi dosyası tarafından el ile veya otomatik olarak oluşturulabilir. Meta veriler oluşturulduktan sonra el ile doğrulanması ve doğrulanması gerekir.
Xamarin.iOS bağlama kitaplığını oluşturma
Üçüncü adım, Xamarin.iOS bağlama kitaplığı adlı özel bir proje oluşturmaktır. Önceki adımda hazırlanan çerçevelere ve meta veriler ile ilgili çerçevenin bağımlı olduğu tüm ek bağımlılıklara başvurur. Ayrıca, başvuruda bulunılan yerel çerçevelerin tüketen Xamarin.iOS uygulamasıyla bağlantısını da işler.
Xamarin bağlama kitaplığını kullanma
Dördüncü ve son adım, Xamarin.iOS uygulamasında bağlama kitaplığına başvurmaktır. iOS 12.2 ve üzerini hedefleyen Xamarin.iOS uygulamalarında yerel kitaplığın kullanımını etkinleştirmek yeterlidir. Daha düşük bir sürümü hedefleyen uygulamalar için bazı ek adımlar gereklidir:
- Çalışma zamanı desteği için Swift dylib bağımlılıkları ekleyin. iOS 12.2 ve Swift 5.1'den başlayarak, dil ABI (uygulama ikili arabirimi) kararlı ve uyumlu hale geldi. Bu nedenle daha düşük bir iOS sürümünü hedefleyen tüm uygulamaların çerçeve tarafından kullanılan Swift dylibs bağımlılıklarını içermesi gerekir. Sonuçta elde edilen uygulama paketine gerekli dylib bağımlılıklarını otomatik olarak eklemek için SwiftRuntimeSupport NuGet paketini kullanın.
- Karşıya yükleme işlemi sırasında AppStore tarafından doğrulanan imzalı dylibs ile SwiftSupport klasörü ekleyin. Paketin imzalanması ve Xcode araçları kullanılarak AppStore bağlantısına dağıtılması gerekir, aksi takdirde otomatik olarak reddedilir.
İzlenecek yol
Yukarıdaki yaklaşımda Xamarin için Swift Bağlaması oluşturmak için gereken üst düzey adımlar özetlenmiştir. Yerel araçlardaki ve dillerdeki değişikliklere uyum sağlama dahil olmak üzere uygulamada bu bağlamaları hazırlarken dikkate alınması gereken birçok alt düzey adım ve daha fazla ayrıntı vardır. Amaç, bu kavramı ve bu süreçte yer alan üst düzey adımları daha iyi anlamanıza yardımcı olmaktır. Ayrıntılı adım adım kılavuz için Xamarin Swift Bağlama İzlenecek Yol belgelerine bakın.