요즘 회사일 하느라고 진도를 못 나갔습니다.
흐름이 끊기지 않기 위해 일단 2과 완성 소스를 다운 받아서 실행해 봤습니다.
소스코드는 여기서 받으시면 됩니다.
https://github.com/udacity/Sunshine-Version-2/tree/2.09_display_data
혹은 이 github 로 가셔서 아래처럼 브랜치를 선택하면 됩니다.
2.09 display data 가 2과의 완성된 소스코드 입니다.
이 소스코드를 받은 다음 OpenWeather 앱 아이디를 제 것으로 수정한 다음에 실행했습니다.
요거 하는데도 좀 헤맸는데요. 어쨌든 됐습니다.
이 소스코드를 실행하면 처음에는 지금까지 봐 왔던 하드 코딩된 날짜들이 표시됩니다.
그런데 잘 보면 우상단에 메뉴 버튼이 있는데요.
이 버튼을 누르고 Refresh 를 선택하면 그 날씨 웹 사이트에서 현재 날씨를 받아서 표시해 줍니다.
저는 제가 사는 곳의 우편번호를 넣어서 제가 사는 곳이 표시되도록 했습니다.
Click on Refresh
그러면 날씨 웹 싸이트로 부터 아래와 같은 정보를 받습니다.
{"cod":"200","message":0.0243,"city":{"id":0,"name":"Eden Prairie","country":"US","coord":{"lat":44.8342,"lon":-93.4389}},"cnt":7,"list":[{"dt":1471888800,"temp":{"day":19.77,"min":19.77,"max":19.77,"night":19.77,"eve":19.77,"morn":19.77},"pressure":993.75,"humidity":57,"weather":[{"id":800,"main":"Clear","description":"sky is clear","icon":"02n"}],"speed":6.47,"deg":205,"clouds":8},{"dt":1471975200,"temp":{"day":26.23,"min":18.85,"max":28.32,"night":24.13,"eve":27.26,"morn":18.85},"pressure":993.82,"humidity":65,"weather":[{"id":802,"main":"Clouds","description":"scattered clouds","icon":"03d"}],"speed":6.66,"deg":192,"clouds":48},{"dt":1472061600,"temp":{"day":21.63,"min":17.19,"max":23.82,"night":17.19,"eve":22.65,"morn":20.18},"pressure":990.44,"humidity":97,"weather":[{"id":501,"main":"Rain","description":"moderate rain","icon":"10d"}],"speed":3.48,"deg":313,"clouds":92,"rain":3.3},{"dt":1472148000,"temp":{"day":19.95,"min":13.88,"max":20.64,"night":13.88,"eve":20.64,"morn":14.4},"pressure":995.57,"humidity":0,"weather":[{"id":800,"main":"Clear","description":"sky is clear","icon":"01d"}],"speed":7.56,"deg":291,"clouds":2},{"dt":1472234400,"temp":{"day":20.98,"min":10.21,"max":20.98,"night":15.51,"eve":18.56,"morn":10.21},"pressure":998.44,"humidity":0,"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],"speed":1.87,"deg":124,"clouds":86,"rain":1.08},{"dt":1472320800,"temp":{"day":18.07,"min":14.4,"max":18.07,"night":17.53,"eve":17.6,"morn":14.4},"pressure":993.44,"humidity":0,"weather":[{"id":502,"main":"Rain","description":"heavy intensity rain","icon":"10d"}],"speed":4.91,"deg":122,"clouds":98,"rain":13.41},{"dt":1472407200,"temp":{"day":20.11,"min":13.46,"max":20.86,"night":13.46,"eve":20.86,"morn":16.38},"pressure":992.58,"humidity":0,"weather":[{"id":500,"main":"Rain","description":"light rain","icon":"10d"}],"speed":3.43,"deg":343,"clouds":67,"rain":0.95}]}
이 정보를 필요한 것만 추려서 아래와 같이 표시합니다.
Weather in Eden Prairie
날씨가 좀 시원한 편이네요.
온도는 섭씨로 표시됩니다.
이렇게 표시되도록 하려면 지난번 소스에다 메뉴를 추가 하고 refresh button 을 만들어서 이 버튼을 선택했을 경우 이를 처리할 수 있도록 해야 합니다.
버튼 선택시에 지난번에 만들었던 AsyncTask 가 실행되도록 해야겠죠.
지난번에 살펴 봤듯이 이곳에서는 날씨 웹사이트에 정보를 요청한 후 이를 받아서 처리해야 합니다.
그런데 여기서 정보를 받는것은 JSON 포맷으로 받을 것이기 떄문에 이를 파싱하는 로직도 넣어야 합니다.
그리고 날씨 웹사이트에 정보를 요청하려면 Android Permission 들 중에 Internet Permission 을 Manifesto xml 파일에 세팅해야 합니다.
이 퍼미션 세팅에 대해서도 배울 겁니다.
대개 이런 기능들을 추가하면 위와 같이 작동되도록 할 수 있겠네요.
시간이 허락하는 대로 다시 이 강좌 공부를 계속 이어 나가야겠습니다.
'WEB_APP > Android' 카테고리의 다른 글
[Android] Settings - 1 - (0) | 2016.09.26 |
---|---|
Udacity 강좌 - Lesson 3 실습 01 - 다른 Activity로 화면 전환하기 - (0) | 2016.09.21 |
Android Toast 정리 (0) | 2016.09.07 |
Udacity 강좌 - Lesson 2 소스 실행 순서 따라가기 (0) | 2016.09.06 |
Udacity 강좌 - Lesson 2 실습 05 (2) | 2016.08.29 |
Udacity 강좌 - Lesson 2 실습 03 (0) | 2016.08.17 |
Udacity 강좌 - Lesson 2 실습 02 (0) | 2016.08.16 |
Android Network Connection (0) | 2016.08.11 |
Udacity 강좌 - Lesson 2 실습 01 (0) | 2016.08.10 |
Udacity 강좌 - Developing Android Apps Lesson 2 Summary (0) | 2016.08.09 |