룩앳미(포트폴리오) - 김대환

17
미미미미 미미미미미미 미미미 [email protected] https://github.com/miraclehwan/LookAt Me

Upload: -

Post on 12-Apr-2017

276 views

Category:

Business


3 download

TRANSCRIPT

Page 1: 룩앳미(포트폴리오) - 김대환

미아찾기어플리케이션

김대환[email protected]://github.com/miraclehwan/LookAtMe

Page 2: 룩앳미(포트폴리오) - 김대환

[ 개발환경 ] - Ubuntu - Apache 2.4.7 - php 5.5.9 - MySQL 5.5.49 - Android Studio - JSON

Page 3: 룩앳미(포트폴리오) - 김대환

[ 프로젝트 개요 ] - 프로젝트명 : 룩앳미

- 프로젝트 목표 : 스마트폰을 활용하여 안내방송보다 더 빠른 신속함과 전단지의 시각적인 효과인 정확성을 결합하여 더 빠른 대응

- 담당파트 : 개발

- 개발기간 : 1 개월

Page 4: 룩앳미(포트폴리오) - 김대환

[ 프로젝트 주요기능 ] - 이미지와 정보 ( 텍스트 ) 를 입력하여 신고가능

- 신고발생시 수집한 위치정보 기반으로 신고지점 근처 사용자에게 푸시알람 발송

- 신고페이지의 댓글 기능을 활용하여 실시간 제보 및 정보공유 기능

- 전체 리스트를 활용하여 모든 미아정보를 확인 가능

Page 5: 룩앳미(포트폴리오) - 김대환

[ 회원가입 ]

- 최초 접속시 FCM 을 위한 토큰생성 - 이후 접속시 닉네임 , 토큰을 서버와 비교하여 자동 로그인 - 약관동의 후 매접속시마다 GPS 가 꺼져있을 경우 알람발생 ‘ 켜기’ 선택시 GPS 설정으로 이동

Page 6: 룩앳미(포트폴리오) - 김대환

[ 메인페이지 ]

- Navigation Drawer 를 사용하여 구현 - 사용자 위치정보수집 서비스를 실행 , 서버로 10 분마다 전송 ( 휴대폰 재시작시 자동으로 서비스 실행 )

- 전화신고 , 상담전화 , 문자상담의 경우 담당기관의 연락처가 입력된 통화 , 문자 앱으로 이동 - 방문신고의 경우 현재위치에서 직선거리로 가장 가까운 경찰서의 위치와 연락처를 Dialog 로 구현 ( 연락처를 터치하여 통화 앱으로 이동 가능 )

Page 7: 룩앳미(포트폴리오) - 김대환

[ 위치정보수집 서비스 구성도 ]Main.java

PersistentService.java( Service )

최초 서비스 실행( startService )

RestartService.java( BroadcastReceiver )

onDestroy 가 호출될 때 PendingIntent 에 Action 을 추가하여 Alar-mManager 를 이용하여 BroadCast

Action 확인 후 서비스 실행( startService )

BroadcastReceiver 에 등록된‘ACTION_BOOT_COMPLETE

D’Action 을 받게될 경우

# Receiver 에 등록한 intent-filter 목록

Page 8: 룩앳미(포트폴리오) - 김대환

[ 메뉴별 기능 ]

메뉴 기능 신고내역 사용자의 모든 신고내역 확인 진행사항 사용자의 미해결 신고내역 확인 제보댓글 사용자가 남긴 댓글 확인 신고하기 미아신고 기능 내주변수신 푸시알람을 받은 신고 리스트 확인 실종리스트 모든 미해결 신고에 대한 리스트 확인 해결리스트 모든 해결 신고에 대한 리스트 확인

Page 9: 룩앳미(포트폴리오) - 김대환

[ 신고하기 ]

- 6 초마다 사용자의 위치 새로고침 ( 주소 , 시간 동일 )

Page 10: 룩앳미(포트폴리오) - 김대환

[ 신고하기 ]

- 갤러리의 이미지 첨부 - 간단한 개인정보 입력

Page 11: 룩앳미(포트폴리오) - 김대환

[ 신고하기 ]

- 자세한 정보를 입력하여 전달 - ‘ 신고’ 버튼 터치시 이미지를 ¼ 로 Decode 해서 모든 텍스트와 함께 서버로 전달 - 텍스트 , 이미지 ( 경로 ) 를 DB 에 입력하여 신고시간 15 분전 && 직선거리 3Km 이하의 모든 사용자에게 푸시알람 발송

Page 12: 룩앳미(포트폴리오) - 김대환

[ 신고내역 ]

- 사용자의 모든 신고내역 확인가능 - ListView 를 사용하여 구현 - 원하는 리스트를 선택하여 자세한 정보 확인 가능

Page 13: 룩앳미(포트폴리오) - 김대환

[ 정보보기 ]

- TabHost 를 사용하여 구현 - 사진의 줌 in/out 가능 ( Photo View 라이브러리 )

- 진행상황에 댓글로 제보가 가능하게 구현 ( ListView )

Page 14: 룩앳미(포트폴리오) - 김대환

[ 진행사항 ]

- 사용자의 신고내역 확인 가능 - ‘ 마감하기’를 선택할 경우 진행사항이 ‘ 0’ 으로 변경되며 해당 리스트는 해결리스트로 이동 - ListView 를 사용하여 구현 ( 내주변수신 , 실종리스트 , 해결리스트 동일 UI )

Page 15: 룩앳미(포트폴리오) - 김대환

[ Issue ]

Page 16: 룩앳미(포트폴리오) - 김대환

[ 사용한 라이브러리 및 사유 ]

- 일러스트와 사진을 ImageView 에 setImage 로 넣을 경우 메모리 낭비가 심하고 OOM 발생 > Glide 라이브러리를 사용하여 해결 - 사진 줌 in/out 기능 > Photo View 라이브러리를 사용 - 사진을 서버로 전송 시 사진의 용량 때문에 전송이 오래 걸림 > Apache http 사용 > 사진을 ¼ 로 Decode 한 후 전송 - 구글 거리계산 API 를 사용하려고 하였으나 일일쿼리제한과 경찰서의 경우 300 번의 비교가 필요하므로 속도면에서 느리다고 판단 > 국토지리정보원에서 제공하는 거리계산 함수를 서버에 php 로 구현

Page 17: 룩앳미(포트폴리오) - 김대환

[ 개선해야할 점 ]

- 변수명 및 리소스 ID 에 대한 네이밍을 고려하지 않은 점 - 어플의 깊이를 고려하지 못한 점 > 메인페이지를 Fragment 로 구현하여 Navigation Drawer 에서 메뉴선택시 해당 Fragment만 replace 하여 깊이를 줄임 - 사진이 ¼ 로 decode 되기 때문에 화질이 안 좋을 경우 더 나빠짐 > 화질이 안 좋은 사진은 대부분 용량이 작은 점을 고려하여 기준용량을 정하거나 용량별로 나눠서 ½ , ¼ … 로 사진을 decode 하여 화질 부분을 개선