Swift 3

[iOS] iOS Toy 1: 스크랩 에디터, 캔버스 에디터, 제스처 조작하기

2024 관광데이터 활용 공모전에서 내가 메인으로 개발했던 기능 중 '스크랩 에디터'를 공유하려 한다. 실제 앱에서는 REST API를 통해 캔버스 데이터를 불러오고 각 디바이스 사이즈에 맞게 재조정하고 배치하고..작성할 코드가 매우 많아서 힘들게 개발했었고, 매우 더럽게(?) 개발했다. 여기서는 간단하게 어떤 원리로 개발할 수 있는지, 이런 방법도 있다는 것을 공유하는 차원에서 글을 쓴다. 대충 이런 스크랩을 만들 수 있는 기능사용한 UI 프레임워크: SwiftUI주요 Skills: GeometryReader, 좌표, Gesture 찾아보니 'Canvas'를 사용하는 것도 있던데, 나는 ZStack을 이용해 구현할거다. // CanvasView.swiftimport SwiftUIstruct Canvas..

개발/iOS 2025.04.26

[Swift] 익명 함수와 클로저

모든 개발 언어에서 '익명 함수 (Anonymous Function)'라는 개념이 존재한다. 개발을 시작하고 약 1년은 Kotlin으로 Android를 개발했었는데,당시에는 익명함수, 람다를 전혀 이해하지 못했고, 너무 어려워했던 기억이 난다. 시간이 조금은 지난 지금, 람다뿐 아니라 어느 정도 개발에 익숙해진 시점에서 그때를 떠올려 보면,그렇게 힘들어했던 것도 이해가 되지만, 왜 그렇게 어렵게 느꼈었는지, 어렵게 공부했었는지 아쉬운 생각도 든다.아마 나보다 더 오래된 개발자들도 비슷한 감정을 느껴본 적 있지 않을까 싶다. 그래서, 그때의 나를 위로하는 마음으로 익명 함수, 클로저에 대해 정리해보려 한다.물론, 이거 말고도 힘들어 한게 한 둘이 아니긴 하다.. (지금도 힘든거 많ㅇ) 익명 함수? 클로저..

개발/Swift 2025.04.22

[Metal] Metal Toy 1: 텍스처 색상 반전

iOS 개발을 하면서 그래픽을 건드리게 된다면, Metal 이라는 단어를 듣게 된다. OpenGL, DirectX처럼 GPU를 직접 제어할 수 있는 API로, Apple 생태계(iOS, macOS 등)에 특화된 성능 최적화된 API이다. 이런말을 사용할 때면 항상 아쉬운게 처음 접하는 입장에서는 저런식의 정의가 쉽게 와닿지 않는다.그래서 항상 내가 이해할 수 있는 방법으로 이해하고, 나중에 다시 정의를 보면 잘 이해가 된다. 그래서 나는 Metal을 이렇게 이해하고 학습을 시작했다.화면에 2D나 3D로 뭔가를 그리거나 연산을 할 때 직접 GPU를 활용할 수 있도록 하는 Apple 전용 그래픽 API 사실 예제에 관련된 포스팅을 하기 전에 Metal에 대해서 먼저 자세히 알아봐야 하지만,스터디에서 발표할 ..

개발/Metal 2025.04.21