Swift와 Xcode를 활용해 간단한 계산기 앱을 개발합니다. 이 과제는 Swift 문법을 바탕으로 Playground에서 구현한 로직을 UI와 통합해 실제 앱으로 구현하는 경험을 목표로 합니다.
- 형식:
[레벨] 작업 내용 - 팀원 이름
- 예:
[Lv_1] 라벨 UI 구현 - 홍길동
- 예:
- 작업 세부 사항: 구현한 주요 기능과 로직에 대한 요약을 작성합니다.
- Fork로 가져오기: 각 팀원은 레포지토리를 Fork하여 자신의 개인 레포지토리로 가져옵니다.
- 브랜치 생성: Fork한 개인 레포지토리에서 각자의 이름을 딴 브랜치를 생성합니다.
- Pull Request: 각자의 브랜치에서 Pull Request를 생성해 코드 리뷰를 요청합니다. 모든 팀원이 Pull Request에 코멘트를 추가하여 피드백을 제공합니다.
- 수정 및 Merge: 피드백을 반영하여 수정한 후, 팀원들의 동의를 얻어 merge를 진행합니다.
-> 풀 리퀘스트를 한 후 Merge하지 않은채 커밋-푸시를 하면 기존 풀 리퀘스트에 들어가기 때문에 그럴 경우 새로운 브랜치를 만듭니다. (ex. Jamong-Lv1, Jamong-Lv2 ...)
- CalculatorApp: 프로젝트의 메인 진입점이며, SwiftUI로 구현된 인터페이스를 통해 계산기 앱이 실행됩니다.
- Main.storyboard: 앱의 기본 UI 구성과 레이아웃을 설정하는 스토리보드 파일입니다.
- CalculatorViewController.swift: 계산기의 주요 기능을 구현한 뷰 컨트롤러 파일입니다.
- Extensions: UIView와 UIButton에 필요한 공통 설정 및 기능 확장을 모아둔 파일입니다.
- Utilities: 계산 로직을 처리하는 헬퍼 메서드를 포함한 파일로, Swift의
NSExpression
을 활용한 수식 계산 메서드가 구현되어 있습니다.
- Level 1:
UILabel
을 사용해 수식을 표시하는 UI를 구현합니다. - Level 2:
UIStackView
를 이용하여 숫자 및 연산 버튼을 구성하는 가로 스택 뷰를 생성합니다. - Level 3: 세로 스택 뷰로 전체 버튼을 배열하여 계산기의 전반적인 UI를 완성합니다.
- Level 4: 연산 버튼의 색상을 오렌지로 설정해 차별화합니다.
- Level 5: 버튼을 원형으로 만들기 위해
cornerRadius
속성을 조정합니다.
- Level 6: 버튼 클릭 시 라벨에 숫자와 연산 기호가 차례로 표시되도록 구현합니다.
- Level 7:
AC
버튼 클릭 시 초기화되어 기본 값0
이 표시되도록 구현합니다. - Level 8:
=
버튼을 클릭하면 수식이 계산되어 결과가 라벨에 표시되도록 구현합니다.
- CalculatorViewController.swift
각 레벨에 따라 구현된 기능을CalculatorViewController.swift
파일에 추가하여 기본 UI와 로직을 통합합니다.
func calculate(expression: String) -> Int? {
let expression = NSExpression(format: expression)
if let result = expression.expressionValue(with: nil, context: nil) as? Int {
return result
} else {
return nil
}
}
- 버튼 및 라벨 설정
- 버튼의 색상, 크기, 모양을 설정하고 라벨에 표시될 수식을 업데이트합니다.
- 기한: 11월 22일 (금) 낮 12시까지 제출
- 제출물: 개인 과제 결과물을 GitHub에 올리고 링크를 제출합니다.
이번 과제를 통해 UI와 로직의 통합 구현을 연습하고, 협업을 통한 코드 리뷰와 피드백을 통해 더 나은 코드 품질을 만들어 봅시다.