(구)Android

(구)Android/Kotlin

[Kotlin] REST API & Retrofit

📌 Intro Retrofit은 서버와 통신할 때 사용하는 라이브러리이다. RestAPI는 무엇이고, Retrofit을 사용하기 위해서는 어떻게 해야하는지 알아보도록 하자. 📌 Rest? REST 정의 REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든것을 의미한다. 즉, 자원의 표현에 의한 상태 전달을 뜻한다. 자원 : 해당 소프트웨어가 관리하는 모든 것(문서, 그림, 데이터...) 표현 : 자원을 표현하기 위한 이름 (DB의 학생 정보가 자원이면, 'students'를 자원의 표현으로 정함) 상태 전달 : 데이터가 요청되는 시점에 자원의 상태를 전달한다. (JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적..

(구)Android/Kotlin

[Kotlin] 런타임 권한 요청(Permission)

📌 Intro android 6.0 마시멜로부터 런타임 권한 처리가 추가되었다. 예를 들어서 카메라와 갤러리를 호출하기 위해서는 접근 권한이 필요한데, 6.0 이전까지는 AndroidManifest에 사용할 permission만 추가하면 되었지만 이제는 앱 사용 중 실제로 접근하는 시점에 권한을 허용했는지 체크하여 처리를 해야한다. 이 방법에 대해 알아보도록 하자. 📌 AndroidManifest.xml 에 퍼미션 추가 가장 먼저 AndroidManifest.xml 파일에 퍼미션을 추가해줘야 한다. 📌 권한 요청 private val CAMERA_REQUESTCODE : Int = 100 // 카메라 권한 확인코드 private val permissions = arrayOf(Manifest.permiss..

(구)Android/Kotlin

[Kotlin] 뷰바인딩(ViewBinding 이해하기

📌 Intro 이번에 소개할 뷰 바인딩(view binding)은 안드로이드 아키텍처 구성요소로서 앱 모듈별로 설정하여 사용할 수 있는 기능이다. 뷰 바인딩 기능을 사용하면 뷰를 제어하는 코드를 쉽게 작성할 수 있다. (항상 그렇지만 익숙해지는데까지가 제일 어려운 것 같다.) 📌 View Binding 뷰 바인딩을 사용하면 뷰와 상호작용하는 코드를 쉽게 작성할 수 있는데, 모듈에서 사용 설정된 뷰 바인딩은 각 레이아웃 XML파일과 바인딩 클래스를 생성한다. 이 바인딩 클래스에는 레이아웃 XML파일에서 ID가 있는 모든 뷰를 참조하는 참조변수가 포함된다. 때문에 findViewById()를 사용하지 않고도 뷰를 다룰 수 있게된다. 앞서 말했던 것처럼 바인딩 클래스는 자동으로 생성되기 때문에 만들어지는 이름..

(구)Android/Java

[Android] Kakao Map API 사용방법(5) - 현재위치 기반으로 검색하기

📌 Intro 카카오지도에서 현재 위치를 기반으로 검색하는 방법에 대해 간단하게 정리한다. https://developers.kakao.com/docs/latest/ko/local/dev-guide#search-by-keyword 위 링크로 이동하면 다음과 같다. 이 외에도 여러가지 parameter가 있지만 내가 사용하기 위한 parameter들만 캡쳐했다. 쓰여있기도 하지만 정리해보면 다음과 같다. query : 필수 요소로 검색을 원하는 질의어(필수) x : 중심 좌표의 X 혹은 경도 값, 특정 지역을 중심으로 검색할 경우 radius와 함께 사용 가능 (radius는 반경거리) y : 중심 좌표의 Y 혹은 위도 값, 특정 지역을 중심으로 검색할 경우 radius와 함께 사용 가능 (radius는 ..

(구)Android/Java

[Android] Kakao Map API 사용방법(4) - 마커찍기

📌 Intro 카카오지도에 마커를 추가하는 방법에 대해 간단하게 정리한다. 📌 소스코드 // 마커 추가 MapPOIItem marker = new MapPOIItem(); MapPoint mapPoint = MapPoint.mapPointWithGeoCoord(37.447848031129844, 126.65792054526509); // (latitude, longitude) marker.setItemName("CU"); marker.setTag(0); marker.setMapPoint(mapPoint); marker.setMarkerType(MapPOIItem.MarkerType.BluePin); // 기본 마커 모양 marker.setSelectedMarkerType(MapPOIItem.MarkerT..

(구)Android/Java

[Android] Kakao Map API 사용방법(3) - 장소검색(Retrofit)

📌 Intro 카카오에서 제공하는 API중 REST API를 통한 장소 검색 기능이 있다. Retrofit 라이브러리를 이용하여 API 서버와 통신하고, 장소 검색 결과를 가져오는 방법을 정리하려고 한다. 📌 Retrofit 라이브러리 추가 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' build.gradle에 위 코드를 추가해주도록 한다. 글을 작성하는 시점에서 Retrofit의 최신 버전은 2.9.0버전이지만 새로운 최신 버전이 나왔다고 하더라도 안드로이스 스튜디오에서 아래와 같이 알려주기 때문에 맞게 고쳐주면 된다. 📌 Class & Int..

(구)Android/Kotlin

[Kotlin] Bottom Navigation Bar 사용하기

📌 Intro 카카오톡이나 인스타그램처럼 아래 탭이 있고 선택한 탭에 따라 화면이 변경하도록 하는 기능을 추가하고 싶었다. 이 기능을 탭 레이아웃과 뷰페이저로도 구현할 수 있지만 이 글에서는 바텀 네비게이션 바를 이용하여 기능을 구현해보려고 한다. 📌 1. dependencies 추가 1. build.gradle을 클릭하여 오픈한다. 2. dependencies 에 아래 코드를 추가해준다. implementation 'com.google.android.material:material:1.6.1' 3. Sync Now를 클릭한다. 📌 2. Menu 폴더와 navi_menu.xml 파일 생성 위처럼 프로젝트에 Menu라는 이름의 폴더와 navi_menu.xml 파일을 생성해주도록 하자. xml파일 명은 본인..

(구)Android/이론

[Android] Activity 수명주기

📌 Intro 안드로이드 시스템은 실행되는 앱의 상태를 직접 관리한다. 만약 앱이 시스템에 의해 관리되지 않으면, 실행된 앱이 메모리를 과도하게 점유하거나 화면을 보여주는 권한을 과도하게 갖기 때문에 다른 기능을 사용하지 못할 수도 있기 때문이다. 이는 대부분의 모바일 OS에서 사용하는 방법이다. 액티비티는 처음 실행될 때 메모리에 만들어지는 과정부터 실행과 중지, 메모리에서 해제되는 여러 과정을 상태 정보로 가지고 있고, 이런 상태 정보는 시스템이 관리하면서 각각의 상태에 해당하는 메서드를 자동으로 호출한다. 이에 대해 자세히 알아보자. 📌 액티비티 수명주기 대표적인 액티비티의 상태 정보는 다음과 같다. 실행 화면상에 액티비티가 보이면서 실행되어 있는 상태. 액티비티 스택의 최상위에 있으며 포커스를 가..

Krrong
'(구)Android' 카테고리의 글 목록 (2 Page)