![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yuTDh/btsjtA9EFe1/qZC8uad6b14mjofOpKXr41/img.webp)
이번 포스트에서는 실생활에서 많이 쓰이는 블루투스 통신의 기본을 알아볼까합니다. 블루투스의 경우에는 내용이 많기도 하고 두가지로 나누어 설명하는게 좋을것 같아서 1편 CBCentralManagerDelegate 2편 CBPeripheralDelegate 으로 나누어 진행하겠습니다. CBCentralManagerDelegate 주변 장치의 검색 및 관리를 위한 업데이트를 제공하는 프로토콜 간단히 말씀드리면 이 친구는 블루투스 장비를 검색하고 연결하는 걸 도와주는 친구입니다. CBPeripheralDelegate 주변 장치의 서비스 사용에 대한 업데이트를 제공하는 프로토콜 마찬가지로 간단히 말씀드리면 이 친구는 연결된 블루투스 장비와 통신하는 걸 도와주는 친구입니다. 일단 이번에는 블루투스 기기를 찾아 연결..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/mhK2b/btsijnZcSuV/DHj4195QMCKZoJRrxcsIW0/img.png)
2023.05.19 - [여러가지/기타] - 농담으로 한 말이 이렇게 되었습니다. 농담으로 한 말이 이렇게 되었습니다. 잠깐 지금 일이 커져서 진심으로 만들고 있는 개발팀입니다. HTML 삽입 미리보기할 수 없는 소스 ========================================================== 크롤링용이라 딱히 의미는 없습니다. 연습용이기때 world-of-larooly.tistory.com 이렇게 일이 진행될 줄은 몰랐는데 이왕 이렇게 된거 간단히 해봅시다. 일단 저는 위 페이지에 있는 식당 리스트를 가져와서 랜덤으로 찍어주는 함수를 만들꺼에요. (이렇게 만들면 서버 따로 안만들고 저것만 변경해서 식당리스트를 제 맘대로 관리할수있으니까요) 근데 그전에 잠깐 지금 무엇을 하는..
허허 일단 방식이 점점 계획에서 했던 걸 기록하는 걸로 바뀌는 느낌이긴 한데 일단 작성해봅시다. 일단 계획 1. 웹 크롤링-> 햇음 2. 블루투스 (1탄 2탄 나누어 작성할 계획) -> 햇음 3. 지금 위젯을 할지 워치를 할지 고민되긴하는데 둘 중 하나는올리긴 할것같다 (근데 애플워치가 없..) 4. 안드로이드쪽은 코드만 올릴지 어떻게 할지 고민좀 일단 계획(?)은 작성했으니 한달간 봅시다 놀랍게도 자연스럽게 잊혀진 게 몇개있는데 그들은 나중에 이야기 하자 (브릿지라던지 커스텀 뷰 라던지 태그UI 만드는 법이라던지) 지금 여태까지 까먹은게 있는데 1. 판별식 2. 웹 브릿지 3. 태그 UI -> 작성함 4. 커스텀 UI 번외 기본 창 모두 닫기 -> 이거 편한데 포스팅을 따로 한적이 없는것같아서 올림 대..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/SA7sX/btsibp2lHe8/4pJIeXmKr5EFMiAGoXZ02K/img.png)
정말 보기 드문 리젝 사유를 제가 보게 될 줄은 몰랐네요;;; 일단 리젝 메세지 먼저 보여드릴께요. App Store Improvement Notice -> 직역하면 앱스토어 개선 안내 입니다. 왜 발생했나요? -> 무려 회사에서 3년간 아무런 업데이트를 안하고 방치(?) 해둔 앱에서 온 경고 문구입니다. -> 최소 다운로드수를 채우지 못하고 아무런 업데이트가 없었기 때문에 앱을 내리겠다는 경고입니다. -> AppStore Connect 에서 갑자기 빨간줄 떠있어서 저도 그때 알았습니다. 그럼 어떻게 하죠? 방법은 여러가지가 있는데 이 앱을 어떻게 하느냐에 따라 다릅니다. * 방법 1 : 해당 앱을 포기한다. -> 이경우에는 그냥 냅두시면 90일 정도 후에 알아서 앱스토어에서 내려갑니다. * 방법 2 :..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bCE7Op/btsg86iLfRr/QYjytHne2PKecwUdiGBYLK/img.png)
사실 서버랑 통신하는게 아니라서 분류가 애매하긴 하지만 일단은 실제 서버랑 통신 시 참고하면 좋을 것 같아서 통신으로 분류했습니다. 그전에 Local Push Notification 이 어떤 걸 말하는 걸까요? Local Push Notification - 서버와 통신하지 않고 자체적으로 알림을 만들어 보내는 것을 의미합니다. - 예를 들어 단순 특정시간이 되었을때 알람이 오게 하고 싶다면 굳이 서버와 통신을 하지 않아도 만들 수 있습니다. - 이 방법은 앱에서 다이렉트로 APNS 에 요청하는 방식입니다. APNS(Apple Push Notification Service) - iOS 대부분의 Push 서비스는 APNS 를 거쳐서 전송되게 됩니다. - APNS 는 애플에서 직접 제공해주는 푸시 서비스 입니..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/8FrLc/btsg0W14vMS/hgqwolQwTx1yM2nyz1d6lK/img.png)
일단은 인터넷과 연결이 되어야 하는 부분이기 때문에 통신으로 분류했습니다. Xcode 14 이상 부터 나타난 경고인데 여러가지 상황에서 웹뷰(WebView)나 특정 Url 에서 정보를 가져와야 할때 보라색으로 Xcode 에서 경고를 보여주더라고요 사실 기능 자체에 문제가 되는 부분은 아니지만 떠 있으면 신경쓰이다보니 해결 방법에 대해 알아봅시다. * 뜨는 이유 - 안내 문구를 보면 해당 주소로부터 데이터를 가져오는 과정을 메인 스레드에서 진행이 되게 되어있는데 이럴 경우 해당 사이트에서 데이터를 가져오는 동안에는 메인스레드를 쓸 수 없기 때문에 사용자 입장에서는 마치 멈춘 것 처럼(Unresponsiveness) 보이게 되니 URLSession 으로 다르게 처리하라는 겁니다. * 해결 방법 - 경고문에 ..
잠깐 지금 일이 커져서 진심으로 만들고 있는 개발팀입니다. 누가 지금 점심 먹을 식당을 랜덤으로 뽑아주는 로직을 만들어 달라고 해서 꼭 이상한 부분에서는 진심인 사람들.... ========================================================== HTML 삽입 미리보기할 수 없는 소스 ========================================================== 크롤링용이라 딱히 의미는 없습니다. 연습용이기때문에 그냥 열어두겠습니다. 참고로 위 부분은 html 로 삽입해서 넣었습니다. 실제 코드는 아래처럼 되있습니다. ??? ???