큐펭스토리
파이썬 강의, 프로그래밍 문제 풀이, 지식 공유 및 정리용
기상 예보, 날씨 앱 만들기

KAIST CS442 모바일 컴퓨팅과 응용 수업 중에 나온 숙제로 만든 앱이다.

자랑할 만한 것은 아니고 그냥 학교 숙제만 내고 없애버리기 아까워서 이렇게 포스팅하게 됐다.

(실상은 지금 해야할걸 하기 싫어서 미뤄두고 딴짓중이다.)



현재 위치를 모바일 기기에 탑재된 센서 (GPS) 를 통해 알아낸 뒤, 기상 예보를 해주는 웹사이트 ( Wunderground ) 를 통해 날씨를 화면에 띄어주는 앱이다.

안드로이드를 처음 다뤄보는 나로서는 굉장히 까다로웠다.

안드로이드 API도 하나씩 찾아야했고, 저 wunderground API도 하나씩 찾아야했기 때문이다.


앱의 실제 실행 화면을 보면서 나머지를 설명하겠다.









0. Android Studio를 이용했고 Galaxy Note 2를 테스트용으로 썼다.


1. 현재 위치, 현재 시간의 날씨를 알려주는 앱이다. GPS를 이용해 local data만 얻어낸 뒤, 나머지 모든 날씨 관련 정보는 web에서 가져온다. 이후에 필요한 사진, 영상 자료들은 미리 지정해둔 icon과 mp4를 탑재하도록 했다.


2. 우상단 동영상: 앱이 실행되는 도중에 [어떤 방법을 쓰든지] 멈춰있지 말라는 조건을 맞추기 위해 항상 재실행되는 영상을 하나 넣었다. 영상은 낮밤, 구름 유무, 비가 내리는지 여부 등에 따라 서로 다른 영상을 재생할 수 있게 만들었다.


3. 상단 상자: 현재 도시, 온도, 날씨 상태, 강수 확률를 나타낸다.


4. 중앙 상자: 오늘로부터 3일 간의 간추린 날씨를 알려준다. 평균 날씨 상태, 낮 최고 기온, 밤 최저 기온, 강수 확률을 나타낸다.


5. 하단 상자: 현재 시각으로부터 5시간 동안의 간추린 날씨를 알려준다. 평균 날씨 상태, 기온, 강수 확률을 나타낸다.


6. 새로 고침은 3가지 방법으로 할 수 있다. 화면 자체를 아래로 당겨서, 안드로이드 기기 메뉴 버튼을 누른 후 뜨는 refresh 버튼을 눌러서, 우하단 붉은 refresh 버튼을 눌러서 새로고침할 수 있다.








개발 일지...


0. 레이아웃 짜는게 제일 많은 시간을 잡아먹었다. xml 이란게 뭔지 모르는 상태로 시작했는데 Relative, Linear, Swipe, Image 등등 순서를 배치하는게 머리에 곧장 들어오질 않더라. 그나마도 조교님께서 챙겨주신 책이 아니었다면 아직도 못짰을거다. ...

여전히 gravity 등의 배치는 이해가 힘들다. 언제 뭘 써야할지 사실 잘 모르겠다. layout_gravity..gravity..margin.. 에라이...

그리고 아직까지 의문인게 있다면 swipe 안에서는 ralative 만 제대로 동작하고 linear는 동작을 안한다. 새로고침 단추 액션이 뜨질 않는다. 또한 동영상을 탑재할 video도 main layout 안에 들어가질 않더라. 정확히는 swipe, relative 안에서 video 탑재가 안되더라. 왜 그런지 모르겠다. 결국 title에 집어넣은 저


1. GPS센서 쓰는 것은 책에 있는 코드를 그대로 가져온 탓에 사실상 그렇게 어렵지 않게 해결했다. 근데 알고보니 거의 대부분 [그대로] 써야지만 해결되는 부분이었기에 크게 죄책감도 들지 않았다. 휴...

무슨 권한을 얻어야하고 permission 체크를 해서 데이터를 받아야하고 등등이 있던데 아마 예제가 없었더라도 구글링을 통해 해결했으리라..


2. Web에서 json 코드를 가져오는 것도 상당히 애먹었다. 마찬가지로 internet 권한을 얻어야했고 json 파싱도 해야했다. 파싱할 작정을 하고서 조금더 알아보니 관련 method들 기능이 짱짱이었다. JSON array 뭐 이런 이름이었는데 editor가 똑똑해서 참 좋았다.


3. 새로고침 기능 여러가지로 추가하면서 마냥 재밌었다. java 코드에서 refresh를 담당할 method를 하나 만들고선 button on_click, swipe 등등 안에 다 넣었다. 이래도 되나 싶을 정도로 dependency가 높은 method가 탄생하는 순간이었다.







...마지막 제출일에는 34시간을 안자고 앉아서 밤을 샜는데...

뭐 기능 다 채웠으니까 됐다ㅜ

'Study > Android' 카테고리의 다른 글

Android Studio  (0) 2016.03.19
  Comment ,     Trackback