🐙

SwiftUIリファクタリング事例②

2023/06/25に公開

【リファクタリング前のコード】

import SwiftUI

struct ContentView: View {
    var body: some View {
        Button {
        } label: {
            Text("スタート")
        }
        .padding()
        .frame(maxWidth: .infinity)
        .background(Color.blue)
        .foregroundColor(.white)
        .cornerRadius(10)
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

【リファクタリング前のコード】はボタンにモディファイアをつけていますが、

ボタンにモディファイアをつけちゃうと、
タップ領域がテキストのところだけになってしまいます。

【リファクタリング後のコード】

import SwiftUI

struct ContentView: View {
    var body: some View {
        Button {
        } label: {
            Text("スタート")
                .padding()
                .frame(maxWidth: .infinity)
                .background(Color.blue)
                .foregroundColor(.white)
                .cornerRadius(10)
                .padding()
        }
        
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

このように
ボタンのモディファイアは、ボタンにつけるのではなく、ボタンの中につけることで
タップ領域が広がり、UXが改善されます!

スクリーンショット 2023-06-25 16.03.23.png

スクリーンショット 2023-06-25 16.03.28.png

Discussion