## 2018/02/02 수정
해당 Github 소스는 현재 삭제 되었습니다.
18개월전에 만든 프로젝트라 지금 제가 볼때도 너무 말도 안되게 코딩을 해놓은게 너무 많습니다.
다시 수정할 시간에 새로 짜는게 더 빠를 것 같고,
물론 그런분은 없겠지만 코드를 따라서 작성하실까봐..... Github페이지를 지웠습니다.
(피해자 방지를 위해....)
시연연상 - https://youtu.be/zqqxHoF78SY
2. [ 개발환경 ]
- Ubuntu
- Apache 2.4.7
- php 5.5.9
- MySQL 5.5.49
- Android Studio
- JSON
3. [ 프로젝트 개요 ]
- 프로젝트명 : 룩앳미
- 프로젝트 목표 : 스마트폰을 활용하여 안내방송보다 더 빠른 신속함과
전단지의 시각적인 효과인 정확성을 결합하여 더 빠른 대응
- 담당파트 : 개발
- 개발기간 : 1개월
4. [ 프로젝트 주요기능 ]
- 이미지와 정보(텍스트)를 입력하여 신고가능
- 신고발생시 수집한 위치정보 기반으로 신고지점 근처 사용자에게 푸시알람 발송
- 신고페이지의 댓글 기능을 활용하여 실시간 제보 및 정보공유 기능
- 전체 리스트를 활용하여 모든 미아정보를 확인 가능
5. [ 회원가입 ]
- 최초 접속시 FCM을 위한 토큰생성
- 이후 접속시 닉네임, 토큰을 서버와 비교하여
자동 로그인
- 약관동의 후 매접속시마다
GPS가 꺼져있을 경우 알람발생
‘켜기’ 선택시 GPS설정으로 이동
6. [ 메인페이지 ]
- Navigation Drawer를 사용하여 구현
- 사용자 위치정보수집 서비스를 실행, 서버로 10분마다 전송
( 휴대폰 재시작시 자동으로 서비스 실행 )
- 전화신고, 상담전화, 문자상담의 경우
담당기관의 연락처가 입력된 통화, 문자 앱으로 이동
- 방문신고의 경우 현재위치에서 직선거리로
가장 가까운 경찰서의 위치와 연락처를 Dialog로 구현
( 연락처를 터치하여 통화 앱으로 이동 가능 )
7. [ 위치정보수집 서비스 구성도 ]
Main.java
PersistentService.java
( Service )
최초 서비스 실행
( startService )
RestartService.java
( BroadcastReceiver )
onDestroy가 호출될 때
PendingIntent에 Action을 추가하여
AlarmManager를 이용하여 BroadCast
Action 확인 후
서비스 실행
( startService )
BroadcastReceiver에 등록된
‘ACTION_BOOT_COMPLETED’
Action을 받게될 경우
# Receiver에 등록한 intent-filter 목록
8. [ 메뉴별 기능 ]
메뉴 기능
신고내역 사용자의 모든 신고내역 확인
진행사항 사용자의 미해결 신고내역 확인
제보댓글 사용자가 남긴 댓글 확인
신고하기 미아신고 기능
내주변수신 푸시알람을 받은 신고 리스트 확인
실종리스트 모든 미해결 신고에 대한 리스트 확인
해결리스트 모든 해결 신고에 대한 리스트 확인
16. [ 사용한 라이브러리 및 사유 ]
- 일러스트와 사진을 ImageView에 setImage로 넣을 경우 메모리 낭비가 심하고 OOM발생
> Glide 라이브러리를 사용하여 해결
- 사진 줌 in/out 기능
> Photo View 라이브러리를 사용
- 사진을 서버로 전송 시 사진의 용량 때문에 전송이 오래 걸림
> Apache http 사용
> 사진을 ¼로 Decode한 후 전송
- 구글 거리계산 API를 사용하려고 하였으나 일일쿼리제한과
경찰서의 경우 300번의 비교가 필요하므로 속도면에서 느리다고 판단
> 국토지리정보원에서 제공하는 거리계산 함수를 서버에 php로 구현
17. [ 개선해야할 점 ]
- 변수명 및 리소스ID에 대한 네이밍을 고려하지 않은 점
- 어플의 깊이를 고려하지 못한 점
> 메인페이지를 Fragment로 구현하여 Navigation Drawer에서 메뉴선택시 해당 Fragment만
replace하여 깊이를 줄임
- 사진이 ¼ 로 decode되기 때문에 화질이 안 좋을 경우 더 나빠짐
> 화질이 안 좋은 사진은 대부분 용량이 작은 점을 고려하여 기준용량을 정하거나
용량별로 나눠서 ½ , ¼ … 로 사진을 decode하여 화질 부분을 개선