Swift(스위프트) + Firebase: 사용자 정의 struct(구조체)를 사용한 Firestore CRUD 기초

Swift(스위프트) + Firebase: 사용자 정의 struct(구조체)를 사용한 Firestore CRUD 기초   실시간 데이터베이스 vs Cloud Firstore 비교 Firebase에서는 두 가지 형태의 데이터베이스를 제공합니다 이 글에서는 Cloud Firestore에 대해 알아봅니다. 데이터베이스 선택: Cloud Firestore 또는 실시간 데이터베이스   Firestore에서 자료를 저장하는 일반적인 형태     컬렉션 – 문서들을 모아 저장하는 곳입니다. 더보기…

Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 + 특정 행의 크기만 조절

Swift(스위프트): Static cell 모드인 테이블 뷰(UITableView)에서 특정 섹션 감추기 Static Cell 모드란 아래와 같이 content mode가 Static Cells로 지정된 경우로 데이터 모델에 따라 셀의 개수등이 변동하는 일반적인 테이블 뷰와 달리 셀의 개수, 위치 등이 고정되어 있는 경우를 말합니다. 이 경우 코드 작성 대신 스토리보드에서 셀 개수, 섹션 개수를 설정하게 됩니다. 더보기…

Swift(스위프트): 테이블 뷰(UITableView)에서 setEditing이 true일때만 삭제 등 작업 가능하게 하기

출처 How do I disable the full swipe on a tableview cell in iOS11   Swift(스위프트): 테이블 뷰(UITableView)에서 setEditing이 true일때만 삭제 등 작업 가능하게 하기 제목이 대체 무슨 말인가 하면 아래 화면과 같이 Edit 버튼이 있어 에디트 모드가 따로 있는 예제 앱이 있습니다. 테이블 뷰의 에디트 모드가 모든 열(row)에 활성화되어 있는 더보기…

Swift(스위프트): 제네릭(Generics) – 제네릭 타입, 제네릭 함수, 연관 타입(Associated Type), where 조건절

출처 Generics – The Swift Programming Language    제네릭 (Generics) 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식입니다. 예를 들어, Swift의 Array와 Dictionary 유형은 모두 제네릭 컬렉션입니다.   제네릭이 해결하는 문제 swap(교환) 함수를 구현하고자 합니다. swap은 더보기…

Swift(스위프트): 앱 최초 설치 후 한 번만 실행하는 작업, 버전 업데이트시에만 실행하는 작업 만들기

Swift(스위프트): 앱 최초 설치 후 한 번만 실행하는 작업, 버전 업그레이드시에만 실행하는 작업 만들기 1: 아래 코드를 프로젝트 내에 추가합니다. import Foundation func checkAppFirstrunOrUpdateStatus(firstrun: () -> (), updated: () -> (), nothingChanged: () -> ()) { let currentVersion = Bundle.main.object(forInfoDictionaryKey: “CFBundleShortVersionString”) as? String let versionOfLastRun = UserDefaults.standard.object(forKey: “VersionOfLastRun”) as? String 더보기…

RxSwift(ReactiveX + Swift): 기본 개념 및 스토리보드 예제 (요약)

RxSwift(ReactiveX + Swift): 기본 개념 및 스토리보드 예제   기본 용어 명령형 프로그래밍 (Imperative Programming) 컴퓨터가 실행할 명령을 순차적으로 작성하는 프로그래밍 방식입니다. 선언적 프로그래밍(Declarative Programming)과 대조적인 방식입니다.   예제 코드 let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9] var numbersLessThanFive: [Int] = [] for index in 더보기…

Xcode 프로젝트에 이미지 자르기(crop) 기능 추가: iOS Swift 라이브러리 Mantis 사용 (스토리보드)

Xcode 프로젝트에 이미지 자르기(crop) 기능 추가: iOS Swift 라이브러리 Mantis 사용 카메라 또는 사진을 선택하면 화면에 보여주는 프로젝트가 있는데, 여기서 선택 후 화면에 표시하기 전 크롭(crop) 기능을 이용해 이미지를 자르는 기능을 추가하고자 합니다. Swift(스위프트): 카메라 및 사진 라이브러리 권한 물어보기 + UIImagePickerController를 이용한 사진 추가 (스토리보드)   직접 구현하려면 매우 더보기…

Xcode 프로젝트에 코코아팟(CocoaPods) 설치 및 디펜던시 추가 방법

Xcode 프로젝트에 코코아팟(CocoaPods) 설치 및 디펜던시 추가 Xcode를 이용해서 iOS 프로젝트 등을 개발할 때 서드파티 라이브러리를 사용할 일이 많은데, 대다수 라이브러리들이 CocoaPods(코코아팟)라는 디펜던시 관리자를 이용해 프로젝트 내에 설치해야 합니다.   1. CocoaPods가 설치되지 않았다면 터미널 실행 후 아래 커맨드를 이용해 설치합니다. 인텔(Intel) CPU가 설치된 맥 sudo gem install cocoapods   더보기…

Swift(스위프트): 카메라 및 사진 라이브러리 권한 물어보기 + UIImagePickerController를 이용한 사진 추가 (스토리보드)

Swift(스위프트): 카메라 및 사진 라이브러리 권한 물어보기 + UIImagePickerController를 이용한 사진 추가 (스토리보드) 기본적으로 아래 글과 동일한 내용이나 사용성이 개선되었습니다. Swift (스위프트): 사진 라이브러리, 카메라 사용 (스토리보드)   코드 목록 코드에 대한 설명은 밑에 있습니다. This file contains bidirectional Unicode text that may be interpreted or compiled differently than what 더보기…

Swift(스위프트): Codable을 사용하여 사용자 정의 오브젝트를 UserDefaults에 저장 (프로토콜 지향 접근 방식)

원문 Save custom objects into UserDefaults using Codable in Swift 5.1 (Protocol Oriented Approach)   Swift(스위프트): Codable을 사용하여 사용자 정의 오브젝트를 UserDefaults에 저장 (프로토콜 지향 접근 방식) iOS는 Int, String, Float, Double, Bool, URL, Data 또는 이러한 유형의 컬렉션과 같은 UserDefaults에 직접 저장할 수 있는 여러 유형의 객체를 지원합니다. 하지만 더보기…