Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 

Repository files navigation

20220721_124432_2 20220721_124432_3 20220721_124432_4

📋 프로젝트 정보

항목 내용
프로젝트명 MyToday
설명 날씨 오픈 API를 활용해 날씨 정보를 보여주는 안드로이드 플래너 앱
플랫폼 Android
언어 Java
IDE Android Studio
최소 SDK API 16 (Android 4.1 Jelly Bean)
타겟 SDK API 29 (Android 10)
버전 1.0
개발 기간 2020.12
개발 인원 1인

⚙ 핵심 기술 및 구현 내용

날씨 정보 조회 (OpenWeatherMap API) OpenWeatherMap의 5일 예보 REST API(/data/2.5/forecast)를 HTTP로 호출하고, 응답으로 받은 XML 데이터를 XmlPullParser로 파싱하여 날짜별 날씨 정보(날씨 코드, 아이콘, 최저·최고 기온 등)를 ContentValues로 가공합니다. 네트워크 작업은 Thread를 상속한 별도 클래스(Weather_xml_to_android)에서 비동기로 처리하고, 완료 후 Handler를 통해 UI 업데이트를 수행합니다.

ViewPager + Fragment 기반 화면 구성 StartActivity에서 ViewPager와 커스텀 FragmentPagerAdapter(MyPagerAdapter)를 사용하여 플래너의 주요 화면(오늘 할일·메모·D-Day 등)을 Fragment(Fragment_1~3)로 분리해 슬라이드 형태로 구성합니다. 페이지 위치 표시를 위해 CircleIndicator 라이브러리를 적용합니다.

할일(Plan) 및 D-Day 관리 SharedPreferences를 활용하여 할일 데이터를 로컬에 저장·불러옵니다. RecyclerView와 각 항목별 커스텀 어댑터(RecyclerAdapter_plan, RecyclerAdapter_dday 등)로 리스트를 표시하며, 팝업 액티비티(PopupActivity_plan, PopupActivity_dday)를 통해 추가·수정·삭제·미루기 기능을 제공합니다.

위치 기반 날씨 설정 PopupActivity_location에서 사용자가 직접 위경도 또는 지역을 입력하면 해당 좌표 기반으로 날씨 API를 조회합니다. 설정값은 SharedPreferences에 저장하여 앱 재실행 시에도 유지됩니다.

스플래시 화면 및 전체 화면 모드 앱 진입 시 Splash 액티비티가 표시되며, StartActivity에서는 상태바를 숨기는 전체 화면 모드(FLAG_FULLSCREEN)를 적용하여 몰입형 UI를 구성합니다.


🔑 주요 구현 포인트

  • OpenWeatherMap /data/2.5/forecast API를 호출해 5일간 3시간 단위의 날씨 데이터를 XML 형식으로 수신
  • XmlPullParser를 이용해 <time>, <symbol>, <temperature> 등 태그를 파싱하여 날씨 정보를 ContentValues로 구조화
  • Thread를 상속한 Weather_xml_to_android 클래스에서 네트워크 작업을 수행하고, Handler로 메인 스레드에 결과 전달
  • IconMatch 클래스에서 날씨 코드 번호에 따라 아이콘 리소스를 매핑하고, Weather_to_hangeul에서 날씨 상태명을 한글로 변환
  • ViewPager + FragmentPagerAdapter 조합으로 화면을 Fragment 단위로 분리하고 CircleIndicator로 페이지 위치 표시
  • RecyclerView와 커스텀 어댑터를 기능별(일반 플랜·오늘 플랜·D-Day·메모)로 분리하여 독립적으로 관리
  • PopupActivity 계열 액티비티를 팝업 형태로 구성하여 항목 추가·수정·삭제·미루기 UI를 제공
  • SharedPreferences를 사용하여 할일, 메모, D-Day, 위치 정보 등 모든 데이터를 로컬에 영구 저장
  • AndroidManifest.xmlINTERNET, ACCESS_NETWORK_STATE, VIBRATE, 외부 저장소 권한을 선언하여 날씨 API 통신 및 앱 기능 허용
  • 앱 시작 시 스플래시 화면을 표시하고, 메인 화면에서 FLAG_FULLSCREEN으로 상태바를 숨겨 전체 화면 UI 구현

About

날씨 오픈 API를 활용해 날씨 정보를 보여주는 Android 플래너 앱

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages