부스트코스를 수강하면서 배운 내용과 추가로 알고 싶은 내용을 정리하기로 했다 이번에 정리한 부분은 MVC에 대한 내용이다 내용을 정리하는데 많은 시간을 소요하지 않기 위해 몇몇 부분만 정리 하기로 했다 모델 객체 (Model Objects) 데이터를 캡슐화, 해당 데이터를 조작하고 처리하는 로직과 계산 정의 사용자가 편집할 수 있는 뷰객체에 명시적으로 연결되어 있으면 안됨 즉, 사용자 인터페이스나 표시 문제와 관련이 있어서는 안됨 예) 주소록의 연락처 잘 설계된 모델 클래스 Core Data technology를 사용하는 경우 NSManagerdObject 서브 클래스를 많이 사용 Objective-C 언어를 사용하는 경우 NSObject의 서브클래스 (스위프트를 사용하면 특별한 경우 아니면 사용X) 값..
부스트코스를 수강하면서 배운 내용과 추가로 알고 싶은 내용을 정리하기로 했다 이번에 정리한 부분은 디자인패턴에 대한 내용이다 디자인패턴 GoF : "특정한 상황에서 일반적 설계문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스에 대한 설명" 라만(C. Larman) : "숙력된 객체지향 개발자 및 기타 소프트웨어 개발자는 소프트웨어 개발의 가이드라인이 되는 일반적인 원칙들과 관용적인 해결책들의 레퍼토리(repertorire)를 구축한다. 패턴은 이러한 원칙들과 관용적 해결책들이 문제와 해결책을 기술하는 구조적인 형태로 쳬계화되고 명명된 것이다." 소프트웨어를 설계할 때 특정 상황에서 자주 사용하는 패턴을 정형화한 것, 좋은 소프트웨어 설계를 위한 개발자들의 경험적 산물 디자인 패턴의 분류 목적 ..
부스트코스를 수강하면서 배운 내용과 추가로 알고 싶은 내용을 정리하기로 했다 오늘 정리한 부분은 UIKit에서 사용할 뷰와 관련한 내용이다 뷰 계층(View hierarchy) 뷰 계층구조와 서브뷰 관리 뷰는 자신의 콘텐츠를 보여주고, 다른 뷰를 위한 컨테이너의 역할을 함 뷰가 다른 뷰를 포함할때 자식뷰를 서브뷰(subview) 부모뷰를 슈퍼뷰(superview)라고 함 서뷰뷰가 불투명하면 서브뷰는 슈퍼뷰를 가림 서브뷰가 반투명하면 슈퍼뷰의 색상과 서브뷰의 색상이 섞여 보임 서브뷰가 여러개이고 겹치게 되면 늦게 추가된 서브뷰가 위로 올라옴 여러 서브뷰가 겹치고 반투명 하다면 색상은 전부 섞여 보임 ETC : Creating and Managing a View Hierarchy 뷰 계층의 생성과 관리 뷰는..
부스트코스(https://www.boostcourse.org/mo326) 를 수강하면서 배운 내용과 추가로 알고 싶은 내용을 정리하기로 했다. 오늘 정리한 부분은 음원 재생기 애플리케이션/오토 레이아웃/오토 레이아웃이란?과 음원 재생기 애플리케이션/오토 레이아웃/오토 레이아웃 구현하기(코드)를 수강하고 작성한 글이다 오토레이아웃은 앱을 만들때 정말로 중요하다고 생각한다 오토레이아웃 오토레이아웃( Auto Layout ) : 뷰의 제약 사항을 바탕으로 뷰 체계 내의 모든 뷰의 크기와 위치를 동적으로 계산 오토레이아웃의 필요성 : 인터페이스의 절대적인 좌표가 아닌 동적으로 상대적인 좌표가 필요한 경우에 유용 외부변경(External Changes) 슈퍼뷰의 크기나 모양이 변경될때 발생 사용자가 아이패드의 분..
부스트코스(https://www.boostcourse.org/mo326)를 수강하면서 추가적으로 알고 싶은 내용을 정리하기로 했다. 처음으로 정리한 내용은 앱시닝(App Thining)과 에셋 카탈로그(Asset Catalog)에 관한 내용이다. 앱시닝(App Thining) 앱 스토어에서 애플리케이션을 다운 받을 때 디바이스의 특성에 맞게 설치되도록 하는 설치 최적화 기술 최소한의 용량과 빠른 다운로드를 제공 슬라이싱(slicing) 앱이 지원하는 여러 디바이스/운영체제에 대해 각각의 애플리케이션 번들을 생성하고 설치하려는 디바이스에 적합한 번들을 전달하는 기술 앱 스토어에서 디바이스 특성에 따라 다양한 버전의 조각을 생성하고 사용자에 맞는 조각을 다운받게 함 Assets Catalog 사용 비트코드(..
졸업작품을 진행하면서 파이어베이스의 스토리지를 사용하기로 해서 좀 더 사용법을 익히기로 하였다 사용법을 익히기 위해 토이프로젝트를 하나 진행하려고 한다 프로젝트의 내용은 스토리지에 이미지를 20장 정도 넣어두고 커스텀테이블뷰, 스토리지, NSCache, UserDefault 와 비동기 처리를 사용해 볼것이다 순서는 스토리지 -> 커스텀테이블뷰 -> NSCache -> UserDefault -> 비동기처리 가 되지않을까 싶다 pod 'Firebase/Storage' pod파일에 위의 Storage를 추가해준다 그런다음엔 AppDelegate에 아래의 configure()를 작성 물론 앞으로 작성할 소스파일에는 Firebase 헤더가 전부 들어간다 func application(_ application: U..
처음에 배울때부터 코드로 배우기도 했고 오래된(?) 맥북이다 보니 스토리보드를 쓰는게 불편해서 코드로만 작업을 해왔다 그러다 보니 필요한 코드를 평소 메모장에 적어두었는데 그것 보단 블로그에 올려두는게 좋을거 같아 올려두기로 했다 func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } self.window = UIWindow(frame: UIScreen.main.bounds) self.window?.windowScene = ..
옵셔널이란? 값이 있을 수도, 없을 수도 있음을 나타내는 표현 변수 또는 상수의 값이 nil 일 수도 있다는 것을 의미 var name1: Optional //명확한 옵셔널 표현 var name2: String? //축약한 옵셔널 표현 옵셔널추출 강제추출(forced unwrapping) 간단하지만 런타임 오류가 발생할 수 있기 때문에 가장 위험한 방법 옵셔널 값 뒤에 !를 붙여주면 강제추출 됨 값이 nil이 안 들어간다고 확신을 할 경우 사용할 수 있지만 사용하지 않는 것이 공부하는데 도움이 될 것 같다 var name: String? = "Name" name = nil print(name!) //런타임 에러 발생 옵셔널 바인딩 옵셔널에 값이 있는지 확인할 때 사용 옵셔널에 값이 있다면 옵셔널에서 추출..
- Total
- Today
- Yesterday
- HIG
- UIView
- 디자인패턴
- 온라인저지
- 분할정복
- DP
- Human Interface Guideline
- Firebase
- apple
- 싱글톤
- 백준
- 알고리즘
- 부스트코스
- storage
- Swift
- ios
- Human Interface Guidelines
- 오토레이아웃
- MVC
- HumanInterfaceGuidelines
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |