목록분류 전체보기 (88)
iOS 개발일지

iOS 앱 개발자 데뷔 과정 7회차 #0. Memo - Tag : View에 번호를 붙여보자 View에 고유값을 부여함으로써, 코드를 짤 때 tag를 index처럼 활용할 수 있다. - Alert : 익숙한 그것! Alert은 사용자에게 작은 창을 띄우는 형태의 Controller로, Style은 두 종류가 있다. UIAlert : 중앙에서 나타나며 확인, 취소와 같은 알림창 역할을 주로 함 UIAlertSheet : 하단에서 나타나며 추가기능 역할을 주로 함 Alert의 구현은 아래와 같이 크게 4단계의 구성으로 이루어진다. 기본적으로 Alert의 Button은 addAction의 호출 순서로 배치되지만, Style을 cancel로 해놓으면 항상 맨 아래/왼쪽에 위치하게 된다. #1. Checklist..

iOS 앱 개발자 데뷔 과정 6회차 #0. Memo - 투명도를 조절하는 두가지 방법. Alpha vs Opacity 아래의 사진에서 파란색 View는 Alpha, 노란색 View는 Opacity를 조절했다. Alpha는 객체 자체를 투명하게 만들기 때문에 View 내부에 포함되어있는 Label도 같이 투명해진 것을 볼 수 있다. 반면 Opacity는 색상의 투명도이기 때문에 객체의 속성과는 관련이 없어, Label에는 영향을 주지 않는다. - 이미지가 파란색으로 나온다면? Rendering Mode (template vs original) 가끔 시뮬레이터를 실행하면 이미지가 파란 색으로 나올 때가 있다. 해결하는 방법은 여러 가지가 있겠지만, 근본적으로는 이 부분을 체크해봐야 한다. Assets에 이미..

iOS 앱 개발자 데뷔 과정 1주차 마무리 - 과제2 newlyCoinedWord Project 구현하기 이번 마무리 과제는 신조어 검색 어플을 구현하는 것이다. 처음에는 막막했지만, 1단계부터 4단계까지 나뉘어져 있어서 하나씩 따라가다보면 생각보다 어렵지는 않았다. 가장 스트레스 받았던 부분은 역시 AutoLayout이었다... 결과를 보여줄 신조어 리스트는 Dictionary로 직접 작성했다. AutoLayout만 스토리보드에서 작업하고, 그 외 Layout은 가급적 코드로 작성하려고 노력했다. 아래에서는 Layout에 관한 코드는 제외하고, 어떤 코드로 어떻게 동작하는지만 간단하게 작성하려고 한다. 검색 버튼을 눌렀을 때, 우선 조건문으로 TextField가 비어있지 않은지 판단한다. 이 조건문에서..

iOS 앱 개발자 데뷔 과정 5회차 #0. Memo - AutoLayout Constraints에 따라 뷰 계층 구조에 있는 모든 뷰의 크기와 위치를 동적으로 지정하는 것. 디바이스마다 화면의 해상도가 다르고, 비율도 다르기 때문에 AutoLayout으로 조건을 걸어 동일한(비슷한) 화면을 보여주게 하는 것이다. 뷰당 최소 4개씩 레이아웃을 잡아주는 경우가 기본적이다. 뷰 하나를 추가할 때마다 레이아웃을 잡는것이 가장 좋지만, 이미 뷰가 여러개 있다면 아래와 같은 순서로 작업하는 것이 좋다. 1. 큰 쪽에서 작은 쪽으로 2. 아래/위 둘중 기준점 하나를 잡아서 차례대로 참고 : 다른 뷰에 레이아웃을 맞출 때 수평으로 드래그하면 수평에 관한 옵션만 뜬다. 대각선으로 할 것! - Constraints (제약..

iOS 앱 개발자 데뷔 과정 4회차 #0. Memo - 컴파일 에러와 런타임 에러 컴파일 에러 : 코드에 에러가 있어 실행이 안되는 상태 런타임 에러 : 실행중에 일어나는 예상치 못한 에러 - 옵셔널과 옵셔널 체이닝 var a: String? 여기서 상수 a는 Optional String 타입이다. a에 값이 있는지 없는지(nil) 모른다는 것을 의미하며, 옵셔널이라는 랩으로 감싸져 있는 상태이기 때문에 코드에서 사용할 땐 옵셔널을 벗겨주어야 한다. 옵셔널을 가장 쉽게 벗기는 방법은 a! 이렇게 뒤에 !를 붙이는 것인데, 위험한 방법이므로 값이 확실한 경우에만 사용해야 한다. 값이 nil인지 아닌지에 따라 다른 실행을 하고 싶을 땐 조건문을 사용할 수 있겠지만, 아래와 같이 훨씬 더 간단한 코드로 가능하..

iOS 앱 개발자 데뷔 과정 3회차 일주일의 반! 그저께 잠을 늦게 잤더니 어제 너무 피곤한거예요ㅠ ㅠ그래서 어제는 무려 10시 전에 침대에 누웠습니다! 일찍 자도 아침에 일어나기 힘든건 마찬가지지만, 일어난 후가 정말 상쾌하더라구요~ 역시 사람은 잠을 많이 자줘야 해...음음 #0. Memo 앱의 생명주기 앱에도 생명주기가 존재한다. 간단히 정리하면 아래와 같다. Not Running : 앱이 시작되기 전 상태 Active : 앱이 화면에서 실행중인 상태—————————————------Foreground Inactive : 앱이 화면에서 실행 중이나 어떤 신호도 받지 않는 상태—-----Foreground Background : 앱이 화면에 보이지 않지만 코드를 실행하고 있는 상태 Suspend : ..

iOS 앱 개발자 데뷔 과정 2회차 어제에 이어 강제 아침형 인간이 된 나... 어제 자려고 누워있으니 괜히 '아...이렇게 하면 더 깔끔하게 될거같은데...할 수 있을거같은데...' 라는 생각이 계속 나더라구요ㅋㅋㅋㅋㅠㅠ 꿈에서까지 코딩하지는 않았지만 이런저런 생각에 살~짝 늦게 잠들었더니 아침 컨디션이 말이 아니었어요. 오늘은 꼭 일찍 자야지 오늘 수업에는 어제 과제에 대한 해설을 해주시며 같이 해보는 시간이 있었는데, 왜 View의 레이아웃과 같은 설정들을 viewDidLoad 블럭 내에서 하는지 알려주셨어요 "화면이 다 로드되고나서 뒤늦게 바뀌면 웃기니까... 얘들 지금 뭐하자는거지? 하는 생각이 들잖아요?" 라고 하시는 말씀이 너무 웃겨서ㅋㅋㅋㅋㅋ 이해가 한번에 되더라구요! 아, viewDidL..

iOS 앱 개발자 데뷔 과정 1회차 드디어 기대하던 과정 첫날!! 정말 오랜만에 8시에 일어나 밥을 먹고, 줌 비디오/오디오 설정을 하자 9시가 되었습니다 아무래도 첫날이라 간단히 storyboard로 UI를 구성하는 정도만 진행했는데, 설명이 너무너무 친절하셨어요ㅎㅎ 다른 분들이 올려주신 블로그에 들어가보니, 이미 블로그에 정리를 하고 계셨던 분들이 많으시더라구요 따라잡으려면 정말! 열심히! 해야겠다고 생각했습니다^ㅠ^ 저는 블로그도 처음이기 때문에 일단 가볍게 작성해보려고 합니다~ 강의가 끝난 다음 공부하고 정리할 내용은 크게 3가지가 있는 것 같네요! Checklist 로 그날의 개념 정리를 하고, Assignment 로 배운 내용을 복습하며, Mission 를 통해 심화 학습을 할 수 있어요. 물..