programing

이스 스위프트UI가 iOS 12.x 및 이전 버전과 역호환됩니까?

showcode 2023. 5. 20. 11:03
반응형

이스 스위프트UI가 iOS 12.x 및 이전 버전과 역호환됩니까?

만약 내가 스위프트로 만든 앱이 있다면,UI, iOS 13 이하의 iOS에서도 작동할까요?

했는데 Swift Xcode 11에서 볼 수 할 수 . »View구현:

/// 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 }
}

Swift UI Combine은 Swift 5.1에서 Opaque-Return-Types를 사용하며, Opaque-Return-Types(다른 기능과 함께)가 Swift 5.1에서 구현되어 있기 때문에 구현의 특성상 Swift 5.0으로 다시 배포할 수 없습니다(DSL 또는 Property-Wrapper달리).OS에서 1 런타임이므로 질문에 대한 대답은 No 및 Swift입니다.UI 및 Combine은 이전 버전의 iOS에서 사용할 수 없습니다.

그렇지 않다면, Apple은 이전 Swift 버전에서 그랬던 것처럼 Swift 5.1 런타임(또는 향후 릴리스)을 애플리케이션과 함께 번들하는 방법을 제공하지만, App-size를 늘리고 전체 시스템에 오버헤드를 다시 추가할 것이기 때문에 이러한 일이 발생하지 않을 것이라고 생각합니다.

이전 버전과 호환될 수 있습니다.

5되지 않았고 Swift 5.1은 발매되지 .SwiftUI에서는 Swift 5.1에서만 사용할 수 있는 불투명 반환 유형, DSL, propertyDelegate(WWDC에서 propertyWrapper로 소개됨) 의 기능을 사용합니다.스위프트 5는 바이너리 안정성이 있기 때문에 Xcode11 내에 내장된 스위프트 프레임워크를 사용할 수 없었던 것으로 생각됩니다. 그래서 그들은 이 기능들을 코코아 코어에 다시 구현했고 스위프트 5.1이 출시될 때까지 iOS13+로 표시했습니다.

제 추측은 주문형 컬렉션 디핑 DSL이 스위프트 5.1에서 사용 가능하고 Xcode 또는 Apple의 에코시스템과 상관관계가 없지만 다음과 같이 표시되어 있다는 사실에 기초합니다.@available(iOS13,...)이것은 그들이 iOS 가용성 속성으로 Swift 5.1 기능을 사용하여 모든 것을 표시해야 한다는 것을 의미합니다. 5그중는 제거될 이지만, 우리는 스위프트 5.1에 대해 할 수 SwiftUI그리고.Combine애플이 달리 말하지 않는 한.이는 DSL의 제안에도 언급되어 있습니다.

구현: PR.Xcode 개발자 미리보기의 구현은 여기에 설명된 것보다 다소 단순한 변환을 사용합니다.연결된 PR은 미리보기에 구현 내용을 반영하지만 이 제안과 일치하도록 개발 중입니다.

따라서 Swift 5.1이 출시되면 역호환성 제한이 해제될 수 있지만 Apple 팀에서 를 명확히 해야 합니다.

저는 그렇게 생각하지 않습니다, 왜냐하면 모든 라이브러리는 이미 iOS 13 이상에 대한 주석을 달았기 때문입니다.

또한 설명서에서 Apple은 지원되는 버전을 명확하게 언급합니다.

  • iOS 13.0+ 베타
  • macOS 10.15+ 베타
  • tvOS 13.0+ 베타
  • watch OS 6.0+ 베타

여기에 이미지 설명 입력

아니요. 스위프트UI를 사용하려면 iOS 13 이상, macOS 10.15 이상, tvOS 13 이상 또는 watch의 배포 대상이 필요합니다.OS 6 이상.이 프레임워크에는 이전 버전의 OS에는 없는 새로운 유형이 많이 포함되어 있습니다.

iPad가 아닌 iPhone을 지원하기 위해 촬영하는 경우 대부분의 사용자가 12-18개월 내에 iOS 13으로 업그레이드할 것으로 예상할 수 있습니다.85~90% 정도?(IOS를 사용하지 않는 사람의 15%가 여전히 있다고 Apple이 말한 것으로 생각됩니다. 12) Swift를 배포할 수 없는 부분까지는 아직 시간이 많이 걸립니다.UI 앱은 즉시 사용하지 않으면 많은 사용자를 멀어지게 할 위험이 있습니다.

또한 다른 10-15%가 무엇인지에 따라 많은 사용자(및 $)가 테이블 위에 남아 있을 수 있습니다.

iPad를 지원하는 경우 사람들이 iPad를 자주 업그레이드하지 않기 때문에 더욱 까다롭습니다.3세대 및 4세대 iPad와 함께 10.3.3만 있고 더 이상 업그레이드할 수 없는 많은 iPad 2가 아직 야생에 있습니다.사람들은 새 아이패드가 완벽하게 잘 작동할 때 일어나서 400달러에서 1,000달러 사이의 돈을 지불하지 않을 것입니다.

앱을 업데이트하고, 개선하고, 버그를 수정해야 할 여지와 필요성이 항상 있습니다. iOS 13과 반드시 관련이 있는 것은 아닙니다. 즉, 이전에 몰랐던 버그를 찾아서 많은 사용자를 불행하게 만드는 것입니다.최신 iOS 버전에는 없습니다.그리고 우리는 많은 개발 상점들이 지원하는 엔터프라이즈/기업 고객에 대해서도 이야기하지 않았습니다.그 분야에서 다양한 이유로 iOS 업데이트에 대한 많은 푸시백이 있습니다.

iOS 13과 Swift에 열광하기 전에실리콘 밸리 외부의 실제 환경에서는 UI(훌륭하기 때문에 반드시 그래야 합니다)가 일반 소비자가 기대하는 것과 정확히 일치하지 않을 것입니다. 사용자는 오래된 장치를 지원해야 하며 사용자와 격리되는 사람이 너무 많기 때문입니다.

iOS 13+와 호환됩니다.다음은 문서에 대한 링크입니다.

https://developer.apple.com/documentation/swiftui/


Xcode 10도 지원하지 않습니다.(2019년 6월 3일 기준) 베타 버전인 Xcode 11을 사용하셔야 합니다.https://developer.apple.com/tutorials/swiftui/creating-and-combining-views

안타깝게도 애플 문서에 따르면 iOS 13부터 사용할 수 있습니다.

https://developer.apple.com/documentation/swiftui/

ios 13 이상에서만 작동합니다.

당신은 여전히 당신의 것을 부착할 수 있습니다.SwiftUI사하여코화를

@available(iOS 13.0, *)

만약 당신이 여전히 Xcode 11 아래의 Xcode를 사용하고 Swift를 가지고 있다면,UI 코드는 다음과 같이 포장할 수 있습니다.

#if canImport(SwiftUI)
...
#endif

이것은 Xcode 11 아래의 Xcode로 컴파일할 때 문제를 해결할 수 있습니다.

모두가 말했듯이, 그것은 이전 iOS 버전과 역호환되지 않을 것입니다.그러나 애플이 최신 iOS의 설치 기반을 지속적으로 높게 유지하고 있고, iOS 13이 아이폰 6S 이상, 아이패드 에어 2 이상, 새로운 아이패드 미니 4와 아이폰 SE를 필요로 한다는 점을 고려할 때.대다수의 사용자들은 iOS 13을 설치하고 사랑스러운 스위프트를 즐길 수 있을 것입니다.UI 앱.

슬프게도 아냐, 스위프트UI는 iOS 13 이상에서만 사용할 수 있습니다.iOS 13 프레임워크에 도입되었습니다.iOS 13 이전에는 모든 것이 Obj-C 프레임워크(스위프트 포함)를 사용하여 구축되었습니다.

개발 설명서의 오른쪽에는 지원되는 iOS, macOS, tvOS, watchOS 등의 버전이 나와 있습니다.

https://developer.apple.com/documentation/swiftui/

이것이 도움이 되길 바랍니다!

제 앞에 있는 모든 사람들이 언급했듯이, iOS 13 이상이 필요할 것은 매우 분명합니다.하지만 새로운 iOS 개발자로서 저는 스위프트를 어느 정도까지 채택해야 할지 고민했습니다.UI와 UI를 비교합니다.저는 이미 UIKit로 작은 프로젝트를 몇 개 구축했고, 그것을 가지고 선진적인 곳으로 갔습니다.

하지만 스위프트로서UI가 시작되었습니다. UI를 결합하는 방법입니다.다음 링크의 기사는 모든 상황을 설명합니다. https://www.hackingwithswift.com/quick-start/swiftui/answering-the-big-question-should-you-learn-swiftui-uikit-or-both

지금 제 유일한 걱정은 Xcode 11을 사용하여 Xcode 프로젝트가 Storyboard와 Swift를 모두 결합할 수 없다는 것을 알게 되었다는 것입니다.UI.

UIKit를 사용하는 스토리보드와 Swift를 사용하는 UIHostingController를 사용하는 스토리보드 두 개를 만듭니다.UI.

그런 다음 if #available()사용하여 OS가 Swift를 지원하는지 확인합니다.UI.

    // SwiftUI
    
    let storyboard_swiftUI = UIStoryboard(name: "Main-SwiftUI", bundle: nil)
    let controller_swiftUI = storyboard_swiftUI.instantiateViewController(withIdentifier: "ViewControllerSwiftUI")

    // UIKit
    
    let storyboard_UIKit = UIStoryboard(name: "Main-UIKit", bundle: nil)
    let controller_UIKit = storyboard_UIKit.instantiateViewController(withIdentifier: "ViewControllerUIKit")

    if #available(macCatalyst 14.0, iOS 14.0, *){

        // SwiftUI

        self.present(controller_swiftUI, animated: true)

    } else {
        
        // UIKit
        
        self.present(controller_UIKit, animated: true)

    }

언급URL : https://stackoverflow.com/questions/56433305/is-swiftui-backwards-compatible-with-ios-12-x-and-older

반응형