Skip to main content

Migrating from UIKit to SwiftUI

About 2 minSwiftSwiftUIArticle(s)bloghackingwithswift.comcrashcourseswiftswiftuixcodeappstore

Migrating from UIKit to SwiftUI 관련

SwiftUI by Example

Back to Home

Migrating from UIKit to SwiftUI | SwiftUI by Example

Migrating from UIKit to SwiftUI

Updated for Xcode 15

If you've used UIKit before, many of the classes you know and love map pretty much directly to their SwiftUI equivalents just by dropping the UI prefix. That doesn't mean they are the same thing underneath, just that they have the same or similar functionality.

Here's a list to get you started, with UIKit class names followed by SwiftUI names:

  • UITableView: List
  • UICollectionView: LazyVGrid and LazyHGrid
  • UIScrollView: ScrollView
  • UILabel: Text
  • UITextField: TextField
  • UITextField with isSecureTextEntry set to true: SecureField
  • UITextView: TextEditor (plain strings only)
  • UISwitch: Toggle
  • UISlider: Slider
  • UIButton: Button
  • UINavigationController: NavigationStack or NavigationSplitView
  • UIAlertController with style .alert: .alert()
  • UIAlertController with style .actionSheet: .confirmationDialog()
  • UIStackView with horizontal axis: HStack
  • UIStackView with vertical axis: VStack
  • UIImageView: Image
  • UISegmentedControl: Picker
  • UIStepper: Stepper
  • UIDatePicker: DatePicker
  • UIProgressView: ProgressView with a value
  • UIActivityIndicatorView: ProgressView without a value
  • MKMapView: Map
  • NSAttributedString: AttributedString.

There are many other components that are exclusive to SwiftUI, such as a stack view that lets us build things by depth rather than horizontally or vertically.

Similar solutions…
Answering the big question: should you learn SwiftUI, UIKit, or both? | SwiftUI by Example

Answering the big question: should you learn SwiftUI, UIKit, or both?
Frequently asked questions about SwiftUI | SwiftUI by Example

Frequently asked questions about SwiftUI
SwiftUI tips and tricks | SwiftUI by Example

SwiftUI tips and tricks
How to fix “Ambiguous reference to member 'buildBlock()'” | SwiftUI by Example

How to fix “Ambiguous reference to member 'buildBlock()'”
How to add Metal shaders to SwiftUI views using layer effects | SwiftUI by Example

How to add Metal shaders to SwiftUI views using layer effects

이찬희 (MarkiiimarK)
Never Stop Learning.