일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이니셜라이저
- 런치 스크린
- 레이아웃 사이클
- viewDidAppear
- 아이폰
- viewDidDisappear
- viewWillDisappear
- loadView
- git
- without Storyboard
- SWIFT
- IOS
- 세븐모바일
- exit()
- indicator style
- swift haptic
- 스위프트
- 뷰컨
- scroll indicator
- 스크롤 인디케이터
- 클로저
- FeedbackGenerator
- do try catch
- graceful termination
- 깃헙
- refreshControl
- 스토리보드
- 알뜰폰
- 우아한 앱종료
- viewcontroller
- Today
- Total
목록iOS & Swift (15)
예거's Bicycle for the mind
스위프트의 사용자 정의 타입으로는, 구조체(struct)와 클래스(class), 열거형(enum) 등이 있다. 이번 글에서는 구조체와 클래스의 공통점과 차이점에 대해 정리하고, 어떤 기준으로 둘 중에 하나를 선택해야 하는지 정리해보자! 구조체와 클래스의 공통점과 차이점 - 타입/인스턴스 프로퍼티를 가질 수 있다. - 타입/인스턴스 메서드를 가질 수 있다. - 서브스크립트 문법(subscript syntax)을 사용하여 값에 접근할 수 있다. - 초기화 상태(initial state)를 만들기 위한 이니셜라이저를 정의할 수 있다. - 기능적 확장이 가능하다. - 프로토콜을 준수할 수 있다. 여기서, 클래스는 구조체가 가지고 있지 않은 별도의 능력이 있다. - 클래스의 단일 상속이 가능하다. (구조체는 상속..
네임스페이스(NameSpace) 란? 네임스페이스는 연관된 값들을 한 공간에 이름을 지어 모아둔 공간을 말한다. 쉽게 예를 들면, 우리가 '서랍'에 물건을 보관할 때, 그 안에 뭐가 들었는지 '라벨링'하는 것과 비슷하다. 유사한 물건들을 모아둠으로써, 관리(유지보수)가 쉬워지고 재사용도 편리해진다. 네임스페이스를 통해서만 문자열에 접근할 수 있게 만드는 캡슐화(Encapsulation) 방법이기도 하다. 코딩을 할 때도 이런 네임스페이스를 잘 만들어두면, 하드코딩도 방지하고 코드 가독성도 좋아진다. 이번 글에서는, 출력을 위해 사용할 문자열(String)들을 모아두는 네임스페이스를 만든다고 가정해보자. 네임스페이스를 만드는 방법을 총 6가지로 정리해보겠다. 사실, 6가지 보다 더 다양한 방법으로 네임스페..
'456억 원' 이라는 큰 숫자를 Int 타입으로 써보자. // 큰 숫자는 가독성(Readability)이 떨어진다. var bigNumber: Int = 45600000000 print(bigNumber - 10000) // 45599990000 이렇게 매우 큰 숫자는, 코드에서 가독성(Readability)이 떨어진다. 읽기가 불편하다. 시간이 조금 더 걸린다. 코드가 아니라, 일반적인 환경에서는 우린 콤마(,)를 활용해 숫자의 자릿수 구분을 할 수 있다. 456억 원은 45,600,000,000 원으로 표시할 수 있다. 하지만 코드에서는 숫자 사이에 콤마(,)를 넣을 수 없다. // 숫자 사이에 콤마(,)를 넣을 순 없다. var bigNumber: Int = 45,600,000,000 // err..
스위프트엔 고차함수(Higer-order function)라는 게 있다. 엥? 고차함수?? 고등학교 때 배웠던 2차, 3차, 4차 함수 처럼, 차수가 2 이상인 함수를 말하는 건가 싶었다. 고차함수가 왜 갑자기 스위프트에 등장하나 싶었는데, 그때의 그 그래프나 방정식을 풀기 위해서가 아니었다. 위 이미지의 고차함수들을 스위프트의 용어를 사용해서 나름대로 해석해보겠다. 먼저, y 는 리턴값으로 이해할 수 있다. 어떤 계산을 거쳐서, 최종적으로 나오는 값이니까. 그리고 x 는 파라미터로 볼 수 있다. 어떤 값을 집어넣느냐에 따라, 리턴값에 영향을 주니까. a, b, c 등의 '계수'는 constant, 즉 상수로 볼 수 있다. 스위프트에서 let 으로 선언하는 값들 말이다. 변하지 않는 숫자라고 가정한다. ..
스위프트 Array(배열)은 순서가 있는 Ordered Collection Type 이다. Array를 2중으로 만들어서 정렬(sort)을 공부해보자. 먼저, sort() 와 sorted() 정렬 메소드의 차이를 알아야 한다. sort 는 원본값에 영향을 주고 리턴값이 없다. sorted 는 원본값에 영향을 주지 않고, 새로운 리턴값을 반환한다. 즉 let 으로 선언한 배열이 있다면, sort 메소드를 사용할 수 없다. let 으로 선언한 배열은 'immutable value' 가 된다. 즉, 변경이 불가능한 값! 따라서 원본을 건드리는 sort() 메소드를 쓸 수 없다. 만약 원본이 변경되길 원하지 않는 배열이 있다면, let 으로 선언한 뒤 sorted() 메소드로 새로운 값을 만들어 쓰는 게 좋다...
스위프트의 Dictionary 는 Key와 Value를 pair(짝꿍)으로 묶어서 관리할 수 있는 Collection 타입이다. Array(배열)와 다르게 순서가 없다. (Unordered Collection) // 실험용 딕셔너리 생성 var items = [1: "운동화", 2: "티셔츠", 3: "목걸이", 4: ""] // 키값을 통해 딕셔너리 안의 value를 꺼내올 수 있다. items[1] // Optional("운동화") items[4] // Optional("") // 만약 딕셔너리에 존재하지 않는 키값이 입력되면, nil이 반환된다. item[0] // nil 딕셔너리에서 키값(key)을 통해 value를 꺼내오면, 그 반환값은 기본적으로 옵셔널(Optional)이 된다. 딕셔너리에 존..
컴퓨터 공학을 전공하지 않은 사람이 한국에서 개발자가 되려면 어떻게 해야 할까? 어떤 개발자가 되고 싶은지, 그리고 본인의 주머니 사정에 따라서 여러 가지 방법이 존재한다. JAVA 또는 웹개발 같은 경우엔 부트캠프도 많고 요즘에는 K-Digital Training 이라고 해서, 고용노동부에서 교육비를 전액 지원해주는 프로그램도 많다. 웹개발자가 되기 위해선 사실상 '어디서 교육받을지'만 결정하면 된다. 교육비를 낼 필요도 없어지고 있다. 그럼 만약 웹개발이 아닌, 모바일 개발자가 되고 싶다면? 그중에서도 아이폰에 들어가는 앱을 개발하는 iOS 개발자가 되고 싶다면? (iOS란, 그 유명한 애플의 모바일 운영체제를 말한다. 즉 iOS 개발자란, 아이폰에서 쓸 수 있는 애플리케이션을 만드는 개발자다.) 위..