본문 바로가기

iOS & macOS6

[macOS] 이미지가 많은 뷰 성능 최적화 - LazyVGrid macOS앱 개발을 하며, 뷰에 이미지를 굉장히 많이 로드해야 하는 상황이 발생했습니다. 앱의 특성상, 저장된 이미지는 무조건 고화질로 NSImage변수에 저장되어있어야 하며, 모든 이미지들의 위치값을 갖고 있어야 하는 상황입니다. 뷰에 수백개의 이미지들을 ScrollView에 넣고, 이미지들을 드래그하는 기능을 구현했습니다. 문제는 모든 이미지들의 위치값을 갖고 있어야 하며, 이 위치값을 통해 드래그 기능을 구현하는 방식으로 개발을 진행하는 과정에서 뷰가 너무 많은 이미지를 한꺼번에 로드하는 바람에 앱의 성능이 현저하게 떨어지는 경험을 했습니다. 최적화 전 - 한번에 모든 이미지를 불러와, 각 이미지들의 위치 값을 저장하는 방식 모든 이미지들의 위치값을 저장하기 위해 한번에 모든 이미지를 불러와, 각 .. 2024. 1. 13.
[macOS] 파일 선택 기능 - Drag & Drop, NSOpenPanel macOS에서 파일 업로드하는 기능을 개발하였습니다. File 업로드 기능 구현 방식 1) Drag & Drop 방식 2) NSOpenPanel 방식 1. Drag & Drop 방식 공식 문서 https://developer.apple.com/documentation/swiftui/drag-and-drop Drag and drop | Apple Developer Documentation Enable people to move or duplicate items by dragging them from one location to another. developer.apple.com onDrop 방식 예제 코드 struct ContentView: View { @State private var droppedIma.. 2024. 1. 12.