SwiftUI
-
SwiftUI로 캘린더 직접 구현하기SwiftUI 2023. 5. 25. 12:04
안녕하세요. 그린입니다🍏 이번 포스팅에서는 오랜만에 SwiftUI로 뚝닥뚝닥 해보는 시간입니다🙋🏻 뭘 뚝닥뚝닥 해볼지 고민하다가 그냥 밑도 끝도 없이 캘린더를 간단하게 직접 만들어보고 싶어졌습니다! 그래서 캘린더를 커스텀하게 SwiftUI로 구현하는 포스팅이 될것 같네요🕺🏻 기본적으로 제공되는 DatePicker 우선 SwiftUI에서 기본적으로 DatePicker라는 API를 제공해주고 아래와 같이 우리가 익숙한 캘린더의 형태를 나타낼 수 있게 아주 쉽게 도와줍니다. https://developer.apple.com/documentation/swiftui/datepicker DatePicker | Apple Developer Documentation A control for selecting an ab..
-
AVPlayer in SwiftUI (feat. PIP)SwiftUI 2023. 3. 23. 15:15
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 커스텀한 AVPlayer를 통해 동영상 플레이어 구축을 해보겠습니다🙌 우선 바닐라 SwiftUI 환경에서 구축을 진행하였습니다. VideoPlayer의 단점 iOS 14부터 SwiftUI에서 기본적으로 제공하는 VideoPlayer라는것이 있습니다. 물론 간단한 구현정도는 해당 API를 통해 구축할 수 있지만, 세부적인 조작이 필요한 경우 UIKit에서 제공하는 AVPlayer를 직접 커스텀하게 구성해야 됩니다🥹 그럼 이번 포스팅에서는 큰 설명보다는 코드로 같이 보겠습니다! 아참! 우선 해당 프로젝트 타겟에서 아래 설정을 켜줘야합니다. 🙋🏻 Signing & Capabilites > Background Modes > Audio, Airplay,..
-
UIKit과 SwiftUI에서 텍스트의 자간&행간 조절하기SwiftUI 2023. 2. 20. 20:40
안녕하세요. 그린입니다🍏 이번 포스팅에서는 UIKit과 SwiftUI에서 텍스트의 자간 및 행간을 설정하는 구현을 해보겠습니다🙌 우선 자간과 행간이 뭘까요? 자간은 글자와 글자 사이 간격을 뜻합니다. 즉 Letter Spacing이라고도 많이 표기하며 피그마나 제플린에서 해당 속성 값의 이름도 보통 Letter Spacing으로 표기됩니다. 행간은 줄높이라고도 하며 글자행 사이 간격을 뜻합니다. 타이포그래피에서 인접한 줄 사이의 공간을 의미하며 보통 Line Spacing이라고 명칭합니다. 우리는 Text, TextField, TextView를 자주 사용하면서 이 텍스트 간 자간과 행간을 조절할 일이 많아집니다. 해당 속성을 조절하여 보다 더 보기 좋은 UI를 만들고 사용자들에게 쉽게 인식되도록 해줄 수..
-
UITextView를 SwiftUI에서 커스텀하게 사용하기SwiftUI 2023. 2. 17. 14:00
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 텍스트뷰 구현을 위해 기본 제공하는 TextEditor를 사용하지 않고 UIKit 세상의 UITextView를 가져와 입맛대로 텍스트뷰를 커스텀하게 구현해보도록 하겠습니다🙌 왜 TextEditor 안쓰죠!? 우선 현재 기준 iOS 16에서 TextEditor가 분명 쓸만해진것은 사실입니다. 다만 최신 버전을 사용할 수 없는 환경에 처한 여러분들이 더 많을것 같고 저 역시 그렇습니다😭 14,15 버전 기준으로 간단히 짚어보면 우선 SwiftUI의 기본 제공되는 TextEditor에서는 우리가 흔히 사용하는 placeholder를 기본적으로 제공하지 않아 필요하면 overlay로 컨트롤 해줘야합니다. 또 텍스트가 입력되는 칸의 Inset을 조정할때..
-
SwiftUI - View를 구조체로 생성하는 이유SwiftUI 2022. 12. 26. 09:13
안녕하세요. 그린입니다🍏저번 포스팅에서는 SwiftUI의 View 프로토콜에 대해 알아봤어요!혹시 안보셨다면 아래 포스팅을 먼저 보고 오시면 더 도움이 됩니다🙌https://green1229.tistory.com/314 SwiftUI - View안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 View Protocol에 대해 알아보겠습니다🙌 SwiftUI로 뷰를 만들면서 꼭 만나는 개념이 있습니다. 바로 View를 채택하는것인데요. 그러니까 이 Viewgreen1229.tistory.com 저번 포스팅 말미에 우리가 SwiftUI에서 View를 정의할때 구조체로 정의하는 이유에 대해 알아본다고 했었습니다😄오늘 그거 한번 알아보시죠 :D 오늘 포스팅은 구조체와 클래스가 무엇인지 그리고 차..
-
SwiftUI - ViewSwiftUI 2022. 12. 24. 12:16
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 View Protocol에 대해 알아보겠습니다🙌 SwiftUI로 뷰를 만들면서 꼭 만나는 개념이 있습니다. 바로 View를 채택하는것인데요. 그러니까 이 View는 프로토콜입니다. 이 프로토콜을 별 고민없이 채택하고 뷰를 그려줬었는데 오늘은 이 프로토콜이 어떻게 구성되어 있는지에 대해서 알아보겠습니다. 그럼 바로 보시죠🕺🏻 View 공식문서에서는 View 프로토콜을 앱 사용자 인터페이스의 일부를 보여주고 뷰를 구성하는데 사용하는 모디파이어 즉 수정자를 제공하는 프로토콜이라고 합니다. 쉽게 정리하면, 뷰를 그리기 위해서 채택하는 프로토콜이라고 이해하고 어떻게 구성되어 있는지 보시죠~! public protocol View { associatedty..
-
SwiftUI - refreshableSwiftUI 2022. 12. 8. 10:16
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 List에서 사용 가능한 refreshable이라는 새로 고침 기능에 대해 알아보겠습니다🙌 우선 해당 기능은 iOS 15 부터 사용이 가능해요! 참고로 WWDC2021에서 소개되었습니다. 비교적 어떻게 보면 최신 메서드이기에 현업에서 13, 14부터 지원을 한다면 사용할 순 없습니다. 그렇지만 앞으로 미니멈 타겟은 점차 올려갈것이고 배워두면 좋기에 이참에 한번 트라이 해봅니다🙌 여러분 모두 테이블뷰 혹은 컬렉션뷰로 된 즉, 리스트로 데이터가 뿌려진 뷰의 경우 최상단에서 아래로 드래깅 시 새로 고침이 되면서 데이터를 최신으로 갱신하는 그런 기능을 가진 앱을 아주 많이 보셨고 익숙하실거라 생각합니다. 모두에게 사실은 친숙한 기능이긴한데 SwiftUI..
-
SwiftUI - antialiased & interpolationSwiftUI 2022. 12. 6. 14:47
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI의 이미지를 조금 더 매끄럽게 보간하는 메서드들에 대해 학습하겠습니다🙌 오늘 소개할 두가지는 antialiased와 interpolation입니다. 그럼 순차적으로 알아보겠습니다! antialiased? 안티 에일리어싱이 뭘까요? 사전적인 의미부터 한번 파악해보죠. 우선 에일리어싱은 디지털 샘플링에서 출력이 왜곡되는 현상 즉, 계단 현상을 의미합니다. 이미지 같이 렌더링된 컨텐츠를 보여줄때 출력되는 이미지의 픽셀이 깨지거나 가장자리가 울퉁불퉁 해지게 나타나는 현상입니다. 여기서 안티가 붙었으니 이러한 매끄럽지 못한 출력을 매끄럽게 만들어주는 메서드겠죠? 실제 공식문서에서는 아래와 같이 소개하고 있습니다. "이미지를 렌더링할 때 SwiftUI가 안티 ..