# iOS | Swift/--- Project 11

iOS 지도 API 사용하기 (feat. Kakao Map)

Local API Kakao Map iOS API 가이드 1. 카카오 개발자사이트 에 개발자 등록 및 앱 추가하기 (내 애플리케이션 → 애플리케이션 추가하기) 2. iOS 플랫폼 추가하기 (추가한 앱 선택 → [플랫폼] – [iOS 플랫폼 등록] → 내 앱의 번들ID 등록하기) 3. Info.plist에 APP KEY 등록하기 - Key name: KAKAO_APP_KEY - Value Type : String - Value : 발급 받은 네이티브 APP KEY 4. SDK 를 다운받고 (위 Kakao Map iOS API 가이드 링크 참고) 압축을 풀어서 lib/DaumMap.embeddedframework 폴더를 애플리케이션 프로젝트로 복사하기 5. 라이브러리 파일을 추가하기 복사한 DaumMap.e..

[Alarm] #+5. 알람 레이블 화면 기능 완성 및 알람 목록 정렬 버그 수정

개발 일자 : 2022. 3. 7 최근 기능 정의서를 좀 더 디테일하게 작성하다 보니 다 되었다고 생각됐던 알람 레이블 설정 화면에서 동작하지 않는 기능이 있었다. (기능 정의의 중요성을 깨닫는 순간,,,) 레이블에 텍스트를 입력하지 않고 넘기면 아무 텍스트도 넘어가지 않는 것이었다. 기존에 텍스트 필드의 text 가 nil 일 때 처리를 해두어서 그거면 되는건줄 알았다. 코드가 좀 마음에 안들긴 하는데 우선은 더 좋은 방법이 떠오르지 않아서… 전에는 viewWillAppear 함수에 처리해야하는 코드를 작성해두었었는데 키보드에서 완료 버튼을 누를 때도 동일한 코드가 동작해야했기 때문에 따로 함수로 분리하였다. private func saveAlarmLabel() { var labelText = labe..

[Alarm] 2. 알람 섹션 분리 및 정렬

개발 일자 : 2022. 1. 11 AlarmListVC 에서 섹션 분리 기존 알람 앱과 다르게 켜져 있는 알람과 꺼져있는 알람을 분리했다. 뭔가 켜져있는 것과 꺼져있는 것이 구분되어 있는 것이 보기 더 편하지 않을까 싶어서,, 그렇기 때문에 전체적으로 수정을 했는데, 헤더와 관련된 설정이 추가되었고, 그로 인해서 단순히 alarm 데이터를 받을 때, 단순히 인덱스 값을 받는 것이 더 번거롭다는 생각이 들어 indexPath 를 그대로 넘기기로 했다. AlarmManager 에서도 약간의 변화가 생겼는데 alarms 변수를 이차원 배열로 만들었고 (켜진 알람과 꺼진 알람을 구분하기 위함) sectionCount 속성과 특정 섹션의 항목 개수를 반환하는 함수를 추가했다. 알람 설정과 관련된 함수들의 인자를..

[Alarm] #+4. 알람 끄기 화면 구현

개발 일자 : 2022. 2. 15 조금 오랜만에 다시 개발을 시작하는데,, 굉장히 당황스럽게도 지난번에 레이블 옵션 화면을 만들었는데 키보드가 안올라온다…????? 그래서 혹시나 싶어서 핸드폰에 연결해서 실행했더니 정상적으로 동작함,, 검색해도 뭘 체크하라는데 그렇게 해도 안나와서,, 알고봤더니 키보드가 그냥 꺼져있었던것같은데,, 시뮬레이터 새로 열면 키보드가 꺼져있는건가,, 암튼 cmd + K 로 Toggle 을 켜주었음 (이게 버튼으로는 안눌림,,ㅜ 왜지…..) 그리고 또 핸드폰 연결해서 실행하니까, 원하는 노래가 안울리고 진동만 울리길래 또 왜 안되지 생각해봤더니 무음모드가 꺼져있어야 함 ㅋㅋㅋㅋㅋ;; 역시 실제로 사용할 수 있을만한 알람앱 만들기 위해서는 백그라운드에서 뭔가 사운드가 동작할 수 ..

[Alarm] #+3. 알람 레이블 화면 추가

개발 일자 : 2022. 2. 4 알람 레이블 옵션 기능 추가하기~ 방식은 사운드 옵션 화면과 거의 유사하다 일단 레이블 화면(AlarmLabelVC)을 만들어 줌 Segue 연결도 해주고 이름은 AlarmLabelSegue 라고 했음 AlarmDetailVC 에서 해당 segue 를 위해 prepare 함수에 해야할 일을 추가해줬고 해당 셀이 선택될 때 연결된 segue 를 실행하도록 추가하였음 (나중에 각각 상수값들은 따로 정의해야할 것 같다) if~else 구문보다 switch 문이 깔끔할 것 같아서 구조도 변경해주었음 Alarm 구조체에 label 프로퍼티를 추가해서 viewDidLoad() 에서 configure() 할 때 전달된 값을 alarmOptions 항목에 적용하도록 수정하였음 priv..

[Alarm] 1. 기본 알람 목록 및 추가화면 구현, AlarmManager, 삭제 기능 추가

개발 일자 : 2022. 1. 10 알람 앱을 만들기 시작한 이유는 다른 앱을 만드는 중이었는데,, 그 앱에 알람 기능을 넣는 방식을 고민하는 것이 넘 복잡하기도 하고 좀 더 한 기능에만 몰입해서 개발을 하고 싶어서 종종 그런 것들이 생길 때마다 MySamples 프로젝트에 추가하기 위해 만들기 시작했다. 알람이라는 기능이 단순히 말 그대로 ‘알람’ 앱에만 사용되지는 않는다. 생각보다 많은 앱들에서 ‘알림’을 주어야 하는 상황이 존재하고 그 방식이 비슷하겠다라는 생각이 들었다. 이 알람 앱은 가장 기본적인 ‘알람’ 앱을 구현해보고자 시작한 프로젝트이다. 이미 비슷한 화면들을 구현해왔기 때문에 첫날 구현한 화면들과 기능은 빠르게 추가된 것들이다 알람 목록 및 추가화면 구현 AlarmListVC 우선 간단하..

[Alarm] #+2. 상세 화면에서 알람 삭제 기능 및 알람 시간 텍스트 표시 수정

개발 일자 : 2022. 2. 3 상세 화면에서 알람 삭제 기능 구현 지금까지는 알람 목록 화면에서 알람 삭제 기능만 구현해뒀는데 알람 상세 화면에서 삭제 셀을 선택했을 때, 알람 삭제 기능이 동작하도록 하기 위해 이전 AlarmSaving 프로토콜에 deleteAlarm() 을 추가했음 deleteAlarm() 을 추가하고 나니 AlarmSaving 이라는 이름이 좀 애매한 것 같아서 AlarmEditingDelegate 로 변경하였고 tableView(didSelectRowAt:) 메서드에 해당 셀이 선택된 경우 deleteAlarm() 을 호출하도록 하였음 첨에 이상한 값이 삭제되길래 봤더니 해당 메서드의 인자로 오는 indexPath 를 넘기고 있었다,, protocol AlarmEditingDe..

[Alarm] #+1. 알람 편집 모드 구현

개발 일자 : 2022. 2. 2 이전에는 스와이프 액션을 통해 데이터가 삭제되도록 구현했었는데 왼쪽 상단 바 버튼을 편집 버튼으로 사용하기로 결정 이전 푸시 알람 테스트로 사용했던 액션 함수명과 왼쪽 바 버튼 아이템을 편집 버튼으로 변경함 또한 편집이 완료되면 완료 버튼을 누를 수 있도록 UIBarButtonItem 타입의 바 버튼을 선언했고 스토리보드에 편집 바 버튼을 outlet 으로 가져옴 이 때, 일반적인 경우와 달리 weak 가 아닌 strong 참조로 가져왔는데 이는 edit 버튼이 done 버튼으로 바뀌게 되었을 때 edit 버튼이 메모리에서 해제가 되어 재사용할 수 없게 되기 때문 done 버튼을 누르게 되면 셀렉터를 통해 didTapDoneButton 함수가 실행되고 이 때 done 버..

[Alarm] #-1. 사운드 옵션 화면 추가 및 선택한 알람 사운드 전달하기

개발 일자 : 2022. 1. 19 이건 좀 써둬야겠다고 생각이 드는 것이 한 번씩 있는데 요 알람 앱을 만들면서 좀 더 그런 생각이 많이 들었다 간단한 것들 중에서도 처음 해보는 방식이거나 생각해봐야 할 것들이 끊임없이 있더라 (느닷없이 왼쪽 엄지 손가락 관절이 아픈데,, 왜지) 암튼 생각 정리가 필요해서 오늘부터 적기 시작..! 이전 날짜도 중요한 건 적어둬야지 알람 사운드 옵션 화면 추가 스토리보드에 사운드 옵션 선택을 위한 화면(AlarmSoundVC) 추가 번외로 셀 선택했을 때 deselect 하는 코드를 tableView(didDeselectRowAt:) 메서드에 넣고 있었다는 걸 깨닫고 tableView(didSelectRowAt:) 메서드로 변경해줌 AlarmSoundVC 에 사운드 목록..