패스트캠퍼스24 [32일차] Animation은 왜 사용하는 것인가? 사용자의 앱 서비스 이용과정에서 보다 재미있게 느껴지도록 하기 위해서 'Animation' 효과를 사용하기도 한다. 그렇다면 'Animation(애니메이션)' 이라는 것은 무엇일까? 한마디로 표현하자면, "시간에 따라 뷰의 상태가 바뀌는 것"이다. Animation은 3가지만 기억하면 된다. Animation = 시작, 끝, 시간(주기) 대표적으로 위와 같이 단순히 ImageView, Label 들이 Transition(회전), usingSpringWithDamping(스프링) 효과를 사용하여 역동적으로 보여질 수도 있다. override func viewDidLoad() { super.viewDidLoad() updateUI() prepareAnimation() } override func viewDi.. 2020. 9. 15. [28일차] SearchBar와 키보드 숨김 처리 넷플릭스 앱과 비슷한 디자인의 앱을 만들어본다. 콘텐츠 플랫폼 앱에서 대부분 존재하는 검색바(SearchBar)를 추가해보고 키보드 관련 동작을 테스트해보고자 한다. 1. 검색 탭으로 이동 + 상단에 검색창(SearchBar)을 추가한다. 우리들이 보통 사용하는 앱에서는 키워드를 입력 후, [검색] 버튼을 누르면 키보드 화면이 내려가고 검색결과 화면이 나오는 게 일반적이다. 하지만, 이러한 처리가 자동으로 되지는 않는다. 키보드를 내려주는 별도의 처리가 필요하다. 2. 입력한 검색어를 출력하는 함수 생성 + [검색] 버튼 이후 '키보드' 자동 내리기 처리 SearchBar, TextField .. 등등 텍스트를 기재하는 여러 UI 요소에서는 resignFirstResponder() 를 자주 사용하게 될 .. 2020. 8. 22. [27일차] Codable 이란? Swift4에서 JSON 데이터를 손쉽게 파싱이 가능한 기술이 나왔다고 한다. 그 기술이 바로 'Codable'이다. Swift 공식 홈페이지에서 말하는 정의는 다음과 같다. "A type that can convert itself into and out of an external representation." 자신을 변환하거나 외부표현(external representation)으로 변환할 수 있는 타입입니다. 여기서 말하는 Decodable, Encodable 이란 무엇일까요? - Decodable : 자신을 외부표현(external representation)에서 디코딩 할 수 있는 타입 - Encodable : 자신을 외부표현(external representation)으로 인코딩 할 수 있는 타.. 2020. 8. 19. [26일차] URLSession (꼭 알아야 할 개념) 앱이 서버에서 애플리케이션 데이터를 검색하거나, 소셜미디어 상태를 업데이트하거나 원격 저장소 파일을 디스크로 다운로드하는 등, 모바일 애플리케이션의 중심에 있는 HTTP 네트워크 요청은 마법을 일으킵니다. 네트워크 요청에 대한 수많은 요구사항을 지원하기 위해 애플은 HTTP를 통해 콘텐츠를 다운로드, 업로드하기 위한 완성된 네트워킹 API인 URLSession을 제공 합니다. URLSession은 HTTP 요청의 송신과 수신을 담당하는 핵심 객체입니다. 다음 3가지 타입으로 제공되는 URLSessionConfiguration을 사용해서 생성합니다. * URLSessionConfiguration - .default: 디스크 지속(disk-persisted) 전역 캐시, 자격 증명(credential)과 쿠.. 2020. 8. 16. [25일차] Concurrency 동시성 (sync/Async) * Concurrenty (동시성) - 사용자 인터랙션 처리 (Main Thread에서 처리) - 네트워킹 - 백그라운드에서 파일 다운로드 - 파일 저장하고 읽기 컴퓨터에서는 여러 개의 스레드가 동시에 수행되면서 백그라운드에서 수많은 작업들이 이루어진다. * GCD (Grand Centeral Dispatch) : 해야 할 일들을 GCD로 전달해주면 시스템에서 안전하게 수행될 수 있도록 처리 (Queue FIFO 구조로 처리) * DispatchQueue 1) Main Queue : 메인 스레드에서 작동하는 큐 ex) DispatchQueue.main.async { ... } 2) Global Queue : 시스템에 의해 관리되는 큐 # QoS (Quality of Service) : 큐의 우선순위를 결.. 2020. 8. 15. [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. [20일차] TodoList 앱 만들기 - 1 최초로 만드는 iOS 앱으로 TodoList(할일) 앱을 만들어보고자 한다. 우선 만들기 전에, 강의에서 필요로 하는 개념에 대한 정리를 해보고자 한다. * 데이터 저장 : NSCoding, Property List, Serialization, Core Data, Realm - 데이터가 많을 때 : Core Data, Realm 권장 - Codable(Swift 4) : JSON 데이터를 효율적으로 다룰 때 사용 * Tab Controller 추가 방법 : StroyBorard에서 View 선택 및 Editor -> Embed in -> Tab Controller 선택 * 할일을 추가/수정/삭제하는 클래스(TodoManager)에 대한 함수를 정의해보자. // 여러개의 TodoList 목록을 관리 (To.. 2020. 8. 8. 이전 1 2 3 다음