Chapters

Hide chapters

SwiftUI Cookbook

Live Edition · iOS 16.4 · Swift 5.8.1 · Xcode 14.3.1

Creating Reusable SwiftUI Components
Written by Team Kodeco

In SwiftUI, creating reusable components can dramatically improve code organization and reduce development time. By breaking down your app’s UI into smaller, reusable components, you can easily reuse code across multiple views and screens. Let’s explore how to create reusable SwiftUI components.

To create a reusable component, start by defining a new SwiftUI view that encapsulates the UI and functionality you wish to reuse. In our example, let’s create a custom button that we can reuse throughout our app.

struct CustomButton: View {
  let text: String

  var body: some View {
    Button(action: {
      print("\(text) button was tapped")
    }) {
      Text(text)
        .foregroundColor(.white)
        .padding()
        .background(Color.blue)
        .cornerRadius(10)
    }
  }
}

In the code above, we define a new SwiftUI view called CustomButton. This view takes in text parameter, which will be used as the title of the button. We use the built-in Button view in SwiftUI to create a button that behaves like a traditional button. In the view’s body property, we create a new Button that, when tapped, will print a message to the console. (You would replace this with the desired functionality for your button.) Inside the button’s Content closure, we add a Text view to display the button’s title, with some additional styling attributes for font color, padding, background color and corner radius.

Now, whenever you need to use this custom button in your app, simply instantiate a new CustomButton view and pass in the desired text parameter.

struct ContentView: View {
  var body: some View {
    VStack {
      CustomButton(text: "Sign In")
      CustomButton(text: "Create Account")
    }
  }
}

Your preview should look like:

A SwiftUI View with two custom buttons.
A SwiftUI View with two custom buttons.

Here, we create a new ContentView that contains two instances of our CustomButton view, one with the title “Sign In” and one with the title “Create Account”.

By creating reusable components like this, you can maximize code reuse in your SwiftUI projects and make your codebase easier to maintain and update. Reusable components allow you to make changes in a single place, avoiding the need to find and edit every instance of a component across your codebase. This leads to less room for error and a more efficient development process. Enjoy the power of reusable components and happy developing!

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.
© 2024 Kodeco Inc.