본문 바로가기

ios강의12

[24일차] Network 통신 우리가 사용하는 대부분의 앱 서비스에는 'Network' 통신이 필요하다. 로그인, 장바구니, 결제 등등 서버와의 통신이 필요한 기능의 대부분에 쓰여지는 기술이다. * App + Concurrency (동시성) : 앱 서비스 내에서 네트워크 통신이 이루어지는 과정이라도 동시적으로 사용자 터치 반응에 대한 처리는 이루어져야 한다. * HTTP : 앱과 서버 사이에서 데이터를 주고 받기 위한 네트워크 통신규약 * HTTP Request Method 1. POST : Create 2. GET : Read 3. UPDATE : Update 4. DELETE : Delete * Content-Type : 전달되는 데이터 형식(text/html, application/json, image/png, video/mpe.. 2020. 8. 14.
[23일차] TodoList 추가/삭제 TodoList 샘플 앱 마지막으로 "추가(+) / 삭제 (-)" 기능을 추가하고자 한다. 1) [Today] 옵션 : ON/OFF 토글형식으로 선택값에 따라, 다른 카테고리로 분류 2) [+] 추가 버튼 : Input Text에 입력한 데이터를 목록에 추가 3) [-] 삭제 버튼 : 삭제한 데이터가 Todo.json 파일 내에서도 삭제 처리 2020. 8. 12.
[22일차] InputText 와 소프트 키보드 영역 앱에서 정보를 입력하기 위해서는 InputText와 소프트 키보드가 필요하다. 이번 수업에서는 상태에 따라 소프트키보드가 동적으로 Show/Hide 하는 기능을 구현해보고자 한다. 우선, InputText에 커서가 위치했을 때, 소프트 키보드를 보여주는 코드를 구현한다. 그 다음은, InputText에 입력을 마친 후 소프트키보드 영역을 숨김처리가 필요하다. Tap Gesture Recognizer 이벤트를 처리하는 UI를 추가하여, View 영역에 터치이벤트를 확인한다. 소프트키보드 영역 숨김처리는 resignFirstResponder() 로 처리한다. * resignFirstResponder() : 텍스트필드의 현재 상태를 포기했다는 의미 (키보드가 자동으로 내려가는 효과) 2020. 8. 11.
[19일차] Designated Init vs. Convenience Init * designated initialize : 직접적인 initialize * convenience initialize : 간접적인 initialize * Convenience initialize 사용하는 이유? : initialize 파라미터가 너무 많을 때, 간략히 하고자 사용 ☆ designated vs convenience - DI는 자신의 부모의 DI를 호출해야 함 - CI는 같은 클래스의 이니셜라이저를 꼭 하나 호출해야 함 - CI는 궁극적으로 DI를 호출해야함 위의 예제와 같이 CI를 이용하면 클래스 객체 생성을 간단하게 이용할 수 있다. CI 이용 시, 궁극적으로 DI를 반드시 호출해주어야 한다. 2020. 8. 7.
[12일차] Set 과 Closure 이용 * Set : 중복이 없는 유니크한 아이템을 담을 때 사용 * Closure : 이름이 없는 메소드 클로저를 이용하여 동적으로 함수를 만들어서 활용 가능 * Closure - Capturing Value (☆) : scope 밖의 범위에서도 사용이 가능하다. (Swift에서 제공하는 기능) 2020. 7. 28.
[11일차] Array 함수와 Dictionary 실습 1. Array(배열)에 사용하는 다양한 함수 * 배열 변수에 range(범위)를 지정하여 사용 가능 ex) let firstThree = eventNumbers[0..2] * contains() : 배열에 특정 값의 포함 여부 * insert(value, at) : 특정 값(value)을 인덱스(at)에 추가 * removeAll() : 배열 전체를 모두 삭제 * swap(startIndex, endIndex) : 배열의 특정 인덱스 값을 서로 바꿔주는 함수 * for num in eventNumbers { print(num) } * 반복문으로 인덱스와 값을 출력 for (index, num) in eventNumbers.enumerated() { print("idx: \(index), value: \.. 2020. 7. 27.
[10일차] Collection 소개, Array 사용법 # 실무에서는 수많은 변수들을 효율적으로 관리할 필요가 있다. * 여러 개의 변수들을 관리하는 도구 - Array - Dictionary - Set - Closure : 코딩 블록 1. Array (배열) - 같은 타입의 변수를 담아야 한다. - 순서(Index)가 존재한다. - 순서가 있는 아이템, 아이템 순서를 알면 유용할 때 사용 # let : 변경하지 않는 변수를 선언할 때 사용 배열 변수로 사용 시, append/remove 불가능 # var : 변경이 가능한 변수. 배열 변수로 사용 가능 2020. 7. 26.
[8일차] Functional 고급 기능 * Functional 함수 중간 과제 (실습) - 총 3문제 - 1. 성, 이름을 받아서 fullName을 출력하는 함수 2. 1번에서 만든 함수인데, 파라미터 이름을 제거하고 fullName을 출력하는 함수 3. 성, 이름을 받아서 fullName을 return 하는 함수 온라인 학습할 때는, 반드시 중간에 제시하는 문제를 Pause(일시정지) 버튼을 이용해서 스스로 생각해서 코드를 구현하는 시간을 가져야 한다. ▹ 함수를 한마디로 정의한다면? : 함수는 자판기다. - 다양한 함수의 형태 (1) input만 있는 경우 (2) output만 있는 경우 (3) input, output 둘 다 있는 경우 (4) input, output 없이 내부 기능만 수행하는 경우 * 함수 형태 (전체적인 틀) func.. 2020. 7. 24.
[6일차] Flow Control * Flow Control : if~else, switch, for, while 등의 코드 상의 흐름을 조절하는 코드 블럭 * While : 조건 -> 코드 수행 * Repeat : 코드 수행 -> 조건 * 반복문 내에서 사용되지 않는 변수는 '_' (언더스코어)를 추가해서 처리 * for ~ loop range(범위 지정)를 이용하여 반복할 숫자의 범위를 표현 2020. 7. 22.