분류 전체보기
-
[Flutter] asset Image 추가하기Flutter 2024. 1. 28. 16:24
1. 추가할 Asset의 경로를 지정해준다. 2. AssetImage 사용하기 3. 크기 지정하기 (feat. BoxFit) #1. 추가할 Asset의 경로를 지정해준다. 이미지를 먼저 추가해보자. ~/assets/image/ 로 폴더를 추가하고 이 밑에다가 image를 추가하려고 한다. 아래와 같이 폴더를 만들어줬다. pubspec.yaml 파일에 에셋의 경로를 지정해줘야 한다. 나의 경로는 assets/images/ 이다. #2. AssetImage 사용하기 이제 이미지를 추가하면 된다. Image( image: AssetImage('assets/images/my_image.png'), ), #3. 크기 지정하기 (feat. BoxFit) 이미지를 원하는 크기를 지정해주려면 width, height를..
-
슈퍼 노멀경험치바/독서 2024. 1. 26. 17:50
한때 유튜브 '신사임당'으로 불렸던 주언규 PD의 책이다. "세상에 돈 벌 방법은 너무 많다. 100억, 1000억 이상의 부자는 어려워도 월 천 만원 정도의 수입을 이룰 방법은 크게 어렵지 않다"고 외치는 그. "천재는 아니어도, 한 분야의 최고가 아니라도 적당히 앞서나갈 수 있는 방법은 얼마든지 있다." 라고 말하는 그의 지론이 내가 추구하는 방향과 너무나도 일치해서 유튜브를 열심히 보다가 책까지 찾아 읽게 되었다. 신사임당의 구독자가 10만, 20만일 때부터 간간히 봐왔기에 책이 더 와닿았던 것 같다. 계속해서 꾸준히 지켜본 열혈 구독자는 아니었어도, 어느새 100만 구독자를 넘긴 신사임당은 얼핏봐도 사람 자체가 얼마나 성장했는지 느낄 수 있었다. 세상을 비판적으로 객관적이게 잘 바라보면서 울림을 ..
-
swift concurrency 사용해 이미지 권한 얻기iOS 2023. 11. 29. 19:49
[ 💡 3줄 요약 ] iOS 14 부터는 이미지 권한을 얻는 새로운 api 가 추가됨. (async, closure 모두 지원.) limited status 가 생겼으니 deprecated 된 기존 권한 얻는 방식을 사용할 경우 주의가 필요함. Concurrency 로 구현한 코드. func hasPhotoLibraryAuthorization() async -> Bool { if #available(iOS 14, *) { let status = await PHPhotoLibrary.requestAuthorization(for: .readWrite) return status == .authorized || status == .limited } else { return await withCheckedCont..
-
Xcode 15 Jump to define 단축키 변경iOS 2023. 10. 31. 13:53
https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes The Show Code Actions command has been replaced with Show Quick Actions to quickly access any menu command. By default, Command-clicking a token in the editor now performs Jump to Definition. AS-IS cmd + ctrl + 클릭 TO-BE cmd + 클릭
-
Identifiable 프로토콜 기본개념Swift 2023. 7. 31. 14:32
protocol Identifiable > ID: Hasable 안정적인 id 값을 갖는 인스턴스 객체 특정 기간이나 범위 안에서 유니크함을 보장함. 아래 특성들을 가질 수 있음. - 항상 유니크함. 예를 들어, UUID - 특정 환경안에서 유니크함. 예를 들어, 데이터베이스 record 키들 - 프로세스 생애주기 동안 유니크함. 예를 들어, static 변수 - 객체의 생애주기 동안 유니크함. 예를 들어, object identifiers - 현재 집합 안에서 유니크함. 예를 들어, collection indices Identifiable Protocol 을 채택하면 class 타입은 ObjectIdentifier 를 기본 값으로 제공해줌. 하지만 이는 객체의 생애주기 동안만 유효. 더 강력한 ide..
-
[SwiftUI] HStack 하위 요소 > 최대 높이로 동일하게 맞추기SwiftUI 2023. 5. 22. 21:12
HStack 안에 View 들 중에서 최대 높이의 뷰에 맞추고 싶었으나, 아래와 같이 나오는 문제를 만났다. AS-IS 에서 TO-BE 로 바꾸고 싶다. AS-IS TO-BE AS-IS 코드는 아래와 같다. 원인은 왼쪽은 가운데 Spacer() 가 들어간 VStack 에서 Spacer 로 인해 상위 뷰의 최대 높이만큼 늘어나버리기 때문! VStack { HStack(alignment: .bottom) { VStack(spacing: 0) { Text("웅쓰") Spacer() Text("woongs") } .border(.blue, width: 1) Spacer() Rectangle() .foregroundColor(.orange) .frame(width: 100, height: 150) } } .fra..
-
UISlider 커스텀하기 - 1iOS 2023. 4. 12. 14:01
UISlider 만들어진 그대로 사용하긴 쉽지만 커스텀하기 시작하면 생각보다 쉽지 않네요.. 간단할 것 같지만 생각보단? 좀 찾아봐야 하는 것들 위주로 정리하려고 합니다. 이번 글은 1탄으로 thumb 를 교체 하는 방법입니다. 1. thumb 교체하기 교체하는 것 자체는 생각보다 간단하게 할 수 있습니다. setThumbImage 를 사용해주면 됩니다. class WSSlider: UISlider { required init?(coder: NSCoder) { super.init(coder: coder) self.setupThumb() } private func setupThumb() { let thumbImage: UIImage = ... self.setThumbImage(thumbImage, for:..
-
[Metal] MTKView > Drawing Mode (Configuring the Drawing Behavior)iOS/Metal 2023. 4. 5. 19:03
3줄 요약. 3가지 모드가 있음. 아무것도 설정하지 않으면 draw 가 계속 호출되는 Timed updates 임. 주로 게임이나 주기적 업데이트가 필요한 애니메이션에 사용됨. 필요할 때마다 draw 해주기 위해서는 enableSetNeedsDisplay = false 로 설정해서 Draw notifications 로 바꿔줘야함. 이러면 invalidates 가 있을 때만 호출됨. 보통 setNeedsDisplay() 를 호출함. 일반적인 앱에선 이걸 사용 자신만의 새로운 흐름을 만들기 위해서는 isPaused = true 로 설정함. 정확한 예시는 잘 모르겠음 3가지 Drawing Modes MTKView 는 3가지 Drawing Modes 를 지원합니다. 결정 변수 Drawing Mode 를 결정하는..