
안녕하세요. WKWebView로 웹뷰를 개발하고 있습니다. 실서버에 호스팅하고 안드로이드 웹뷰로도 배포하고 있는 웹프로젝트가 있습니다. 이제 ios 버전도 출시계획이 있기 때문에 swift로 WKWebView를 개발하는 중 안드로이드와 다르게 링크를 길게 누르면 프리뷰(?)와 같은 미리보기 창이 보이면서 사파리 웹뷰로 이동할수 있습니다. 허나 저의 앱은 웹뷰이기 때문에 앱에 상당히 많은 링크가 있고 사용자가 의도하지 않게 길게 누르게 되면 위와 같은 오픈 링크 탭이 나와 오히려 불편을 초래할 수 있습니다. 사실상 왠만한 웹뷰 앱에서 저 기능을 비활성화하는 경우가 많습니다. 사용자가 굉장히 불편하기 때문이죠. 위의 기능을 영어권 국가에서는 long touch open link 또는 long press op..
여러 작업을 하나의 요청으로 처리할때 많은 시간이 소요되는 경우가 있습니다. 작업의 선후관계가 중요하지 않고 각각의 작업들이 독립적인 상황이라면 이를 비동기로 처리하여 요청에 대한 시간을 절약하는것이 좋은 방법이 될 수 있습니다. 저의 경우에도, 채팅을 하는 어플리케이션에서 소켓을 통해 상대방과 대화하고 상대방이 메세지를 안 읽은 상태이면 이를 푸시알림을 보내주게끔 구현을 했었습니다. 허나, 푸시알림을 보내는 과정에서 시간이 상당히 소요되어 채팅을 하는데 메세지가 2~3초 뒤에 표시되는 현상이 나타났습니다. 따라서 이를 비동기를 통해 메인쓰레드에서 소켓을 통해 채팅하고 DB에 메세지를 넣는 작업을 하고 새로운 쓰레드에서 푸시알림을 보내게끔하여 요청에 대한 응답을 빠르게 할 수 있었습니다. 이런식으로 비동..
스프링에서 로깅을 해주는 logback을 통해 로그를 찍고 있었는데 똑같은 로그가 굉장히 많이 찍혀서 당황한적이 있다. 혹시 무엇이 잘못되었나, 스케줄링 작업에서 여러번 로그가 찍힌것이 확인되었는데 혹시 쓰레드가 여러개 생성되서 똑같은 동작이 여러번 작동되었나 걱정했었는데, 로그내용을 자세히 보니 로그마다 내용이 달라지지 않고 똑같은걸 보니 같은 동작이 여러번 작동된것 같지는 않고 logback에 대해 알아보니 logger는 기본적으로 정의한 패키지의 상위로부터 모든 appender를 상속받는다고 합니다. 따라서 로거가 여러개 찍히는 경우가 생기곤합니다. 성능에는 큰 상관이 없지만, 아무래도 로그가 여러개 찍히는것이 보기는 좋지 않으므로 중복로그를 제거하려면 아래와 같이 additivity="false"..

안녕하세요. 화면 확대 축소 기능은 어플리케이션 사용자들에게 중요한 기능입니다. 작은 글씨를 확대해서 자세히 볼 수 있고, 이미지를 확대하여 볼 수도 있습니다. 하지만 줌 속성이 오히려 화면의 레이아웃을 방해하는 경우도 있습니다. 예를 들어 html의 input 속성처럼 텍스트를 입력받는 태그에 포커스를 주면 자동으로 확대 되는 경우가 있습니다. 포커스를 받을때 화면이 확대되고 포커스를 다시 다른곳에 준다고해서 화면이 원래 대로 돌아오지 않기 때문에 사용자가 직접 다시 줌 아웃을 해서 정상 화면으로 돌아와야합니다. 화면을 확대할 필요가 없는 경우에는 상당히 불편할 수 있습니다. 이러한 불편함을 없애기 위해 화면 확대 및 축소 기능을 비활성화 할 수 도 있으며, 현재는 많은 어플리케이션이 확대 축소를 비활..

우리는 이전에 파이어베이스 클라우드 메세지를 통하여 iOS앱에 푸시알림을 보내봤습니다. 지난번 포스팅에 이어지는 내용입니다. 설정 또한 지난번 포스팅해서 설정한 내용을 그대로 이어나갈 예정이오니 이전의 글을 안보신 분들은 이전의 포스팅을 보고 오시는걸 추천드립니다. developer111.tistory.com/42 [iOS] 푸시알림 클라우드 메세지 보내기[1] (APNS, 파이어베이스) iOS에서 푸시알림 기능 사용해보겠습니다. 파이어베이스 document에서 나온 설명을 기반으로 구현해볼 예정이며 안드로이드와는 다르게 인증해야할 부분이 많이 있습니다. iOS에서 푸시 알림은 APNS developer111.tistory.com developer111.tistory.com/43 [iOS] 푸시알림 클라..

이번 포스팅은 인증설정 부분입니다. 프로젝트 설정과 xcode 설정은 지난번 포스팅에서 하였으니 처음부터 따라하실 분들은 아래 포스팅을 참조해주세요. developer111.tistory.com/42 [iOS] 푸시알림 클라우드 메세지 보내기[1] (APNS, 파이어베이스) iOS에서 푸시알림 기능 사용해보겠습니다. 파이어베이스 document에서 나온 설명을 기반으로 구현해볼 예정이며 안드로이드와는 다르게 인증해야할 부분이 많이 있습니다. iOS에서 푸시 알림은 APNS developer111.tistory.com 자 이제 애플 인증 설정을 하겠습니다. 애플 개발자 사이트 developer.apple.com/ Apple Developer There’s never been a better time to ..

iOS에서 푸시알림 기능 사용해보겠습니다. 파이어베이스 document에서 나온 설명을 기반으로 구현해볼 예정이며 안드로이드와는 다르게 인증해야할 부분이 많이 있습니다. iOS에서 푸시 알림은 APNS(Apple Push Notification Service)를 통해 이루어지며 이때 인증서와 키가 필요합니다. 파이어베이스를 사용하여도 파이어베이스가 APN인터페이스를 구현하고 있기 때문에 우리는 결국 APNS를 거쳐 푸시알림을 보내게 되는 것입니다. 따라서 파이어베이스를 사용해도 인증서와 키가 필요 합니다. 이제부터 하나씩 구현을 해보겠습니다 파이어베이스에 프로젝트 등록 먼저 파이어베이스 콘솔에 들어가주세요. 그리고 ios용 앱을 등록하겠습니다. 앱 번들 ID는 iOS 프로젝트의 패키지 이름입니다. 나머지..

안녕하세요. 스위프트로 웹뷰를 개발하는 도중 전화번호, 주소, 이메일에 자동으로 링크가 걸려 있어 이를 비활성화 해야 했습니다. 저는 모든 a태그에 로딩바와 같은 페이지 전환 효과를 구현해놨기 때문에, 실제로 페이지 이동 목적이 없는 a태그는 제거해야 하는 상황이었죠. 구글에 많은 글들이 이러한 자동 링크를 비활성화 하는 방법으로 아래와 같은 코드를 적어놨습니다. 위의 메타 태그를 웹페이지에 추가하는 것인데, 모바일 사파리에 웹에서는 시도해보지 않았지만 WKWebView에서는 저 방법은 작동 되지 않습니다. 그러나 코드 없이도 자동 링크를 비활성화 할 수 있습니다. 위의 이미지에서 제가 빨갛게 동그라미 쳐놓은 부분의 Phone Number와 Address, Calendar Event, Tracking N..