어디야 V2 설계

이제 local variable을 사용하여 “어디야” 앱 업그레이드를 시작해 봅시다.

어디야 V1의 문제점

사실 “어디야” 앱은 실시간으로 상대의 위치를 표시해 주지 않습니다. 상대방이 올려 놓은 주소를 표시할 뿐이죠.
상대방이 10일 전에 올려놓은 주소인데…10일 전 주소로 찾아가면 불화의 씨앗이 될지도.

이 문제를 해결하기 위해서는 어떻게 하면 좋을까요??
제 생각은 업로드시 주소와 업로드 시간을 같이 업로드하는 겁니다!
업로드 시간으로 최신 주소인지 아닌지를 알 수 있겠죠?
그렇다면 실제로 업그레이드 버전은 어떻게 작동하는지 한번 살펴보도록 하겠습니다.

업그레이드 버전 살펴보기

저번에 했었던 "어디야"의 프로젝트 파일(Where.aia)의
1. Screen1의 backgroundImage를 배포파일의 where1_splashBg_ver2.png로 바꾸고,
2. Icon 역시 배포파일 속 icon_ver2.png로 바꿉니다.
3. Screen2의 Section2_E에 label을 추가한 후, 이름을 YourTime으로 바꿉니다.

주소와 시간을 함께 저장하자

Q). 주소와 시간을 함께 저장해야 한다.
A). Join Block을 사용하여 주소, 시간을 한 덩어리로 만들어 저장하자.
오! 문제 해결?? 그러나 계속 진행하다 보면 문제가 발생합니다.

Q). 합쳐진 주소와 시간이 분리가 가능해야 한다. 어쩌지??
A). Split 블록을 사용하자. Q). 그런데 Split 블록을 사용해야 하는지는 어떻게 알았어??
A). Reference Documentation(http://ai2.appinventor.mit.edu/reference/)을 사용해서
또는 검색으로!

Q). Split 블록을 어떻게 사용해야 하는가?
A). Split 블록은 주어진 text를 분리 기준(at)을 바탕으로 나누고, 분리된 값을 List 형식으로 반환한다.
A2). 분리 기준이 필요하다. 분리 기준을 “/”로 하여 저장의 형태를 “주소 / 시간”으로 해야겠다.
A3). join블록을 사용해야 겠구나.

상대가 저장한 정보(주소/시간)를 불러와 쪼개기

이제 저장된 정보를 가져와 쪼개는 블록을 설계해 봅시다.
우선 정보를 가져와야 하고, 합쳐져 있는 주소와 시간을 분리하는 과정이 필요합니다.

List에 담겨져 있는 정보는 index값을 사용하여 불러올 수 있습니다. 아래 그림을 참고하세요.
(Lists 구역에 있는 select list item블록을 사용합니다.)
마찬가지로 index값을 지정하여 List에 정보를 담을 수도 있죠.(Lists 구역에 있는 insert list item 블록을 사용합니다.)

이해가 잘 안가시나요?
우리 한번 List와 index에 대해서 확인하고 갑시다. 중요하니까요!

댓글