BMI 계산법
신체질량지수(BMI) =$체중(kg) / (신장(m))^2$
- Auto Layout
- TextField, Button, @Outlet, @IBAction
- UIAlertController, Alert, Actionsheet
- style: default, destructive, cancel
- 함수의 반환 값, @discardableResult
- Optional Chaining, Optional Binding
- UserDefaults
- 키와 몸무게 입력 받기
- 숫자 키패드 사용
- Int, Float, Double(정수와 실수) 구분
- 몸무게 입력 시 입력값 안보이게 설정
- UserDefaults에 데이터 저장
- 기존 데이터 기록이 남아있으면 TextField에 기본 노출
- 초기화 버튼 클릭 시 UserDefaults 데이터 삭제
- 키보드 내리기
- 백그라운드 tap 했을 때
-
키보드 return 눌렀을 때(→ 숫자 키패드로 변경)
- BMI 계산하기
- BMI 계산 함수 생성
- 키와 몸무게 매개변수 받기
- 신장 단위 변경 (cm(센티미터) → m(미터))
- BMI 결과 Alert 연결
- BMI 결과 소숫점 반올림
- 랜덤으로 BMI 계산하기
- 임의의 데이터 셋 구성 (→
Double.random()
사용) - 랜덤한 값으로 BMI 계산
- 임의의 데이터 셋 구성 (→
- 예외 처리 (옵셔널 체이닝, 옵셔널 바인딩)
- 키/몸무게 텍스트 필드에 문자가 입력됐을 때
- 키/몸무게 범위가 잘못됐을 때 (일반적이지 않은 경우)
- 공백이나 빈칸이 입력됐을 때
- AutoLayout을 활용한 화면 배치 (다양한 기종 대응)
- iPhone SE
- iPhone 13 mini
- iPhone 15
- iPhone 15 Pro
- iphoone 15 Pro Max
- TextField
- highlight borderColor 변경
- 왼쪽 패딩 (UITextField.leftView, .leftViewMode 사용)
- Alert
- 반복되는 코드 함수화
- UserDefaults 사용한 사용자 데이터 영구 저장/삭제
런치 스크린 | 메인 화면 | 메인 화면 (UserDefaults) |
Alert (결과 확인 버튼 클릭) |
---|---|---|---|
![]() |
![]() |
![]() |
|
Alert (키가 범위를 벗어났을 때) |
Alert (몸무게가 범위를 벗어났을 때) |
Alert (랜덤 버튼 클릭했을 때) |
|
![]() |
![]() |
![]() |
Swift에서 상수 선언 시 상수명 명명법
JavaScript에서 상수(Constants) 데이터를 만들 때 객체를 활용해 선언하고, 상수명은 대문자 스네이크 케이스(e.g. TEXT_DATA)를 활용했었다. Swift에서는 기본으로 카멜 케이스(camelCase)를 사용하고 카멜 케이스 안에서도 Lower Camel Case 와 Upper Camel Case로 나뉘어지는데, 상수 선언의 경우에는 Lower Camel Case를 사용한다고 한다. 따라서 앱에서 사용할 문자열을 딕셔너리(Dictionary)를 활용해 상수를 선언하고, 상수명은 Lower Camel Case 규칙을 적용해주었다.