본문 바로가기

패캠강의8

[28일차] SearchBar와 키보드 숨김 처리 넷플릭스 앱과 비슷한 디자인의 앱을 만들어본다. 콘텐츠 플랫폼 앱에서 대부분 존재하는 검색바(SearchBar)를 추가해보고 키보드 관련 동작을 테스트해보고자 한다. 1. 검색 탭으로 이동 + 상단에 검색창(SearchBar)을 추가한다. 우리들이 보통 사용하는 앱에서는 키워드를 입력 후, [검색] 버튼을 누르면 키보드 화면이 내려가고 검색결과 화면이 나오는 게 일반적이다. 하지만, 이러한 처리가 자동으로 되지는 않는다. 키보드를 내려주는 별도의 처리가 필요하다. 2. 입력한 검색어를 출력하는 함수 생성 + [검색] 버튼 이후 '키보드' 자동 내리기 처리 SearchBar, TextField .. 등등 텍스트를 기재하는 여러 UI 요소에서는 resignFirstResponder() 를 자주 사용하게 될 .. 2020. 8. 22.
[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.
[13일차] Structure(구조)와 Class 일반적으로 Swift에서 객체 구조는 아래와 같다. Object = Data + Method * Structure vs Class Structure Class Value Types Reference Types Copy Share Stack Heap - Structure : 관계 있는 데이터를 모아서 표현할 때 사용 - Class : 데이터를 모아서 표현하되, 같은 데이터를 참조할 때 사용 왜 Structure 구조를 사용해야 할까? 위와 같이 첫번째 줄처럼 변수를 일렬로 나열하는 것보다, 두번째 줄처럼 사람이 이해하기 쉬운 구조로 나누어서 변수를 표현해주는 것이 가독성이 좋으며 협업이나 리펙토링 과정에서도 코드파악에 용이하다. 아래는 Structure(구조) 형식을 이용하여 "제일 가까운 위치의 배달 가.. 2020. 7. 30.
[2일차] 첫 앱 만들기 (alert 띄우기) 개발 공부를 처음 시작하면 첫 예제로 하는 "Hellow World" 알림창 띄우기 작업을 진행했다. 아직 XCode 사용법이 미숙해서 ViewController를 조작법이 익숙하지 않지만, 이 부분은 개발을 진행하다 보면 익숙해질 것이다. * Xcode 개발과정에서 겪을 수 있는 오류 1. Warning (노란색) : 변수형태 잘못 선언이나 권장사항을 알려주는 경우 2. Error (빨간색) : Build도 안되고, 앱이 도중에 Crash 나는 현상 발생 위의 에러는 뷰컨트롤러 내에 기존에 선언한 hello() 메서드명을 다른 메서드명으로 변경하면서 기존에 선언한 메소드명(hello)이 존재하지 않는다는 에러 문장이다. 메서드명을 변경(showAlert)했다면 뷰 컨트롤러에 변경된 name으로 재할당해.. 2020. 7. 15.