[swift] - Swift Charts로 배달 주문량 표시하기

Swift는 iOS 앱을 개발하기위한 강력한 프로그래밍 언어입니다. 배달 관련 앱에서는 주문량을 시각적으로 표시하는 것이 중요합니다. 이를 위해 Swift Charts 라이브러리를 사용하여 주문량을 효과적으로 표시할 수 있습니다.

Swift Charts 라이브러리 가져오기

먼저, Swift Charts 라이브러리를 가져와야 합니다. 이를 위해 CocoaPods를 사용할 수 있습니다. 프로젝트의 Podfile에 다음 라인을 추가하고 터미널에서 pod install 명령을 실행하세요.

pod 'Charts'

라이브러리가 성공적으로 설치되었다면, Xcode 프로젝트를 다시 열어서 사용할 수 있습니다.

주문량 데이터 모델 만들기

주문량을 표시하기 위해 데이터 모델을 만들어야 합니다. 주문량 데이터 모델에는 날짜와 해당 날짜의 주문량을 포함해야 합니다. 예를 들어, 다음과 같이 데이터 모델을 만들 수 있습니다.

struct OrderData {
    let date: String
    let quantity: Int
}

차트 설정하기

주문량 데이터가 준비되면, 차트를 설정해야 합니다. 먼저, 차트 뷰를 레이아웃에 추가하고 IBOutlet으로 연결하세요. 그런 다음, 다음과 같이 차트 설정 코드를 작성하세요.

import Charts

class OrderChartViewController: UIViewController {

    @IBOutlet weak var chartView: BarChartView!    

    var orderData: [OrderData] = []

    override func viewDidLoad() {
        super.viewDidLoad()
        configureChart()
        loadOrderData()
        updateChart()
    }

    func configureChart() {
        chartView.delegate = self
        chartView.drawBarShadowEnabled = false
        chartView.drawValueAboveBarEnabled = true
        chartView.leftAxis.axisMinimum = 0
        chartView.rightAxis.enabled = false
        chartView.xAxis.labelPosition = .bottom
        chartView.xAxis.drawGridLinesEnabled = false
        chartView.xAxis.granularity = 1
        chartView.xAxis.valueFormatter = self
        chartView.animate(yAxisDuration: 1.5, easingOption: .easeInOutQuart)
    }

    func loadOrderData() {
        // 주문량 데이터를 로드하는 코드를 작성하세요.
        // 예: orderData = loadOrderDataFromAPI()
    }

    func updateChart() {
        var entries: [BarChartDataEntry] = []

        for i in 0..<orderData.count {
            let dataEntry = BarChartDataEntry(x: Double(i), y: Double(orderData[i].quantity))
            entries.append(dataEntry)
        }

        let chartDataSet = BarChartDataSet(entries: entries, label: "주문량")
        let chartData = BarChartData(dataSet: chartDataSet)
        chartView.data = chartData
    }
}

extension OrderChartViewController: IAxisValueFormatter {
    func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        let index = Int(value)
        if index >= 0 && index < orderData.count {
            return orderData[index].date
        }
        return ""
    }
}

extension OrderChartViewController: ChartViewDelegate {
    // 차트 관련 이벤트를 처리하는 코드를 작성하세요.
}

차트 보여주기

위 코드에서 loadOrderData() 함수에서 실제 주문량 데이터를 로드해야 합니다. 예를 들어, 네트워크 요청을 사용하여 API에서 주문량 데이터를 가져올 수 있습니다. 가져온 데이터를 orderData 배열에 저장하고 updateChart() 함수를 호출하여 차트를 업데이트합니다.

func loadOrderData() {
    // 네트워크 요청을 사용하여 주문량 데이터를 가져오는 코드 작성
    // 예: OrderService.shared.getOrderData { (data) in 
    //         self.orderData = data
    //         self.updateChart()
    //     }
}

이제 배달 주문량을 시각적으로 표시하는 Swift Charts를 사용할 수 있습니다. 적절한 데이터를 가져와서 차트를 업데이트하고 사용자에게 주문량을 시각화된 형태로 보여줄 수 있습니다.

참고 자료