/ServerTimeAPP

[App] 사이트의 링크를 입력받아 서버 시간을 알려주는 앱 for Android

Primary LanguageJava

ServerTimeAPP for Android

확인하고 싶은 사이트의 링크를 입력받아 서버 시간을 알려주는 안드로이드 앱입니다.
It is an app that shows the server time by receiving a link to the site from the user.



✨ summary

http통신을 통해 사이트에 http request를 보내고,
이후 서버에서 전달받은 헤더에 담겨져있는 서버시간을 앱 안에 출력합니다.
Send http request to that site via http. After that, the server time which is contained in the header what user received from the server is printed in the app.

📖 Introduction

수강신청이나 티켓팅을 할 때면 버튼 클릭을 언제 하냐에 따라서 희비가 오가는 경우가 많았습니다. 그럴 때마다 네이버 시계를 옆에 띄어두고 정시에 맞춰 버튼을 클릭합니다. 네이버 시계가 정확하다고는 하지만 네이버 시계와 서버의 시간이 조금씩 다를때가 있습니다. 1초 차이라 할지라도 티켓팅이나 수강신청에서는 큰 영향을 주는 부분이라고 할 수 있습니다.

따라서 이번에는 서버 시간을 알고 싶은 사이트 링크를 입력하면 서버 시간을 보여주고 이후 앱 화면을 끄고 다른 창을 켜더라도 화면 위에 위젯을 띄어주어 어떤 화면에서도 서버의 시간을 확인할 수 있게 도와주는 어플을 개발할 것입니다.

👨‍💻 System requirements

기본적으로 Android Studio에서 JAVA언어 기반으로 개발을 진행합니다.
이를위해 Android Studio 설치가 필수적입니다.
또한 안드로이드 SDK Android 8.1 오레오 API Level 29를 타겟 API로 제작합니다.

📝 Todo list

제작할 코드와 문서들입니다.

  • [💻] 메인 타이틀 (완료 ver 1.0)

  • [💻] 앱 사용 설명 출력부 (완료 ver 1.0)

  • [💻] 링크 입력부 (완료 ver 1.0)

  • [💻] 시작, 중지 버튼 구현 (완료 ver 1.0)

  • [💻] 시간 출력부 (완료 ver 1.0)

  • [💻] 안내문 출력부 (완료 ver 1.0)

  • [📗] HTTP Request를 통한 Header 수신 기능 구현 (완료 ver 1.0)

  • [📗] Header부의 date 파싱을 통해 한국 표준시로 변경하고 출력 (완료 ver 1.0)

  • [📗] 시작 버튼 클릭시 HttpRequest는 중지시까지 background 실행 (완료 ver 1.0)

  • [📗] 중지 버튼 클릭시 실행중인 background 중지 (완료 ver 1.0)

  • [📗] 클립보드에 저장되어져 있는 링크 주소 붙여넣기 버튼 (완료 ver 1.0)

  • [🔨] 오버레이 버튼 (완료 ver 1.1)

  • [🔨] 오버레이 위젯 구현 (완료 ver 1.1)

  • [🔨] 오버레이 위젯 자유이동 (완료 ver 1.1)

  • [🔨] 오버레이 위젯 크기조절 SeekBar (완료 ver 1.1)

  • [🔨] (추가) 오버레이 위젯 Setting Activity 제작 (완료 ver 1.2)

  • [🔨] (추가) 오버레이 위젯 크기조절 SeekBar를 setWidget Activity로 이동 (완료 ver 1.2)

  • [🔨] 오버레이 위젯 배경색 변경 기능 (완료 ver 1.2)

  • [🔨] (추가) 오버레이 위젯의 시간이 실시간 갱신되지 않는 문제 해결 (완료 ver 1.2.2)

  • [🔨] (추가) 오버레이 롱 클릭, 더블 클릭시 앱으로 이동 (완료 ver 1.2.3)

  • [🔨] (추가) 메인, 위젯 셋팅 액티비티에 대한 생명주기 관리 (완료 ver 1.2.4) (보완 ver 1.2.5)

  • [🔨] (추가) 오버레이 위젯의 예약 종료 기능을 위한 UI 구현 (완료 ver 1.3)

  • [🔨] (추가) 오버레이 위젯의 예약 종료 기능적 구현 (완료 ver 1.3.1)

  • [🔨] (추가) google AdMob 보상형 광고 삽입 (완료 ver 1.3.1)

  • [🔨] (추가) 위젯 셋팅 액티비티 내 google AdMob 배너 광고 삽입 (완료 ver 1.3.1)

  • [🔨] (추가) 사용자 가이드 팝업 액티비티 추가 (완료 ver 1.3.2)

  • [🔨] 오버레이 뷰 디자인 (최종 ver 1.4.0)

  • [🔨] 앱 전체적인 디자인 ( ver 1.4.0)

  • [🔨] 로고 제작 (완료 ver 1.4.0)

  • [🔒] google AdMob광고 배너 삽입 (완료 ver 1.2.1)

  • [🔓] Play Store 출시 (완료 ver 1.4.0)



☁️ Screen Shot

ver 1.0 ( commit 2020-02-14 )

메인 액티비티 구성 및 서버 시간 핵심 기능 구현




ver 1.1 ( commit 2020-02-15 )

오버레이 위젯 핵심 기능 구현
위젯 이동 구현 (출처 : http://blog.daum.net/mailss/35 )




ver 1.2 ( commit 2020-02-16 )

위젯 기능 강화




ver 1.2.1 ( commit 2020-02-17 )

메인 하단 구글 애드몹 배너 추가




ver 1.2.2 ( commit 2020-02-17 )

오버레이 위젯을 손으로 잡고있거나 이동시킬때만 시간이 갱신되는 문제를 수정. 이제 정상적으로 받아오는 서버시간에 맞춰 실시간으로 시간이 갱신되어 보여짐.




ver 1.2.3 ( commit 2020-02-18 )

오버레이 위젯을 길게 누르고 있거나 더블클릭하면 Background의 Main Activity가 foreground로 변경되며 화면에 띄움




ver 1.2.4 ( commit 2020-02-18 )

액티비티 별 생명주기 관리 및 제어




ver 1.2.5 ( commit 2020-02-19 )

  • 위젯 셋팅 액티비티 화면에서 다른 앱화면이나 홈으로 전환 후 위젯 롱, 더블클릭을 통해 서버시간앱으로 전환시 메인 액티비티의 셋팅이 제대로 로드 되지 않는 문제가 있어, 어느 화면에서 위젯의 롱, 더블클릭을 통해 서버앱을 켜도 메인 액티비티의 기존 값들이 제대로 로드 되도록 수정


  • 위젯 셋팅 후 다시 셋팅 액티비티 실행시 기존에 셋팅해 두었던 셋팅 값들이 초기화 되는 문제가 있어, 셋팅 버튼 클릭시 기존에 셋팅이 되어있으면 그 셋팅을 다시 로드 해오도록 수정



ver 1.3.0 ( commit 2020-02-20 )

위젯 예약 종료 기능을 위한 UI구현
AdMob 보상형를 위한 광고 버튼 추가
(예약종료기능은 구현중)




ver 1.3.1 ( commit 2020-02-21 )

오버레이 위젯 예약종료 기능 구현 완료
보상형 광고 구현
위젯 세팅 액티비티 내 배너광고 구현

  • 광고를 보지 않았다면, 광고보기 버튼이 / 광고를 봤지만 예약하지 않았다면, 예약하기 버튼이 활성화


  • 시간에 맞춰 예약을 하면 예약된 시간이 표기되고 시간에 맞춰 위젯과 서버 시간 받아오는 작업이 정지



ver 1.3.2 ( commit 2020-02-21 )

액티비티의 상단 이름 변경
메인 액티비티 액션바 버튼추가
사용 가이드 팝업 액티비티 추가




ver 1.4.0 ( commit 2020-02-22 )

앱 로고 아이콘 추가
위젯 버그 수정
앱스토어 출시용 소개 이미지 제작

  • 깃허브 업로드 이후 AdMob app ID, 광고ID 기존의 '테스트 아이디'에서 '개인 아이디'로 변경

> icon



앱 소개 이미지





ver 1.4.1 ( commit 2020-02-25 )

Play Store 앱 출시 후 위젯 버그가 발견되어 수정.