| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- Clean Code
- ios
- 리펙토링
- uitableview
- Refactoring
- SWIFT
- combine
- 리팩토링
- 애니메이션
- 클린 코드
- Observable
- Protocol
- rxswift
- scrollview
- UITextView
- Human interface guide
- Xcode
- swift documentation
- clean architecture
- tableView
- 스위프트
- ribs
- swiftUI
- map
- uiscrollview
- collectionview
- RxCocoa
- UICollectionView
- HIG
- MVVM
- Today
- Total
목록분류 전체보기 (1687)
김종권의 iOS 앱 개발 알아가기
1. CocoaPods 이란? - "코코아 프로젝트"에 대한 의존성 패키지를 관리 도구 Cocoa : 코코아 개발 환경 pod : 라이브러리를 의미 -> CocoaPods : 코코아 개발 환경에서의 라이브러리들 *CocoaPods이 없다면? github에 있는 라이브러리들은 자동 업데이트가 이루어지지 않기 때문에 버전관리가 힘듦 2. 사용하기 ( 코코아팟으로 Alamofire프레임워크 설치하기) 1) 코코아 팟 설치 (terminal창에서 실행) 2) 코코아팟을 적용할 프로젝트 path복사 - CocoaPods를 설치할 프로젝트에서, 프로젝트를 클릭한 후 Full Path복사 3) terminal 창에서 cd로 해당 프로젝트 폴더로 이동 4) podfile과 pod전용 프로젝트를 생성 후 framewor..
* 통신은 주로 Alamofire프레임워크를 사용하지만, 기본기를 위해서 Foundation 프레임워크로 구현 해보기 1. ATS설정과 API문서 1) HTTP통신인 경우 ATS(App Transport Security)설정 - 허용되는 사이트를 설정 App Transport Security Settings 추가 -> 하위 탭에서 Allow Arbitrary Loads 추가 -> YES로 변경 - 특정 사이트만 허용하는 방법 (1)App Transport Security Settings -> Exception Domains 하위 항목에 아이템 생성 후 Dictionary로 설정 (2)New Item이라고 있던 곳을 "www"나 서브 도메인 제외하고 주소를 입력 (3) 하위 항목에 다음 세 가지 아이템 추..
1. HTTP(HyperText Transfer Protocol) 구조 1) 종류 - 라인 : 응답/요청 여부, 메시지 전송 방식, 상태 정보 - 헤더 : 메시지 본문에 대한 메타 정보 - 바디 : 보내고자 하는 메시지(데이터) *실제 HTTP메시지 첫 줄 : 무조건 : 라인 (GET방식인 경우는 바디 포함) 이후 ~ '\n'까지 : 헤더 마지막줄 : 바디 (GET방식인 경우는 존재 x) * GET방식은 라인에 데이터 삽입(~1024Byte) '?'를 기준으로 오른쪽 내용이 "query string"이며 세미콜론으로 구별 여백이 있으면 이어서 라인 정보(예시 ... HTTP/1.1) 2) 라인 * 전송방식 웹 브라우저에서는 GET(요청), POST(ID없이 리소스 생성, 수정)만 존재하지만, REST에서..
1. Date객체 초기화 1) init() 현재 시간 let d = Date() print(d) // print : 2020-05-23 08:57:33 +0000 2) init(timeIntervalSinceNow:) * timeIntervalSinceNow은 Double형 현재 시각으로 부터 입력한 초 이후의 시점 let tomorrow = Date(timeIntervalSinceNow:60*60*24) // 다음날 print(tomorrow) // print : 2020-05-23 21:00:18 +0000 3) init(timeInterval:since:) 다른 Date()객체로부터 입력한 초 이후의 시점 2. DateFormatter - 날짜 및 시간에 대한 포멧화 하는 객체 1) 객체 생성 le..
1. 정의 1) 객체지향언어 : - 데이터를 객체로 취급하고 처리 요청을 받은 객체가 자기 안에 있는 기능을 가지고 처리 - 추상화, 캡슐화, 상속, 다형성 - 데이터를 기록하는 것을 강조 2) 함수형언어 : - 최소한의 기능 : 데이터를 함수형(인풋과 아웃풋)으로 표현 - 불변성 목적 : 변경 가능한 상태를 최대한 제거 하려는 성격(같은 입력에는 항상 같은 출력) 즉 객체지향은 상태를 기록하여 바꾸는 것을 강조, 함수형은 상태를 기록하지 않고 함수의 응용을 강조(대부분 람다 함수를 이용) 2. 비교 1) 함수형 언어는 side effet를 제거 (* side effect : 반환값 이외에 호출된 함수 밖에서 관찰할 수 있는 애플리케이션 상태 변화.. 콘솔로그 띄우기) 즉, 프로그램을 더욱 쉽게 이해하고..
1. iOS12이하 버전 : App하나는 오로지 각각 하나의 Process와 UI를 유지 (AppDelegate에서 모두 관여) - Process Lifecycle : Process 상태 - UI Lifecycle : active, inactive, background, foreground 상태 관여 2. iOS13이상 버전 : App하나에 여러 UI 인스턴스 존재 가능 (App Delegate가 Session을 관리하므로) _ : App Delegate _ : Scene Delegate call stack : 앱 클릭 ->didFinishLaunchingWithOptions->configurationForSession->willConnectToSession (아직 화면에는 앱이 안뜬 상태) -> sce..
*사이드바의 구현 원리 : 사이드 바로 해당되는 Rear View가 앞에 나와있는 Front VIew밑에 존재, 사이드 바를 부르면 Front View를 오른쪽으로 이동시키면 밑에 있던 Rear View가 등장(눈으로 볼 땐 사이드 바가 나오는 것으로 보임) - 내부적으로 self.view.bringSubviewToFront(View) 이게 호출하여 구현 *SWRevealViewController라이브러리를 이용하여 사이드바 구현(가장 많이 사용하는 방법) 1. 라이브러리 및 기본 세팅 1) 라이브러리 다운 John-Lluch/SWRevealViewController A UIViewController subclass for presenting side view controllers inspired on ..
* 형태 - UIControl을 상속 받아서, 그곳에 UIButton 두 개와, UILabel하나 추가 - (UIControl과 UIView 둘 중 하나를 상속 받아도 가능하지만 UIControl을 상속받으면 해당 객체에서 이벤트 발생하라고 명시해 줄 수 있음 , self.sendActions(for:)이용 UIControl과 UIView클래스의 상속구조 [iOS - UI Custom] 1. UI 커스터마이징의 원리 1. 기본 용어 1) View Hierachy - view들 사이의 계층 관계가 존재 - Superview : 뷰의 계층 구조상 다른 뷰를 포함(가장 뒤에 있는 뷰) - Subview : Superview에 포함된 뷰(가장 앞에 있는 뷰) 2) 뷰의 구성 - Ro.. ios-developme..
