본문 바로가기

컴퓨터 공학 자료(학부)/App

안드로이드 첫번째 어플 개발


나는 뭐먹지? 라는 어플을 약 한달간 개발했는데
시험기간과 겹쳐서, 그리고 실수로 중간에 프로젝트를 날리는 바람에 일시 중단.
까먹기 전에 전반적인 사항을 적어둔다.

일단 어플 기능은 사용자가 현재 가지고 있는 요리 재료를 입력하면, open API로 인터넷에서 그 요리재료들로 만들 수 있는 요리 목록들을 받아오고 현재 사용자의 위치에서 가까운 맛집을 표시해주는 기능.
간단하다.
몇 개의 액티비티들로 구성되어있고 호출은 인텐트들로 하는 단순한 구조다.


첫번째 어플리케이션이 실행되는 메인화면은
main액티비티이다. 이 액티비티에서 사용자가
'요리찾기' 버튼을 누르면 그다음 액티비티로 넘어간다.

두번째 액티비티는 사용자로부터 현재 사용자가 가지고 있는 요리 재료 목록들을
입력받아, 인터넷에서 open API를 써서 찾아와서 리스트를 화면에 보여주는 액티비티이다.

그리고 두번째 액티비티에서 사용자가 근처에 가까운 맛집 이라는 버튼을 누르면
세번째 액티비티로 넘어가게되는데, 이때 구글맵 API 를 써서 사용자의 위치를
자동으로 받아온다음, 사용자가 입력한 키워드로 네이버 지역  API를 써서 위치좌표를
받아온다음에 그것을 사용자의 현재 좌표와 비교, 10km이내이면 구글맵에 뿌린다.

말로써놓고 보니 간단하지만
그렇게 쉽지는 않았다.

일단 인텐트를 써서 액티비티를 호출하는 부분
Intent data=new Intent(this.class, nextactivity.class);
이렇게 하면 현재 액티비티에서 다음 액티비티로 넘어갈 수 있다

그리고 데이터를 넘길때
처음에 스트링만 넘길수 있는지 알았는데 찾아보니 함수중에
data.putextraarraylist()인가 기억이 잘안난다; 여튼 이런 함수로 arraylist<string>채로 넘길 수 있다는 것을 알았다.
 
데이터를 받을때에는
next activity에서 Intent data=getintent() 를 이용하면 현재 자신을 호출한 액티비티의 인텐트를 넘겨받고
data.getextrastringarraylist()인가 이놈을 이용하면  string  리스트 채로 넘겨받을 수 있다.

구글 맵 쓰는법.
모든 레퍼런스는 google 홈페이지에 다있다
현재 버전 3까지 나왔는데 버전3는 지도키가 필요없어서 편리하다.
구글맵은 layout폴더에 xml파일에 구현해주고 접근은
java 액티비티 파일에서 해주면 된다.


개발할때 실제 폰이아니라 에뮬레이터로 개발하기때문에 사용자의 좌표를 받아오는 것을 개발자가 임의로
해줘야 하는데, 여러가지 방법이있다
그중에서 나는 ddms에서 좌표를 전송하는 방법을 썼다.
버튼띄우기라던지, 다이얼로그 띄우는법 모두 인터넷에 있으니 굳이 기억해 둘 필요는 없지싶다.

애로사항은
레이아웃과 UI 를 꾸미는 법인데
xml을 액티비티파일내에서 참조하고 바꾸는 법을 잘 몰라서 헤맸다.
다음에 또 개발할때는. UI부터 좀 알아보고 개발할 예정.


아 날려먹어서 스크린샷이 하나도 없어서 아쉽다.
시험기간에 삽질좀 했지만
덕분에 다음에 혼자서 얼마든지 아이디어만 있다면 만들 수 있다는 자신감은 생겼다.
워낙 개발환경이 편리해서 누구나 개발할 수 있다.