iOS/UIKit

iOS/UIKit

[UIKit] Line Height(행간), Line Spacing(자간) 조절하기

기본인 System font에 대하여 옵션으로 font의 Size와 Weight에 대해 다룰 수 있습니다. 또는 Custom Font를 이용한다면 Custom Font의 주어진 이름과 Size 옵션을 조절할 수 있습니다. 디자이너와 협업을 하는 과정에서 처음으로 행간과 자간에 대해 다루는 과정을 마주했습니다.font size와 개별로 행간을 조절해야 할 때는 어떻게 해야할까요? Line Height행간과 Line Spacing(자간)에 대해 어떻게 조절할 수 있을까 고민해보았습니다.   우선 Font Size와 LineHeight에 대해 인지하기 위해 직접 값을 출력해보면서 확인해봅니다. 아하! 폰트 사이즈와 별개로 Line Height에 대한 값이 존재합니다.  이외에도 font에 대한 더 다양한 속성..

iOS/UIKit

URLRequestConvertible 잘 사용해보자

앱의 크기가 커짐에 따라 네트워크 스택을 구축하면서 일반적인 패턴을 채택하는 것이 중요합니다.이때 중요한 부분은 요청을 라우팅하는 방법입니다.Alamofire의 URLConvertible 및 URLRequestConvertible 프로토콜과 함께 Router 디자인 패턴이 이를 도와줍니다.“라우터”는 요청의 “경로” 또는 요청의 구성 요소를 정의하는 타입입니다.구성 요소에는 URLRequest의 요청을 만들기 위한 파라미터, 메소드 등이 포함될 수 있습니다.

iOS/UIKit

[Swift/RxSwift] flatMap VS flatMapLatestFrom, 뭐가 다를까?

flatMap flatMap 연산자는 들어오는 모든 Observable을 병렬로 구독하고, 이들 각각에서 방출되는 모든 아이템들을 단일 Observable 스트림으로 합칩니다. 만약 여러 Observable들이 동시에 아이템을 방출할 경우, flatMap은 이들 아이템들을 순서와 상관없이 즉시 방출합니다. 이는 동시에 여러 작업을 처리하고 각 작업의 결과를 계속 관찰하고 싶을 때 유용합니다. flatMapLatest flatMapLatest 연산자는 새로운 Observable이 들어올 때마다 이전에 구독한 Observable을 취소하고 새 Observable만을 구독합니다. 항상 최신 결과만을 처리하고 싶을 때 사용됩니다. 즉, 새로운 데이터나 요청이 들어올 때 이전 데이터는 더 이상 중요하지 않고 오직..

iOS/UIKit

[Swift] Localization, 앱 현지화하기 (1)

🤔 현지화가 왜 필요할까? 앱스토어는 175개의 지역에 40개의 언어로 전 세계 사용자들에게 서비스를 제공합니다. 앱을 그 나라의 문화와 언어에 적합하게 만든다면 더 많은 이용자를 유입시킬 수 있겠죠! 배포한 앱이 여러 나라의 언어를 지원한다면 각국의 사용자들의 대한 통계 및 정보들도 확인할 수 있죠! 흠... 그렇다면 그냥 언어를 번역만 하면 되잖아? . . . 라고 생각한다면 오산입니다! 언어 외에 고려해야 할 부분들이 있습니다 🌏 다양한 현지화의 예시 아랍 문화권의 RTL 대표적으로 재미있는 예시를 들어보자면, 아랍권 문화에서는 Left To Right가 아닌 Right To Left로 글을 읽습니다 별점 표시도 왼쪽에서 오른쪽으로 채우는 것이 아니라 그 반대인 오른쪽에서 왼쪽으로 채웁니다. 참 신..

iOS/UIKit

[Swift] 오픈소스 라이브러리 사용하기 (2): Kingfisher로 URL 이미지 다운로드하기

오늘은 오픈소스 라이브러리인 Kingfisher를 이용해 웹 URL 이미지를 불러와볼게요! 오픈소스 라이브러리를 이용하면 더욱 간단하고 활용성 높게 코드를 작성하고 강력한 기능들을 확장하여 사용할 수 있어요! Kingfisher란? Kingfisher는 이미지 다운로르 및 캐싱 라이브러리예요. URL을 통해 이미지를 비동기적으로 다운로드하고 캐시에 저장해 나중에 재사용할 수 있도록 도와주죠. 앱을 이용하면서 서버에서 이미지를 다운로드하고 화면에 표현하는 경우가 아주 많습니다. 이 과정에서 네트워크 연결이 느리거나 이미지를 반복해 다운로드해야 할 수 있어요. Kingfisher는 캐시를 사용해 다운로드한 이미지를 저장하여 다운로드를 더 효율적으로 처리하는데 도움을 줘요. 즉, URL로 외부 이미지(웹 이미..

iOS/UIKit

[Swift] 동적으로 셀 높이 가져오기! automaticDimension : TableViewCell의 Dynamic Height

1. 오토레이아웃 설정하기 오토레이아웃에서 heigt을 잡아버리면 적용될수없다! 주변을 여백으로 설정해야함.... 2. Label의 numberOfLines 0 3. automaticDimension

iOS/UIKit

[Swift] 알림창 Alert 띄우기, UIAlertController

오늘은 아래와 같은 알림창을 띄워보겠습니다! alert은 즉시 중요한 정보를 사용자에게 전달하는 역할을 합니다! https://developer.apple.com/design/human-interface-guidelines/alerts Alerts | Apple Developer Documentation An alert gives people critical information they need right away. developer.apple.com 스토리 보드에 버튼을 하나 불러오고 이 버튼을 누르면 alert창이 뜨게해보겠습니다! control을 누른 상태로 Button에서 ViewController 파일까지 드래그합니다. 원하는 변수명을 짓고 Connection은 Action으로 선택하여 새로운..

iOS/UIKit

[Swift] 앱의 기본 모드를 Dark mode, Light mode로 변경하기

앱의 기본 모드를 Dark mode로 변경하고 싶습니다. Xcode 좌측 네비게이터 영역에서 lnfo.plist를 선택합니다. Information Property List에 Appearance를 추가합니다. Appearance의 Value값을 Dark로 지정합니다. 이제 디바이스가 Light mode인 상태로 앱을 실행해도 Dark mode로 앱이 실행됩니다. 반대로 앱의 기본 모드를 Light mode로 지정하고 싶다면 Appearance의 Value값을 Light로 지정합니다

iOS/UIKit

[Swift] 오픈소스 라이브러리 사용하기 (1), 패키지 관리 도구, 버전 규칙

OpenSource 일반적으로 오픈소스는 소프트웨어의 공개된 소스 코드로 누구나 자유롭게 사용할 수 있는 형태를 말합니다. 원하는 기능이 담긴 코드를 불러와 더 빠르고 편리하게 프로젝트를 만들 수 있습니다! Q. 오픈소스에도 저작권이 있나요? A. 네! 이용하는 오픈소스의 저작권의 라이센스를 확인해보세요! ex) MIT license Q. 만약 이용했던 라이브러리를 제작한 사람이 삭제하면 어쩌죠? A. 사용이 어려워집니다. 주기적으로 확인해줘야해요🥲 Dependency Manager( 패키지 관리 도구 ) ⭐️Cocoapods (코코아팟)⭐️ 장점 : 대부분이 지원함 단점 : 설치와 빌드의 속도가 느림 Carhage (카르타고) 장점 : 속도는 빠름 단점: 지원을 많이 하지 않아 사용성이 낮음 ⭐️swi..

iOS/UIKit

[Swift] User Interaction Enabled, 응답하지 않는 뷰 활성화하기

View에 ImageView를 중첩하여 올려놓습니다. 보다 더 잘 보이게 하기 위해 View의 backgroundColor는 Yellow를, ImageView의 backgroundColor는 Purple을 지정했습니다 또한 각각 tap Gesture를 적용시켜 View를 누르면 Tap UIView가 출력되게, ImageView를 누르면 "Tap UIImageView"가 출력되게 합니다 시뮬레이터를 실행시키고 각각을 눌렀을 때를 예측해보자면 노란색을 누르면 "Tap UIView"가 출력되고 보라색을 누르면 "Tap UIImageView"가 출력돼야 할 것 같습니다! 이제 시뮬레이터를 실행해서 확인해 봅시다! 오잉? 보라색 부분을 아무리 눌러도 왜 "Tap UIView"로 출력되는 걸까요? UIImageVi..

쨈미니
'iOS/UIKit' 카테고리의 글 목록