SwiftUI ile yapılmış bir uygulamam varsa, iOS 13'ün altındaki iOS için çalışır mı?
SwiftUI ile yapılmış bir uygulamam varsa, iOS 13'ün altındaki iOS için çalışır mı?
Yanıtlar:
Kısa süre önce Xcode 11'de kontrol ettim ve SwiftUI'nin View
uygulamasında görülebileceği gibi geriye dönük olarak uyumlu olmayacağını doğrulayabilirim :
/// A piece of user interface.
///
/// You create custom views by declaring types that conform to the `View`
/// protocol. Implement the required `body` property to provide the content
/// and behavior for your custom view.
@available(iOS 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
public protocol View : _View {
/// The type of view representing the body of this view.
///
/// When you create a custom view, Swift infers this type from your
/// implementation of the required `body` property.
associatedtype Body : View
/// Declares the content and behavior of this view.
var body: Self.Body { get }
}
Sanmıyorum, çünkü tüm kitaplıklar iOS 13 veya üzeri için zaten açıklanmış durumda.
Ayrıca, belgelerde Apple desteklenen sürümlerden açıkça bahsetmektedir:
SwiftUI ve birleştirin kullanım Opak-Return-Türleri bunların uygulanmasına doğasına Swift 5.1 ve bağlı uygulanmaktadır (diğer özellikleri yanında) Swift 5.1 ve Opak-Dönüş tiplerine beri, geri dağıtılabilir edilemez Swift 5.0 aksine ( DSL veya Property-Wrappers ) ve iOS 13, işletim sisteminde Swift 5.1 çalışma zamanını içeren en eski iOS SDK olduğu için, sorunun cevabı hayır ve SwiftUI ve Combine , iOS'un önceki sürümlerinde kullanılamaz.
Apple, Swift 5.1 çalışma zamanını (veya gelecekteki sürümleri) önceki Swift sürümlerinde olduğu gibi uygulama ile bir araya getirmenin bir yolunu sağlamadığı sürece, ancak Uygulama boyutunu artıracağı ve tüm sisteme yeniden ek yük getireceği için bunun olacağından şüpheliyim hiç olur.
Swift 5.1 henüz yayınlanmamış olan ve SwiftUI
kullanımları özellikleri gibi opak dönüş türleri , DSL , propertyDelegate (şekilde WWDC tanıtılan propertyWrapper mevcut olacaktır) vb, sadece Swift 5.1. Swift 5 ikili kararlı olduğundan, Xcode11 içinde gömülü hızlı çerçeveler kullanmak mümkün olmadı sanırım, bu nedenle bu özellikleri Cocoa'nın çekirdeğinde yeniden uyguladılar ve Swift 5.1 piyasaya çıkana kadar iOS13 + olarak işaretlediler.
Benim varsayımlarım, Ordered Collection Diffing ve DSL'in Swift 5.1'de mevcut olacağı ve Xcode veya Apple'ın eko sistemi ile hiçbir ilişkisi olmayacağı, ancak aynı zamanda olarak işaretlendiği gerçeğine dayanıyor @available(iOS13,...)
. Bu, Swift 5.1 özelliklerini kullanarak her şeyi iOS kullanılabilirlik özelliğiyle işaretlemeleri gerektiği anlamına geliyor. Swift 5.1 yayımlanan alır kez Bazıları kaldırılır alacak, ama emin yaklaşık olamaz SwiftUI
ve Combine
Apple aksi söylemezse. Bu, DSL'in teklifinde de belirtilmiştir :
Uygulama: PR . Xcode geliştirici önizlemesindeki uygulamanın burada açıklanandan biraz daha basit bir dönüşüm kullandığını unutmayın. Bağlantılı PR , önizlemedeki uygulamayı yansıtır ancak bu teklife uyması için aktif geliştirme aşamasındadır.
Dolayısıyla geriye dönük uyumsuzluk sınırlaması, Swift 5.1 piyasaya sürüldüğünde kaldırılabilir, ancak bunun gerçekten Apple ekibi tarafından açıklığa kavuşturulması gerekiyor .
Hayır. SwiftUI , iOS 13 veya üzeri, macOS 10.15 veya üzeri, tvOS 13 veya üzeri ya da watchOS 6 veya üzeri bir dağıtım hedefi gerektirir. Çerçeve, işletim sistemlerinin eski sürümlerinde bulunmayan birçok yeni türü içerir.
İPad'i değil, iPhone'u desteklemek için çekim yapıyorsanız, muhtemelen çoğu kullanıcının 12-18 ay içinde iOS 13'e geçmesini bekleyebilirsiniz (çıkış tarihinden itibaren). Belki% 85-90? (Sanırım Apple, bu noktada hala insanların% 15'inin iOS 12 kullanmadığını söyledi) Bu, SwiftUI uygulamalarını hemen dağıtamayacağınız veya birçok kullanıcıyı yabancılaştırma riskiyle karşı karşıya kalmayacağınız oldukça uzun bir süre olsa da.
Ayrıca, diğer% 10-15'in ne olduğuna bağlı olarak, bu sizin için masada kalan birçok kullanıcı (ve $$) anlamına gelebilir.
Siz de iPad'i destekliyorsanız, bu daha zordur çünkü insanlar iPad'lerini sık sık yükseltmezler. Sadece 10.3.3'e sahip olan ve artık yükseltilemeyen 3. ve 4. nesil iPad'lerin yanı sıra hala vahşi ortamda çok sayıda iPad 2 var. İnsanlar, mükemmel bir şekilde çalıştığında, yeni bir iPad için ayağa kalkıp 400-1000 $ arasında ödeme yapmayacaklar.
Uygulamayı güncellemek, daha iyi hale getirmek, hataları düzeltmek için her zaman yer ve ihtiyaç vardır, bunlar iOS 13 ile hiçbir ilgisi yoktur. Örneğin, daha önce bilmediğiniz bir hatayı bulmak birçok kullanıcıyı mutsuz eder. . en son iOS sürümünde değil. ve birçok geliştirme mağazasının desteklediği kurumsal / kurumsal müşterilerden bahsetmedik bile. bu alandaki çeşitli nedenlerden dolayı iOS güncellemelerinde çok daha fazla geri itme var.
Bu yüzden, iOS 13 ve SwiftUI (ki bu harika olduğu için kesinlikle yapmalısınız) hakkında heyecanlanmadan önce, gerçek dünyada, Silikon Vadisi'nin dışında, bu, ortalama bir tüketicinin beklediği şeyle tam olarak örtüşmeyecek ve destek vermeniz gerekecek daha eski cihazlar ve buna ihtiyaç var çünkü çok fazla insan var çünkü yabancılaştırıyor olabilirsiniz.
Apple belgelerine göre maalesef yalnızca iOS 13'ten itibaren kullanılabilir.
İOS 13+ ile uyumludur. İşte belgelerine bağlantı.
https://developer.apple.com/documentation/swiftui/
Xcode 10 bile bunu desteklemiyor. (3 Haziran 2019) itibarıyla beta sürümünde olan Xcode 11'i kullanmanız gerekiyor. https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
yalnızca ios 13 veya sonraki sürümler için çalışır
yine de SwiftUI
kullanarak kodunuzu ekleyebilirsiniz
@available(iOS 13.0, *)
Hala Xcode 11'in altında Xcode kullanıyorsanız ve SwiftUI kodunuz varsa,
#if canImport(SwiftUI)
...
#endif
Bu, Xcode 11'in altında Xcode ile derleme yaparken sorunu çözebilir
Herkesin söylediği gibi, eski iOS sürümleriyle geriye doğru uyumlu olmayacak. Ancak Apple'ın sürekli olarak en son iOS'larının yüksek bir yükleme tabanına sahip olduğu ve ayrıca iOS 13'ün iPhone 6S veya sonraki bir sürümünü, iPad Air 2 veya sonraki bir sürümünü, yeni iPad mini 4 ve iPhone SE'yi gerektirdiği göz önüne alındığında. Kullanıcıların büyük çoğunluğu iOS 13 yükleyebilecek ve sevimli SwiftUI uygulamalarının keyfini çıkarabilecek.
Benden önceki herkesin bahsettiği gibi, iOS 13 veya sonraki bir sürümünü gerektireceği çok açık. Ancak yeni bir iOS geliştiricisi olarak, SwiftUI'yi UIKit'e kıyasla ne ölçüde benimsemem gerektiği konusunda endişeliydim. UIKit ile zaten bazı küçük projeler inşa ettim ve onunla daha ileri bir yere gittim.
Ancak SwiftUI başladığında, ikisi arasında nasıl birleşilir. Aşağıdaki bağlantıdaki makale her şeyi bağlama oturtur: https://www.hackingwithswift.com/quick-start/swiftui/answering-the-big-question-should-you-learn-swiftui-uikit-or-both
Şimdi tek endişem, Xcode 11 ile bir Xcode projesinin hem Storyboard'ları hem de SwiftUI'yi birleştiremediğini fark ettim.
Maalesef hayır, SwiftUI'ye yalnızca iOS 13 ve üzeri sürümlerde izin verilir. İOS 13 çerçevesinde tanıtıldı. İOS 13'ten önce, her şey Obj-C çerçevesi (Swift dahil) kullanılarak oluşturuldu.
Geliştirici belgelerinin sağ tarafında iOS, macOS, tvOS, watchOS vb. Desteklenen sürümleri gösterir.
https://developer.apple.com/documentation/swiftui/
Bu yardımcı olur umarım!