안녕하세요~ 저는 아직은 초보이지만 언젠가 초보를 벗어나고 싶은 새싹 도전쟁이입니다 저 포함 두 명이서 어플리케이션을 만들고 있는데 그 중 도움 되는 내용만 고르고 추려 올리는 포스팅입니다 많이 부족하지만 제가 다른 이들에게 도움 받은 것처럼 저도 함께 공유하고 토론하고 또 누군가에게 도움이 되고 싶어서 글 올려요 저의 프로젝트가 모자라더라도 저에게는 아주 소중한 아이이니까 무분별한 비난은 하지 말아주세요~ #안드로이드스튜디오 에서 #JAVA 언어를 사용해서 네이버 지도 띄우는 과정을 해볼거에요 모든 내용은 네이버 지도 개발자 사이트에서 자세하게 알려주고 있답니다! https://docs.ncloud.com/ko/naveropenapi_v3/application.html JAVA, Kotlin 언어 두 가지 모두 제공해줘서 어떤 언어를 쓰든 어려움 없이 할 수 있을 겁니다 우선 필요한 key를 발급 받기 위해 #네이버클라우드플랫폼 에 들어가셔서 회원 가입을 해주세요~ 회원 가입 할 때 결제 정보를 입력 받는데 무료 서비스만 이용하면 결제할 일 없으니 너무 겁먹지 마시길 바랍니다 회원 가입이 끝나셨으면 서비스 메뉴에서
Application Service에 있는 #Maps 를 선택해주세요
이용 신청하기와 Application 등록을 눌러줍니다
표시한 부분을 입력해줍니다 Application 이름은 아무거나 해주셔도 되구요 저는 팀 이름 AnSimE로 했답니다 Mobile Dynamic Map 선택 후, Android 앱 패키지 이름을 써주셔야 하는데 만들 프로젝트 패키지와 동일 명을 써주셔야 해요 +추가 후 확인!
Console 창에서 인증정보를 누르면 이렇게 key가 발급된 것을 볼 수 있습니다! 이제 첫 번째 가이드에 대한 부분은 끝났어요 카카오 지도, 구글 지도, 네이버 지도 다 해봤는데 키 발급 과정은 네이버 지도가 가장 쉬웠답니다~ 이제 안드로이드 스튜디오를 열고 방금 입력했던 패키지 이름과 동일하게 프로젝트를 하나 생성해주세요 안 궁금할 수 있지만 그래도 간단하니 넣어봅니다 안드로이드 스튜디오 화면 검정색으로 바꾸기!
상단의 File -> Setting에서 Appearance & Behavior 안의 Appearance를 누르면 Theme라는 부분이 있는데 Darcula로 바꿔줍니다 이제 다시 본론! 가이드를 보면 루트 프로젝트의 build.gradle 부분에 저장소 설정을 추가하라고 합니다
앱 모듈의 build.gradle에 네이버 지도 SDK 의존성을 추가하랍니다
저는 현위치까지 띄워줄 것이기 때문에 나중에 필요한 의존성까지 넣었습니다 다 하고 오른쪽 상단의 'Sync Now'를 눌러주세요 AndroidManifest.xml에 client ID를 등록하랍니다 정말 시키는 대로만 하고 있죠??? 네이버 지도 개발자 가이드가 제일 친절하더라구요!
열심히 가린 저 부분에 발급받은 Client ID를 넣어주세요 이제 세 번째 가이드로 넘어갑니다 지도 객체를 띄우는 가이드에요 MapFragment와 MapView 방법이 있는데 저는 MapFragment는 안되더라구요... MapFragment를 권장한다고 하는데 MapView를 사용해도 문제는 없습니다!
원하는 Layout 안에 mapView를 삽입합니다 저는 fragment_map.xml 안에 삽입해주었습니다 fragment는 메뉴 창을 만들 때 만들어준 이름이라 여기서 나오는 MapFragment와는 관련이 없습니다 아무 이름이나 사용해주세요 activity에서 라이프 사이클을 호출하는 방법입니다 저는 MapFragmentActivity라는 이름의 class를 만들어서 activity를 생성해주었어요 activity를 새로 생성해 주었으니 activity를 사용하는 코드도 필요한데요 activity_main.xml과 MainActivity class를 사용하여 지도를 띄우신 분들은 다음에 나오는 과정이 필요 없답니다! 여기까지만 하면 지도가 딱! 뜰거에요 우선 MainActivity에 MapFragmentAcitivty를 호출하는 코드를 넣어줍니다
activity를 호출할 때는 intent를 사용한답니다 switch, case 부분이 뭔지 모르겠지요? 저는 메뉴 화면을 만들어서 해당 메뉴를 누르면 해당 Activity가 호출되도록 만든거라서 포스팅에서는 간단하게 button을 만들어 지도를 띄우는 activity를 호출하도록 해볼게요 <Button android:id="@+id/map_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="지도 띄우기" android:layout_centerHorizontal="true" android:layout_centerVertical="true" /> activity_main.xml 가운데에 지도 띄우기라고 적힌 button을 하나 생성했어요 public class MainActivity { private Button map_button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); map_button = findViewById(R.id.map_button); map_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, MapFragmentActivity.class); startActivity(intent); } }); } } MainActivity에서 지도 띄우기 버튼을 누르면 MapFragmentActivity.class를 수행하도록 합니다 map_button을 생성하고 activity_main.xml에서 id가 map_button인 애를 찾아다 연결해줍니다. 그리고 버튼을 누르면 onClick안의 코드가 수행되도록 해주는 거에요 마지막으로 manifest에 새로 만든 Activity를 인식할 수 있도록 다음 코드를 추가해주세요 <manifest> <application> <!-- 내용 생략 --> <activity android:name=".ui.Map.MapFragmentActivity"/> </application> </manifest> 제가 만든 MapFragmentActivity는 ui 디렉토리 아래에 Map 디렉토리 아래에 만든거라서 저렇게 표시해 주었답니다 디렉토리 생성 없이 MainActivity와 같은 선상에 class를 생성하였다면 ".MapFragmentActivity"로 표현하면 된답니다
이렇게 하면 어플에 네이버 지도가 딱! 뜬답니다 아직은 지도 화면만 띄운거지 아무 기능도 없어요 오늘은 네이버에서 제공해주는 개발가이드를 보고 네이버 지도 api를 사용해봤는데요 추가적으로 MainActivity 외에 새로운 activity를 만들어 사용하는 것도 해봤답니다 다음에는 naverMap 객체를 생성하고 그걸 이용해서 현재 위치도 띄워 볼거에요 그리고 제가 코드를 만들거나 작성하는 과정에서 실수가 있을 수도 있고 더 나은 코드가 분명히 존재할 수도 있어요 그럴 때는 친절하게 알려주시면 내용 확인 후 고칠 부분 수정하거나 다음 프로젝트를 만들때 참고할게요! 코딩 도전 파트만 쓰면 포스팅 길이가 너무 길어져서 최대한 TMI 없이 전할 말만 했답니다 그래도 계속 길어서 몇 번이고 수정했네요 ㅠㅠㅠ 다음에는 더 보기 편할 수 있도록 짧고 간결하지만 내용은 알차게 담아 볼게요! 오늘도 보러 와주셔서 감사합니다~
#앱만들기 #어플리케이션만들기 #안드로이드스튜디오 #JAVA #초보코딩 #네이버지도api #네이버지도띄우기 #지도어플 #일상블로그 #곰손의도전 #코딩편 |