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

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

Swift(스위프트): 배열의 reduce

Swift: 배열의 reduce 스위프트(Swift)에서 배열(Array)의 reduce 기능은 배열을 순회하면서 누산기(accumulator)에 값을 계속 쌓아놓고 최종적으로 누산기의 값을 반환하는 reducer의 기능을 수행하는 고차 함수입니다. reducer의 사전적 의미와 매칭이 잘 안되는데 어떤 물질에서 원액(누산기의 값)만 추출한다는 의미로 생각하면 될 것 같습니다. 누산기의 값은 줄어들지 않으며 리턴식은 누산기에 합산됩니다. 그리고 마지막까지 순회한 후 최종적으로 누산기의 값만을 반환한다는 특성을 더보기…

Swift(스위프트): 이미지를 그레이스케일로 변환

원문 Tutorial: Convert Images to Grayscale in Swift   개요 이 글에서 이야기하는 Swift의 이미지에 그레이스케일 적용하는 세 가지 방법은 다음과 같습니다. 그레이스케일로 변환 가능하지만 화질을 유지하려면 시간이 걸리는 CIFilter 시간이 덜 걸리고 한 번에 여러 이미지에 적용할 수 있지만 투명한 요소(transparent elements)를 색상으로 바꾸는 CoreGraphics 필터 Swift UI에서 View에 더보기…

Swift(스위프트): 앱 아이콘 변경 기능 만들기

순서 기본 아이콘 및 추가 아이콘 이미지 파일 사이즈별로 준비 아이콘 변경 UI 만들기 info.plist 파일 변경 UI의 컨트롤러에 아이콘 변경 기능 부분 코드 추가   Swift(스위프트): 앱 아이콘 변경 기능 만들기 iOS 10 버전부터 아이폰/아이패드 홈 스크린의 앱 아이콘을 동적으로 변경할 수 있는 기능이 추가되었습니다. 이 기능을 추가하면 앱 더보기…

Swift(스위프트): 튜토리얼을 통한 디자인 패턴: MVVM (Model-View-ViewModel) 2

원문 MVVM in iOS Swift   새 애플리케이션을 구축할 때마다 항상 새 프로젝트에 어떤 아키텍처 패턴을 선택해야 하는지에 궁금할 수 있습니다. iOS에서 가장 많이 사용되는 아키텍처 패턴은 MVC입니다. 대부분의 개발자는 프로젝트에 MVC 패턴을 사용합니다. 소규모 프로젝트에는 MVC가 잘 작동하지만 프로젝트 크기가 증가하기 시작하면 소스 코드가 지저분해지기 시작합니다. 아키텍처 패턴을 사용하는 더보기…

Swift(스위프트): 튜토리얼을 통한 디자인 패턴: MVVM (Model-View-ViewModel) 1

  원문 Design Patterns by Tutorials: MVVM   버전 Swift 4 iOS 11 Xcode 9   튜토리얼을 통한 디자인 패턴: MVVM (Model-View-ViewModel) 上 MVVM(Model-View-ViewModel)은 오브젝트를 세 개의 개별 그룹으로 분리하는 구조적인 디자인 패턴입니다. 모델(Model)은 애플리케이션 데이터를 보유합니다. 일반적으로 구조체(struct) 또는 간단한 클래스(class)입니다. 뷰(View)는 화면에 시각적 요소와 컨트롤을 표시합니다. 일반적으로 UIView의 더보기…

iOS 앱 포트폴리오: 나만의 오르골 만들기 (Make My MusicBox) 애플 앱스토어 출시 📱

나만의 오르골(뮤직 박스) 악보를 만들고 재생, 공유할 수 있는 나만의 오르골 만들기 Make My MusicBox 앱이 출시되었습니다.   나만의 오르골 만들기 Make My MusicBox 프로모션 영상   사용 도구 Swift, Xcode   앱스토어 링크 나만의 오르골 만들기 Make My MusicBox (모든 국가 출시)   깃허브 링크 https://github.com/ayaysir/MusicBox   제작 시기 더보기…

Swift(스위프트): 언어 현지화(로컬라이제이션 Localization) – 다국어 지원 앱 만들기

스위프트(Swift)를 사용한 iOS 프로젝트에서 로컬라이징하는 방법입니다. 프로젝트 세팅 스토리보드 로컬라이징 코드 내 텍스트의 로컬라이징 변수값을 사용하는 어순이 바뀌는 언어의 로컬라이징 info.plist 로컬라이징   1. 프로젝트 세팅 프로젝트 세팅의 PROJECT > Info 에서 Localizations 아래에 있는 + 버튼을 클릭합니다.   여기서는 한국어(ko)를 선택하도록 하겠습니다. 여러 언어를 추가할 수 있습니다.   기본 더보기…

Swift(스위프트): 원형 버튼 만들기 (스토리보드)

가로 세로 크기가 동일한 정사각형 버튼에서 cornerRadius 값을 버튼 너비(width)의 50%을 주면 원형 버튼이 됩니다.   @IBOutlet으로 연결된 버튼 또는 수동으로 만든 버튼을 원형으로 만들기 @IBOutlet weak var button: UIButton! // viewDidLoad(_:) 등 함수 안에 작성 button.layer.cornerRadius = 0.5 * button.bounds.size.width button.clipsToBounds = true   extension으로 만들어서 재사용하기 프로젝트에 다음 더보기…

Swift(스위프트): NSCoding(NSSecureCoding)을 이용한 클래스 객체 직렬화(바이너리 인코딩)

이 예제는 Swift에서 메모리상에 있는 객체를 직렬화(정확하게는 바이너리 형태로 압축 인코딩)한 뒤 저장 장치에 파일 형태로 저장하고 다시 불러오는 예제입니다. 이 예제는 인스턴스를 파일 형태로 주고받을 경우에 사용하고, 네트워크에서 주로 교환되며 JSON으로 사용 가능한 경우는 JSON을 사용하는 것이 좋습니다. NSCoding은 원칙적으로 클래스(NSObject를 상속받는)에서만 가능하고, 구조체(struct)는 사용이 불가능합니다. 다만 별도의 트릭을 더보기…