🌙 IOS 스터디

    [Swift] Equatable , Codable 프로토콜

    [Swift] Equatable , Codable 프로토콜

    Equatable struct Todo: Codable, Equatable { let id: Int var isDone: Bool var detail: String var isToday: Bool mutating func update(isDone: Bool, detail: String, isToday: Bool) { // [x] TODO: update 로직 추가 self.isDone = isDone self.detail = detail self.isToday = isToday } // '=='이라는 조건을 정의 해주는 것.Equatable이라는 프로토콜을 넣어주면 우리 맘대로 정의 가능. static func == (lhs: Self, rhs: Self) -> Bool { // [x] TODO: 동등 조..

    [Swift]  mutating 구조체

    [Swift] mutating 구조체

    Mutating 구조제에 선언된 프로퍼티를 변경하기 위해서는 함수앞에 mutating이라는 말을 써주어야한다. 그래야 값을 변경하는지 아닌지 알수 있음 struct Todo: Codable, Equatable { let id: Int var isDone: Bool var detail: String var isToday: Bool mutating func update(isDone: Bool, detail: String, isToday: Bool) { // [x] TODO: update 로직 추가 self.isDone = isDone self.detail = detail self.isToday = isToday } // '=='이라는 조건을 정의 해주는 것.Equatable이라는 프로토콜을 넣어주면 우리 맘..

    [Xcode] 데이터 저장방법

    [Xcode] 데이터 저장방법

    데이터가 적은 경우 NSCoding Property List 데이터가 많은 경우 Core Data(구현난이도 있음) Realm Serialization 등등등... Codable NSCoding 처럼 데이터가 적은 경우 구현하기에 적합하며, swift4이상부터 지원하기 시작. 현재는 거의 필수로 사용중. 아주 쉽게 데이터를 다룰 수 있게 해주는 프로토콜.

    [Xcode] Project editor - 프로젝트 편집기

    [Xcode] Project editor - 프로젝트 편집기

    프로젝트 편집기의 첫 번째 열에있는 프로젝트 제목 아래에는 Project와 Targets제목이 표시된다. Project는 생성하는 모든 프로젝트는 해당 특정 프로젝트의 모든 대상에 대한 기본 빌드 설정을 정의한다. Target은 빌드하는 앱이며, xcode가 프로젝트나 작업 공간에서 파일들 안에서 제품을 구축하는 데 필요한 정보를 포함한다. Gerneral : ID, 서명 및 배포 옵션과 같이 가장 일반적으로 수정된 대상 설정을 조정 Singing & Capabilities : 앱에 승인, 앱 서비스를 활성화. 앱에 서명하려면 Xcode 프로젝트의 각 대상을 동일한 팀에 할당해야 한다. 개인으로 등록하면 1인 팀으로 간주됨. 만약 당신이 Apple Developer Program의 회원이 아니라면, Xc..

    [xcode] Storyboard objects 정리

    [xcode] Storyboard objects 정리

    UILabel : 한 줄 이상의 정보 텍스트를 표시 UIButton : 사용자 상호 작용에 대한 응답으로 사용자 지정 코드를 실행하는 컨트롤 버튼 UISegmentedControl : 여러 세그먼트로 구성된 수평 컨트롤이며 각 세그먼트는 개별 버튼으로 작동 UITextField : 편집 가능한 텍스트 영역을 표시하는 개체 UISlider : 연속 된 값 범위에서 단일 값을 선택하기위한 컨트롤 UISwitch : on / off와 같은 바이너리 선택을 제공하는 컨트롤 스위치 UIActivityIndicatorView : 작업이 진행 중임을 보여주는보기 UIProgressView : 시간 경과에 따른 작업 진행 상황을 보여주는보기 UIPageControl : 가로로 일련의 점을 표시하는 컨트롤 . 각 점은 ..

    [xcode] Inpo.plist 파일 - 애플리케이션 정보

    [xcode] Inpo.plist 파일 - 애플리케이션 정보

    Info.plist developer.apple.com/documentation/bundleresources/information_property_list Apple Developer Documentation developer.apple.com Info.plist >> 속성에대한 정보들을 key - value 형태로 저장한 리스트 파일이다. 코드 형태로는 xml형식으로 볼 수 있다. key-value 쌍은 시스템이 연결된 번들을 해석하는 방법을 지정한다. key-value 쌍은 번들에 대한 것도 있지만, 다른 일부는 번들이 나타내는 앱, 프레임 워크 또는 기타 항목 을 구성한다. 일부 키는 필수이고, 다른 키는 필요하다면 상세화 한다. bundle: 덩어리, 패키지 번들ID라는 용어는 같은데 형태가 2가..

    [xcode] HeaderView있는 CollectionView 애플 뮤직 앱

    [xcode] HeaderView있는 CollectionView 애플 뮤직 앱

    개요 HeaderView있는 CollectionView로 구성한다. CollectionView의 cell에는 뮤직 앨범이 들어간다. HeaderView에는 CollectionView에 있는 cell 앨범 중 랜덤한 앨범의 정보가 보여진다. 앨범을 클릭시 해당 곡을 재생할 수 있는 화면을 띄운다. 재생 버튼을 누르면 곡이 재생이 된다. 일시정지 버튼을 누르면 곡이 멈춘다. 슬라이더를 이용하여 원하는 부분의 재생이 가능하다. 다크모드, 라이트모드 적용시 알맞게 보여준다. 실행 동영상

    [xcode] CollectionView로 Animation기능을 추가한 원피스 현상금 앱

    [xcode] CollectionView로 Animation기능을 추가한 원피스 현상금 앱

    개요 MVVM 디자인 패턴을 이용하여 원피스 현상금 랭킹앱을 디자인. 현상금이 높은 순서대로 보여주어야 한다. View구성은 CollectionView를 이용하였다. 애니메이션 기능을 추가하여 동적인 느낌을 추가하였다. 실행 동영상 MVVM 디자인 패턴 View = UI + ViewController Model = 데이터 ViewModel = Model은 ViewModel를 거쳐서 접근 가능하여야 한다. 알고리즘적인 부분 수행 MVVM에 관한 구현 방법은 TableView로 구성한 1차 원피스 현상금 앱과 동일하다. (밑 링크 참고) cau-meng2.tistory.com/101?category=833321 [Xcode] MVVM을 이용하여 TableView로 구성한 원피스 현상금 앱 개요 MVVM 디자..

    [xcode] 유용한 단축키 모음 ( - 지속적 업데이트 중)

    [xcode] 유용한 단축키 모음 ( - 지속적 업데이트 중)

    CMD + click: 정의로 이동 CMD + OPT + click: 정의로 이동하되 현재 창 반대편에 열기 CMD + R: 실행 CMD + CTRL + E: 특정 단어 선택 후 누르면 현재 파일내 동일 단어를 일괄 편집 CMD + OPT + 왼쪽 / 오른쪽: 현재 커서가 위치한 블록 접기/펼치기 option + cmd + = : update frame

    [xcode] extension 언제 사용?

    [xcode] extension 언제 사용?

    stored property : 추가 못함. >> 상속을 너무 많이 받아서 코드가 난잡해지는 경우 분리를 위해 extension으로 나누어 줄 때 사용 또는 computed property나 method를 만들기 위하여 사용됨