HTML을 NSAttributedString으로 변환하기
화면에 노출하는 데이터 중에 문자열을 다루는 데이터가 많다. 그중에 특정 문자열의 텍스트 스타일을 입혀서 보여주는 경우가 있는데, 보통 HTML을 가지고 포맷하는 경우가 많다. 이때, swift에서 HTML을 NSAttributedString으로 변환해서 보여줄 수 있다. 예를 들어 아래와 같이 HTML이 있다면: "<b>Hello<...
화면에 노출하는 데이터 중에 문자열을 다루는 데이터가 많다. 그중에 특정 문자열의 텍스트 스타일을 입혀서 보여주는 경우가 있는데, 보통 HTML을 가지고 포맷하는 경우가 많다. 이때, swift에서 HTML을 NSAttributedString으로 변환해서 보여줄 수 있다. 예를 들어 아래와 같이 HTML이 있다면: "<b>Hello<...
벌써 1년의 반이 지나갔다. 원래는 연말마다 1년 회고를 쓰려고 했는데, 요즘 주간 회고를 하고 있고 회고의 중요성을 많이 깨닫고 있어서, 늦게나마 상반기 회고를 작성하게 되었다. 앱 용량, 빌드 속도 줄임 한 프로젝트를 4년 넘게 보니깐 해결해야 하는 숙제들이 많이 쌓여갔었다. 프로젝트가 운영한지 오래되기도 했고, 앞으로도 더 많은 개발자들이 함...
일반 Text나 Image을 사용하면 탭 제스처를 추가해서 탭 했을 때의 동작을 정의할 수 있다. 하지만 VStack이나 HStack 같은 container view에 제스처를 추가하면 생각처럼 잘 안될 때가 있다. 예를 들어, HStack 안에 Image와 Text 사이에 Spacer를 넣었다면, Spacer 영역을 탭 했을 때, 원하는 탭 제스처가...
iOS에서는 사용자 설정 같이 정보량이 적은 데이터들을 앱이 설치되어 있는 동안 저장하여 사용할 수 있습니다. 바로 UserDefaults를 사용해서 저장하는 방법입니다. UserDefaults는 integer, boolean, string, array, dictionary, URL 같은 타입들을 저장할 수 있습니다. let defaults = Us...
Xcode Playground 생성해서 간단한 코드를 실행하려고 하는데, 아래와 같이 에러가 발생해서 실행이 안 되는 것을 발견했다. Failed to launch process. Failed to attach to stub for playground execution: error: attach failed ((os/kern) invalid a...
스위프트에서 문자열 배열을 하나의 문자열로 결합하는 간단한 메소드가 있습니다. 바로 joined()입니다. let array = ["고양이", "강아지", "햄스터"] let joined = array.joined(separator: ", ") print(joined) // Prints "고양이, 강아지, 햄스터" separator 파라미터를 이...
해당 글은 Quick way to open a Custom URL Scheme in iOS Simulator 참고하여 작성한 글입니다. 애플에서 커스텀 URL 스키마(이하 custom URL scheme)를 이용하여 앱의 특정 페이지를 여는 방법을 제공합니다. 특정 custom URL scheme을 탭 하면 앱이 열리게 되는데, 테스트하는 방법은 ...
이상하게 iOS 15에서 특정 페이지로 스크롤 할 때, 크래시가 발생하는 일이 생겼습니다. iOS 15 미만 기기에서는 발생하지 않았는데, iOS 15에서만 발생하여 iOS 15에서만 UIPageViewController가 내부적으로 특이하게 동작하는 것 같았습니다. 크래시가 발생하는 부분은 아래 코드 부분이었습니다. setViewController...
NavigationView SwiftUI에서 NavigationView를 이용해서 유저가 navigate 하면서 여러 화면들을 이동할 수 있게 할 수 있습니다. 아래 예시 코드에서 Text를 NavigationView로 감쌌는데, 감싼 후에 Text가 아래로 이동한 것을 볼 수 있습니다. struct ContentView: View { va...
벌써 2021년이 끝나간다. 시간이 빨리 지나간 것처럼 올해는 정말 많은 일이 있었고 바쁘게 지나간 것 같다. 작년에는 3년의 개발 생활을 회고했는데, 올해는 개인적인 일들이랑 같이 회고하려고 한다. 일과 개발, 스터디 회사 일은 늘 바쁘다. 빠르게 성장하고 더 높게 뛰기 위해 급하게 혹은 빠르게 개발해야 하는 일들이 있었다. 지금은 스쿼드 체계로 ...