집요정 도비의 일기
I was doing a project that consisted of getting streams from AXIS web cams. I had two functions to implement ; First, play the live stream, Second, play a portion of the live stream's history. The AXIS web cam uses digest auth for authenticating it's stream. The first step was easily done by putting the stream link inside a webview. http://${userName}:${password}@${ip:port}/axis-cgi/mjpg/video.c..
1. Intro 안드로이드 개발하다보면 제일 짜증나고 시간 아까운게 xml의 뷰 컴포넌트들(버튼, 이미지뷰 등등)을 액티비티 코드와 링킹하는 findViewById 과정이다. 안드로이드 해봤으면 굳이 설명 안해도 이게 얼만큼 시간을 쓰레기통에 버리는 일인지 알 수 있다. 본인이 이에 대해 처음 찾아봤을 때는 버터나이프를 쓰라고 글들을 접했으나, 버터나이프도 결국 바인드할 변수는 선언해줘야한다. 그래서 더 찾다가 찾은게 안드로이드 스튜디오의 플러그인인 prettify다. 본인은 이를 도입한지 반년이 넘었는데, 회사 선배가 아직도 findViewById 치고 계신걸 보고 마음이 아파서 공유함. 자동으로 findViewById를 해주는 아주 간단하고 쓰기 편한 플러그인이다. 다음 움짤로 prettify님의 위..
0. Intro 개발하다보면 비동기 요청의 리스폰스를 안드로메다에서 받을 일이 생김. 대표적으로 Ble가 그럼. 예를들어 다음과 같은 순서로 ble장치로 통신을 보내고 받는 경우다. (1) View에서 유저의 버튼 클릭으로 ble전송 요청이 들어옴(2) 적절한 클래스에서 장치에 쓸 byte값을 세팅함.(3) Ble service단에서 연결된 ble장치를 향해 바이트를 씀. (4) Ble service내에서 onCharacteristicChanged에서 장치로부터 받은 콜백을 수신함.(5) 이 결과값을 처음의 view에 전달해야함. 결국 (5)를 어캐 좀 편하게 해보려고 쓰는 것이다. 필자의 경우, 이벤트 버스를 사용하지 않았을 때는 뷰의 메소드를 static으로 정의하여 처리하는 식으로 구현하였으나, 보..