From 7bd928fd60c1f17624654a02e46e4c7968a8b073 Mon Sep 17 00:00:00 2001 From: Kim Jung Date: Sat, 14 Oct 2017 12:02:23 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=EC=99=80=20bullet=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile-ios/level4.md | 45 +++++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 17 deletions(-) diff --git a/mobile-ios/level4.md b/mobile-ios/level4.md index c958ae3..c56919e 100644 --- a/mobile-ios/level4.md +++ b/mobile-ios/level4.md @@ -39,15 +39,18 @@ let jsonString = """ - `func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell` 델리게이트 메서드를 구현하세요 - `cell.titleLabel` 에는 title 을 표시하고, `cell.detailLabel` 에는 date를 표시하세요 - `cell.backgroundImage` 에 이미지를 center로 alignment 해서 표시하세요. + ![Tableview](http://public.codesquad.kr/jk/tableView-cell.png) ### 요구사항4. Photo ViewController 구현하기 - TableView에서 row를 select 하면 다음 화면을 보여주세요. - Image는 원래 비율(aspect fit)로 보여주세요. + ![PhotoViewController](http://public.codesquad.kr/jk/photo-ViewController.png) ### 요구사항5. TableView Header - 날짜순으로 정렬한 상태의 년도별로 Section을 나눠서 표시하고 Header에 년도를 표시하세요. + ![TableviewHeader](http://public.codesquad.kr/jk/tableView-header.png) ## 셀프 체크리스트 @@ -55,30 +58,38 @@ let jsonString = """ - 아래 항목에 대해 자신의 경험을 체크하고, 자신의 점수를 각 10점만점 기준으로 적고, 그 이유를 주관식으로 문장으로 쓰세요. [항목#1] 스위프트(또는 Objective-C) 언어로 여러 가지 상황별 주어진 문제를 해결하는 경험 -1-1 Immutable 객체와 Mutable 객체의 차이를 이해하고 설명할 수 있다. -1-2 특정 디렉터리에 있는 파일 목록을 탐색하는 알고리듬을 구현할 수 있다. -1-3 C 혹은 Objective-C 데이터 타입을 스위프트 구조체로 바꾸거나 클래스로 표현하여 Collection 객체에 담아 저장할 수 있다. -1-4 주어진 상황에 맞게 Array나 Dictionary에 담겨있는 데이터를 탐색하고 정렬할 수 있다. (JSON 처리 등) -1-5 자동/수동 메모리 관리 방법을 구분하고 차이점을 설명할 수 있다. + +- 1-1 Immutable 객체와 Mutable 객체의 차이를 이해하고 설명할 수 있다. +- 1-2 특정 디렉터리에 있는 파일 목록을 탐색하는 알고리듬을 구현할 수 있다. +- 1-3 C 혹은 Objective-C 데이터 타입을 스위프트 구조체로 바꾸거나 클래스로 표현하여 Collection 객체에 담아 저장할 수 있다. +- 1-4 주어진 상황에 맞게 Array나 Dictionary에 담겨있는 데이터를 탐색하고 정렬할 수 있다. (JSON 처리 등) +- 1-5 자동/수동 메모리 관리 방법을 구분하고 차이점을 설명할 수 있다. + 자기 의견: [항목#2] 인터페이스 디자인 가이드(HIG)를 기초로 기본 UI Control 동작을 구현하는 경험 -2-1 스토리보드 상에 ViewController 단위로 화면을 디자인하고 Segue로 전환할 수 있다. -2-2 UITableView 에 Custom Cell 형태로 디자인하고 DataSource Delegate 메서드를 구현할 수 있다. -2-3 메모리 효율을 위해 화면에 보이지 않는 객체를 해제하는 LRU 형태 캐시를 구현할 수 있다. -2-4 MVC 패턴을 이해하고 각각 역할에 맞는 클래스를 구현하고 Notification을 보내는 구조를 구현할 수 있다. + +- 2-1 스토리보드 상에 ViewController 단위로 화면을 디자인하고 Segue로 전환할 수 있다. +- 2-2 UITableView 에 Custom Cell 형태로 디자인하고 DataSource Delegate 메서드를 구현할 수 있다. +- 2-3 메모리 효율을 위해 화면에 보이지 않는 객체를 해제하는 LRU 형태 캐시를 구현할 수 있다. +- 2-4 MVC 패턴을 이해하고 각각 역할에 맞는 클래스를 구현하고 Notification을 보내는 구조를 구현할 수 있다. + 자기 의견: [항목#3] iOS 앱 개발을 위해 프레임워크 API를 활용하는 경험 -3-1 네트워크 처리 및 Async 방식 이벤트 처리 기술을 적용할 수 있다. -3-2 Core Graphics 방식으로 커스텀 그래프 컨트롤을 만들 수 있다. -3-3 Transition 형태의 뷰 애니메이션을 직접 만들 수 있다. -3-4 서버와 통신하기 위한 HTTP 또는 TCP 방식의 통신 모듈을 만들 수 있다. -3-5 Block과 GCD (또는 Operation Queue)를 이용한 비동기 방식으로 작업 스케줄링을 구현 수 있다. + +- 3-1 네트워크 처리 및 Async 방식 이벤트 처리 기술을 적용할 수 있다. +- 3-2 Core Graphics 방식으로 커스텀 그래프 컨트롤을 만들 수 있다. +- 3-3 Transition 형태의 뷰 애니메이션을 직접 만들 수 있다. +- 3-4 서버와 통신하기 위한 HTTP 또는 TCP 방식의 통신 모듈을 만들 수 있다. +- 3-5 Block과 GCD (또는 Operation Queue)를 이용한 비동기 방식으로 작업 스케줄링을 구현 수 있다. + 자기 의견: [항목#4] iOS 개발 환경을 이용해서 프로젝트를 관리하고 프로파일링하는 경험 -4-1 Xcode 도구를 이용해 iOS 프로젝트를 관리하고 실제 기기에 설치/배포할 수 있다. -4-2 Instruments 도구를 이용해서 앱 프로파일링 분석하고, 코드를 개선할 수 있다. -4-3 Xcode로 만든 프로젝트를 소스관리 저장소에서 관리할 수 있다. + +- 4-1 Xcode 도구를 이용해 iOS 프로젝트를 관리하고 실제 기기에 설치/배포할 수 있다. +- 4-2 Instruments 도구를 이용해서 앱 프로파일링 분석하고, 코드를 개선할 수 있다. +- 4-3 Xcode로 만든 프로젝트를 소스관리 저장소에서 관리할 수 있다. + 자기 의견: \ No newline at end of file