sookim-1

번호 : 008, 작성일자: 2024-03-25

2024.03.18 ~ 2024.03.24

📱 HTML 텍스트 표시하기 (+ Atributika 라이브러리)


모바일앱은 배포를 하게되면 수정사항이 필요한 경우 심사요청을 한 후 심사가 완료되어야 배포를 진행할 수 있다. 그런데 자주 변경되어야 하는 텍스트로 인해 여러번 배포하는 일을 피하기 위해서 서버에서 해당 텍스트를 내려줄 수 있다.

그런데, 서버에서 내려주는 텍스트의 스타일도 포함시키고 싶은 경우 HTML텍스트를 이용하면 편리하게 사용가능하다.

간단한 구현방식은 HTML텍스트를 data로 변환 후 디코딩하여 NSAttributedString형식으로 반환해주면 UILabel 또는 UITextView에 표시할 수 있다.

하지만 순서없는 목록을 표시하기 위해 <ul> , <li> 태그를 사용하는 경우 <br> 태그가 있는 줄에 bullet point가 생성되는 이슈가 있다. 기본적으로 apple에서 어떤식으로 디코딩하는지에 대한 원리를 제공하지 않기 때문에 차선책으로 Atributika라는 라이브러리를 도입하여 해결할 수 있다. Atributika를 사용하여 <li> 태그를 bullet point문자로 변환한 후 스타일을 적용하도록 하면 bullet point가 원하는 대로 생성된다.

Atributika라이브러리에 대한 글이 많지 않아 티스토리블로그에 글을 작성하여 올렸다.

🙋🏻‍♂️ 기타 사항


  1. Sentry에서 AppHanging이라는 이슈는 WatchDog 스레드에 sentry에서 제공하는 AppHangTracker를 시작하여 주기적으로 메인스레드가 제한시간내에 작업항목을 실행하는지 확인한 후 2초이상 응답하지 않으면 AppHanging 이벤트가 생성된다고 한다. Sentry 문서에서도 예외상황이 여러 가지 있다고한다. 해당 옵션은 비활성화가 가능하다.
  1. Xcode에서 변경 작업사항들을 Discard 했을 때, 복구하고 싶다면 Mac의 TextEdit(텍스트편집기)를 이용하여 복구할 수 있는 방법을 찾았다.
    1. NSTimer에서 동작한 작업이 비동기 작업인 경우 NSTimer를 종료시켜도 비동기 작업은 별개로 진행되기 때문에 비동기 작업이 완료되었을 때 NSTimer가 nil인 경우 처리를 하지 않도록 하는 방법을 찾았다.
    태그: