[iOS] App Development 57

[iOS] 기본 개념 정리 #5 : 네비게이션 스타일 Segue, 패키지매니저 CocoaPods, Podfile

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. 테이블 뷰와 세그웨이 테이블뷰 메일 앱, 문자메시지, vertically stacked cells 형태면 테이블뷰이다. 버튼 + 컨트롤 + 목적지 뷰컨에 놓으면 세그웨이 가능 모달로 세그웨이 하는게 아니라 네비게이션으로 하는 법? first view controller 즉 루트 뷰컨으로 누르고, 메뉴에서 에디터, 임베디드, 네비게이션 컨트롤러를 누르면 세그웨이가 네비게이션이 됨 Navigation은 팬케익 stack과 같음 register이 되면 챗으로 감 login이 되면 챗으로 감 register와 login이 성공해야 다음으로 세그웨이가된다. 로그인 -> 챗 / 회원가입 => 챗 : 둘다 세그웨이 identifier가 필..

[iOS] 기본 개념 정리 #4 : DarkMode, UITextFieldDelegate, Protocol, Delegate Design Pattern

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. DarkMode SF Symbols iOS 13 부터 다크모드가 사용가능하다 심볼이나 텍스트를 시스템 컬러로 사용하면 다크모드 사용이 가능하다. 만약 커스텀 컬러를 원한다면? Assets 에서 Color Set을 추가하고 라이트모드, 다크모드일 시에 컬러를 커스텀으로 설정가능 커스텀 컬러는 색상 선택 시 팔레트에 저장을 해야한다. vector이미지를 사용시 Assests에서 이미지 클릭 후 인스펙터에서 설정해줘야할 것 벡터이미지 사용시(PDF등) Preserve Vector 체크해주고 인스펙터에서 single scale로 설정 Appearance에서 Any, Light, Dark로 바꾸면 다크모드 라이트모드도 개별로 설정가능 ..

[iOS] 기본 개념 정리 #3 : Segues, Multi-Screens, MVC 적용, Adopting MVC Pattern, Optional Binding, Optional Chaining

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. Segues and Navigation for Multi-Screen Apps fie - new file - cocoa touch class 코코아터치 UIKit을 포함한 다른 라이브러리가 포함된 프레임워크 ResultViewController - UIViewController - Controller폴더에 생성 스토리보드 뷰컨의 인스펙터에서 ResultViewController 연결 그리고 해당 뷰컨에 IBOutlet / IBAction 만들기 스토리보드에서 뷰컨을 선택후 컨트롤 누르고 present modally로 목적지 뷰컨에 놓고 세그웨이 설정 가능함 transition타입 같은 것은 인스펙터에서 조절가능 세그의 iden..

[iOS] 기본 개념 정리 #2 : UISlider, Struct VS Class, ViewController

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. UISlider 스토리보드에 있는 UISlider의 Value를 UILabel을 이용해 수치 보여주는 법 예상 우선 IBAction으로 끌어와서 UISlider의 이벤트가 일어날 때마다 UILabel.text에 슬라이더의 value를 대입 시키면 되지않을까? 답 슬라이더 IBAction으로 선언, Event타입, Type은 UISlider로하여 더 정확한 데이터 타입으로 받아올 수 있게 한다. Any는 어떤 데이터타입이든 다 됨 sender는 해당 메소드를 호출하는 caller를 말함. 어떤 버튼 혹은 슬라이더가 불렀는지 func caller를 확인할 수 있음. 아래의 경우 UI슬라이더 이벤트발생시, 그 UISlider자체를 ..

[iOS] 기본 개념 정리 #1 : struct(mutating), IBAction, IBOutlet, MVC, Optional, Parameter

* iOS 개인 프로젝트 시작 전 기본 개념 복귀 차원으로 내용을 정리합니다. 프로젝트 생성, bundle identifier 등, 프로젝트 수정은 어디서 할 수 있는지 ImageView 추가, Asset으로 불러와서 추가하기, 1x, 2x, 3x의 의미 UI요소들 X, Y 배치, 사이즈 조절 AppIcon 사이즈 별로 프로젝트에 적용하기 Structure개념 Town을 예시로 설명 Swift 파일로 Structure파일 생성 -> structure의 명과 파일명은 같도록 그리고 이 structure를 다른 ViewController에서 불러와서 initialize해서 사용하면 됨 타겟에 포함 시켜야함(파일 생성할 때나, 인스펙터에서) 보통 내가만든 건 타겟만 포함시키면 되고, 외부 라이브러리는 impo..

[Swift/iOS] Functions and Return / Typealias / Compound Type

Function Terminology function: isn't part of class or structure free function: it's free because it's not owned by a named type like a structure or a class method: part of class or structure let passingGrade = 50 let chrisGrade = 49 let samGrade = 99 let chrisPassed = chrisGrade >= passingGrade let samPassed = samGrade >= passingGrade //------------------------------------ // default value가 있으면 ..

Sets

dSets Don't store duplicate value Sets aren't ordered Dictionary와 뭐가 다른가? Duplicate Value를 넣어도 Swift가 무시함 constant로 선언하면 아무 요소도 삽입할 수 없음 let someSet: Set remove도 쓸수 있고 실행할 때마다 순서 달라짐 intersection symmetricDifference 를 통해서 교집합 / 다른 부분 / 유니언 모두 구할 수 있음 someSet은 바뀌고 anotherSet은 지나가는건 안바뀜 Discussion If the set already contains one or more elements that are also in other, the existing members are kep..

[iOS/Swifit] Dictionary 사용법

Dictionary A collection whose elements are key-value pairs. Creating and Populating Dictionaries Dictionaries Keys can be any type Keys have no order - key는 중복이 올 수 없음 - unique 여야함 - different keys는 같은 values를 가리킬 수 있다. (Different keys can point to the same value) - all the keys / all the values 는 타입이 각기 타 같아야한다 Arrays Indexes must be Ints Indexes must be sequential Dictionaries Examples var emp..

While Loops / For Loops / Iterating Collections / Nested Loops

While Loops 그냥 while 문은 기존에 컨디션을 체크하고 들어간다. while i < 10 { print(i) i += 1 } 근데 조건을 체크하지 않고 최소 한번은 실행시키고 싶을 때는 Repeat While Loop를 사용하면 된다. 다른 곳에서는 Do while문임 print("ddd") i = 1 repeat { print(i) print += 1 } while i < 10 둘의 차이는 10으로 먼저 i를 설정해보면 알 수 있다. 후자는 조건문 안에 있는 loop를 먼저 실행하고 하기 때문에 실행하게 된다 . For Loops countable range //includes 0 and 5 let closeRange = 0...5 //5 not included let halfOpenRan..