이제까지는 wireframe 작업이 필요하면 거의 손으로 그렸다. 내가 하고 싶은 걸 빨리 빨리 적용시키는데는 직접 손으로 그리고 지우고 하는게 빠르고 맘편했다. 그런데 이번 프로젝트를 진행하면서 다음과 같은 이유들로 wireframe을 사용해보기로 했다. 1. 문서화에 신경을 쓰기 위해, 2. 같은 팀원에게 진행 상황을 지속적으로 알리고, 피드백을 받기 위해 내가 사용한 kakao oven mockup이 좋은 점은, 1. 무료라는 점 : 가난한 학생이니까... 2. 다른 유명한 tool들과는 다르게 web 기반이라는 점 : 그래서 공유하기 좋다. 3. 쉽다는 점 : 인터페이스가 매우 직관적이다. 4. 매우 파워풀한 기능들이 있다는 점 작업이 한결 수월하고, 빠르다!
Login을 구현하면서 가장 많은 시간을 썼던게, android http 통신할때 server의 주소를 정확히 명시하는 일이었다. 필자는 하나의 pc로 node.js server를 돌리고 client를 test했고, 이런 상황에서는 localhost로 http request를 보내야 하는게 상식적이다. 꽤 오랜 시간동안 다음과 같은 log와 싸워야 했다. -> client에서 잘 가는데 서버에서 받을 줄을 모른다. (분명 서버는 잘 돌아가고 있고, 하염없이 request를 기다리고 있는 상태....) public static final String BASE_URL = "http://localhost:4903"; 나는 당시 BASE_URL을 다음과 같이 쓰고있었다. 그런데 구글링 하던 중 다음과 같은 글을..
beacon 시행착오를 본격적으로 시작하기 전에 기본 뼈대도 맞출겸, 잠시 코딩하며 쉬어갈겸해서 로그인을 구현해봤는데 생각만큼 쉽진 않았다. 수많은, 크고 작은 error들과 마주했고, 구글링 생각 구글링 생각 끝에 결국 해냈다. 지금부터 하나하나 정리해 보려 한다. 우리가 필요한 정보들만 받을 수 있도록 간단하게 구성했다. : android client와 server와 http통신으로 RESTful하게 통신하기 위해 retrofit을 사용했다. (속도면에서나, 빈도수면에서나 가장 강력한것 같다.) 1) Internet permission 2) Service Interface : retrofit에서 중요한 역할을 담당하는 service api가 먼저 정..
꽤 자주 쓰기도 했고 익숙하지만, Beacon 사용하면서 background에서 돌릴 필요성이 있어서, Service를 다시한번 정리해봤다! 서비스를 시작하는 방법은 아래 2가지 이다. startService() 를 이용하는 방법bindService() 를 이용하는 방법 이렇게 시작방법이 다른 애들은 다른 life cycle 을 갖는다. startService() 로 시작된 service 는 혼자서 잘 돌다가 stopSelf() 를 호출해서 스스로 멈춰야만 한다. 다른쪽에서 stopService() 를 이용해서 이 service 를 멈출 수도 있다. bindService() 를 통해서 생성된 service 는 조금 다르다. 보통 이 bindService() 를 호출하는 쪽을 c..
: Beacon을 우리 system에 맞게 최적화 시키기 위해서는 멀고 험한 testing 과정이 요구될 것으로 보인다. 1. 실제 적용하고자 하는 대형마트(홈플러스, E-mart 등)를 먼저가서 '매장 구조', '실제 거리', '고객 동선 추이'를 측정 및 예측하는 작업 2. 상황에 맞는 최적화된 parameter값 설정하기 위한 testing scan period : 몇초간 scan할건지. (default: 1s) scan sleep period : 몇초간 쉴건지. (default: 10s) ranging timeout : ranging은 주변 비콘을 계속 탐색하는 기능인데, monitoring중에 ranging을 할 경우, 배터리 소모를 줄이기 위해 timeout이 걸려있다. (default: 10s)
Reco beacon은 Memeber center에 'serial number', 'configuration code'를 등록하면 sdk를 제공받을 수 있다. 제공되는 SDK에는 sample app이 있는데, 조금 복잡한듯 보이지만 뜯어보면 크게 다음과 같은 구조로 되어있다. 1. 먼저 BeaconManager로 Service를 실행시키고, 2. Monitoring이나 Ranging callback을 받아낸다. 이런식으로 callback을 주더라. /** *------------------------ 1. Monitoring callbacks ------------------------ */ @Override public void didEnterRegion(..
1. 현재까지 나온 Beacon framework apple - iBeacon Google - Eddystone 2. Beacon 통신 최소 사양 Android 4.3+ (API 18 : Jelly Bean) bluetooth 4.0 ( 갤럭시로 치면 S3 이상 ) 3. API 구글에서 Eddystone API와 Demo app 소스를 제공하고 있음, (Android studio기반 5.1(Lollipop)이상) https://github.com/google/beacon-platform/tree/master/samples/android https://developers.google.com/apis-explorer/?hl=en_US#p/proximitybeacon/v1beta1/ 4. Beacon에서 주는..
Beacon을 이용한 대형마트 monitoring system : Beacon이라는 IoT기기를 사용하여 대형마트 고객들의 동선을 파악하고, 축적된 data들을 기반으로 고객 집단의 추이를 파악한다. BLE(Bluetooth Low Energy) 기반 블루투스 통신을 이용하게 되고, 주된 기능은 크게 2가지이다. 1. Couponing : 앱을 다운받은 고객이 각 코너를 지나가면 beacon이 이를 인식하여 count한다. 이때 해당 코너에 머물고 있는 시간과 weight값을 줘서 값을 메긴다. 그리고 해당 고객이 일정 시간이상 매장에 머물거나, 매장을 빠져나갈때 가장 많이 머문 곳에 대한 쿠폰을 mobile device로 뿌려준다. 일종의 앱을 받아야 하는 동기부여로 작용할 수 있다. 2. Monito..
1. Problem 위와같이 코드를 짰는데 뭔가 이상했다. 일반적인(?), 내 의도대로라면, Log가 log 1~8까지 차례대로 찍혀나가야 했는데 결과를 보니 그렇지 않았다. 아래처럼 onResponse()/onFailure() callback이 가장 나중에 call 되더라.생각해보면 Callback method를 이용한 asynchronous한 처리이기 때문에 당연한 일이다. 한마디로 main thread는 결과를 기다리지 않고 제 갈길을 계속 가는 거다. 그런데 나는 server로부터 return되는 response값에 따라 다른 처리가 필요했기에완전히 synchronous하게 처리해야 했다. 2. Solution : 찾아보니까 retrofit은 동기/비동기 처리를 모두 지원한다고 한다.(참고: re..
SQLite로 생성한 local db 파일을 보기 위해선 DDMS를 실행한 후 data/data/[해당 package 명]/database/.db로 찾아들어가라고들 말하죠. 하지만 문제는! 안드로이드 폰을 USB로 연결해서 테스트해보면 'data폴더가 텅 비어있는 것'을 발견할 수 있습니다 !! 하지만 그건 사실 비어있는게 아니라 해당 디렉토리에 접근하지 못하는겁니다. 안드로이드 디바이스는 자체적으로 'data'디렉토리에 접근 할 수 없도록 막혀 있는데요, 해당 디렉토리에 접근하기 위해서는 '접근 권한'이 필요합니다. 지금부터 차근차근 따라오시면 금방 해결하실 수 있어요! (해당 문제는 adb로 테스트하면 발생하지 않습니다만, 앞으로 db파일을 까보는 일이 잦아질테..
- Total
- Today
- Yesterday
- monitoring
- 비콘
- 안드로이드
- call back
- tabLayout
- KAKAO
- 행복의 상대성
- RECO beacon
- startService
- 연동
- 카카오톡
- 책 집필
- kakaotalk
- ranging
- fragment 겹침
- Retrofit
- 카카오톡 연동
- layout_weight
- kakao oven
- server ip
- Android
- SQLPro
- wegith
- eddystone
- nodejs
- 카톡
- stopService
- call back 뺏아오기
- Beacon
- 수업교재
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |