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   더보기…

리액트 + 타입스크립트 (React + TypeScript): HTML 요소, 폼의 이벤트 처리

리액트가 아닌 일반 타입스크립트에 대한 이벤트 처리는 아래를 참고하세요, 타입스크립트(TypeScript): HTML 요소에 이벤트 추가   리액트 + 타입스크립트 (React + TypeScript): HTML 요소, 폼의 이벤트 처리 아래와 같이 폼에 대한 이벤트 처리를 하는 JSX를 사용한 리액트 Hook이 있다고 가정합니다. import { useState } from ‘react’ function App() { const [text, 더보기…

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

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

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에 직접 저장할 수 있는 여러 유형의 객체를 지원합니다. 하지만 더보기…

Swift(스위프트): 컬렉션 뷰의 셀을 길게 누르면(long press touch) 애니메이션 나타나도록 하기

참고 iOS 프로그래밍: 컬렉션 뷰 (Swift, 스토리보드) – 컬렉션 뷰 추가, 커스텀 셀 작성   Swift(스위프트): 컬렉션 뷰의 셀을 길게 누르면(long press touch) 애니메이션 나타나도록 하기 개요 기존의 프로젝트 코드를 기반으로 롱 프레스 터치(길게 터치하기) 작업을 추가하고, 롱 프레스 시에 셀이 살짝 작아졌다 놓으면 다시 원상 복귀하는 애니메이션이 추가되도록 만들어 더보기…

CSS + 자바스크립트 예제: 스켈레톤 로딩(Skeleton Loading)

스켈레톤 로딩(Skeleton Loading), 스켈레톤 스크린 최근 여러 웹 사이트나 앱 등에서 유행하는 로딩 화면(프로그레시브 인디케이터)으로 스켈레톤 스크린이라는 것이 있습니다. 단순히 로딩 스피너나 막대기를 보여주는 대신, 화면의 레이아웃을 유지하면서 진행 상황을 표시하기 때문에 사용자의 입장에서 체감 로딩시간이 줄어든다는 장점이 있습니다.   구현 단계 실제 서비스에서는 훨씬 더 복잡하겠지만, 대략적인 구현 단계는 더보기…

JSX 등의 소스 코드를 디자인 및 문법 하이라이팅 처리된 이미지로 저장 (carbon.now.sh)

carbon.now.sh 가끔 개발자 블로그를 돌아다니다 보면 문법 하이라이팅(syntax highlighting) 된 이미지 형태로 코드가 업로드되어 있는 것을 볼 수 없습니다. 복사 붙여넣기가 불가능하므로 경우에 따라 코드 복붙이 필요한 경우 원망스럽기도 하지만 디자인이 잘 되어 있어서 보기에는 좋다는 장점이 있습니다. carbon.now.sh 라는 웹 서비스에서 이러한 이미지를 제작할 수 있습니다. 다양한 테마와 언어를 더보기…