UIKit(7)
-
[iOS] Swift의 UI 작업은 반드시 Main Thread에서 동작해야한다?
Swift의 UI 작업은 Main Thread에서 동작해야한다!아요 개발하다가 한 번쯤 아래와 같은 보라색 경고를 보신 적이 있을 겁니다.해당 상황의 경우에는,"오직 메인 스레드 (main thread only)에서만 사용할 수 있는 UIKit의 속성"을 "다른 스레드에서 접근"했기 때문에 발생했습니다.꼭 아래의 UIViewController 속성이 아니더라도,UIView, UINavigationController 등 UI, 즉 화면을 담당하는 객체 관련 코드가 메인 스레드가 아닌 다른 스레드 접근을 시도할 경우에화면과 동일한 보라색 스레드 경고를 표출하게 될 겁니다.UIKit 공식문서를 들어가봐도 Important 칸에 별도로 강조하면서 설명하고 있습니다."UIKit 클래스는 오직 메인 스레드 혹은 메..
2025.04.07 -
[UIActivityViewController] 우리 앱에 "공유하기" 기능 (Share Sheet) 구현하는 방법
지난번 글은 외부 앱에서 하단 툴바에 있는 "공유하기" 버튼을 눌렀을 때, 우리의 앱이 연결되도록 하는 Share Extension 내용을 다뤄봤는데요.이번 글은 우리의 앱에서 외부 앱으로 공유를 가능하도록 하는 Activity View(= Share Sheet)를 만드는 방법에 대해 알아보고자 합니다.2차, 3차 스프린트를 거치며 우리 앱 와 다른 앱 간의 상호작용이 더욱 쉬워지도록 개선되는 일환이라고 생각하면 좋겠네요! [Share Extension] 다른 앱의 "공유하기" 버튼에 우리 앱을 설정하고 싶다면? (feat. NSExtensionActivationRule)[Chore] #209 - 사파리 외에 다른 앱에서도 Share Extension 대응 by mini-min · Pull Request..
2024.12.23 -
[UIKit] UISheetPresentationController를 사용해서 바텀시트(Sheets)를 만들어보자
예전 글에서 직접 프로젝트에서 사용할 바텀 시트(Sheets)를 커스텀해서 만든 방법을 소개했었다. [UIKit] 재사용 Component 개발하기 (3) - 바텀 시트 (Sheets, Bottom Sheet)[UIKit] 재사용 Component 개발하기 (1) - Toast Message💡 재사용 Component 개발하기 시리즈 글을 시작하며 이번 33기 앱잼이었던 프로젝트에서 우리 iOS 팀이 추구한 방향 중 하나는, 앱 내에서 반복되는 컴mini-min-dev.tistory.com하지만, WWDC21 에서 소개된 UISheetPresentationController를 사용해서 바텀시트(Sheets)를 만들면, 위의 글과 같은 복잡한 과정 없이 매우 간단하게 만들 수 있었다.그래서 이번 글에서..
2024.08.30 -
[iOS] 내가 보려고 정리하는 개발 용어 사전 (3) - 명령형 프로그래밍(Imperative Programming) vs 선언형 프로그래밍(Declarative Programming)
현재 이 글을 쓰고 있는 2024년 기준, iOS 개발을 배우고 싶다고 마음을 먹게 되면 선택할 수 있는 옵션은 두 가지.명령형 프로그래밍 기반의 UIKit와 선언형 프로그래밍 기반의 SwiftUI가 있다.처음 내가 iOS를 배울 때만 하더라도 SwiftUI가 생긴지 얼마 되지 않아 대부분의 프로그램이 UIKit 기반으로 짜여 있었다.하지만, 18개월동안 군대를 다녀와보니 생각보다 SwiftUI는 많이 발전되어 있었고 애플에서도 지속적으로 생태계를 확장시키려는 움직임을 매년 WWDC에서 확인할 수 있었다.애플이 현재 UIKit을 외면(?)하고 있는 것은 아니지만, 미래의 확장 가능성을 생각해 볼 때 UIKit보다는 SwiftUI가 더욱 전망이 밝아 보인다는 사실을 부인할 iOS 엔지니어는 없을 것으로 생..
2024.08.27 -
[UIHostingController] UIKit 프로젝트에서 SwiftUI 적용해보기
1️⃣ SwiftUI를 UIKit 프로젝트에서 사용한다고? 왜?SwiftUI는 날이 갈수록 발전하고 있다.처음 iOS 개발을 배울 때만 하더라도 기존 대부분의 프로젝트는 UIKit를 사용하고 있었고, SwiftUI는 그저 생긴 지 얼마 되지 않은 (왜 사용하는지 필요성을 못 느낀) Second User Interface Framework에 불과했는데,내가 군대를 다녀온 불과 몇 년 사이에 (애플도 매년 UIKit에 비해 더 적극적으로 업데이트를 해주는 등) SwiftUI는 많은 발전과 안정화를 거듭하며 앞으로 더 밝은 전망을 보이고 있다."그럼 이제 UIKit 프로젝트를 SwiftUI로 갈아 엎으면 되는 건가?""UIKit 공부 때려치우고 이제 SwiftUI 써야겠다!"실제로 UIKit에서 SwiftUI..
2024.08.07