본문 바로가기

전체 글

[Android/Kotlin] ScrollView 사용하기 ScrollView 사용하는 방법에 대해 정리한다. 기본적으로 ScrollView를 포함하고 있는 View를 제외하고 Scrollable한 화면은 필수적으로 ScrollView를 사용해야한다. 첫번째로 이런 화면을 만들어 보려고 한다. 1. ScrollView, Button 추가 나는 ConstraintLayout이 편해서 Root layout을 ConstraintLayout으로 지정했다. 여기에 ScrollView를 추가한다. 아래 그림과 같이 ScrollView 내부에 LinearLayout을 추가하고 추가된 LinearLayout 안에 보여주고 싶은 Contents들을 넣어 사용한다. 우선 ScrollView와 하단 버튼을 추가한다. fragment_scroll_view.xml 1 2 3 4 5 6.. 더보기
[Android/Kotlin] 리스트 만들기 (with RecyclerView) 리스트는 앱에서 가장 필수적으로 필요한 기능이다. 6년 전, 처음 안드로이드 앱을 만들었을 때는 TableLayout을 이용해서 리스트를 만들었다. 이번에 다시 찾아보니 RecyclerView라는게 있었고 둘의 차이는 간단하게 TableLayout은 고정된 row와 column을 이용하여 리스트를 만들고 RecyclerView는 Adapter(와 ViewHolder)를 이용하여 리스트를 만든다. RecyclerView는 더욱 발전된 형태로 dynamic하게 item을 쉽게 추가하고 삭제할 수 있고 내부 item을 자유롭게 만들 수 있기 때문에 TableLayout보다는 RecyclerView를 많이 쓰이는 것 같다. Adapter와 ViewHolder를 이용하여 RecyclerView를 만들어 본다. 1.. 더보기
[Android/Kotlin] 주소에서 위/경도 가져오기 Android에서도 주소에서 위/경도로 어떻게 변환하는지 찾아봤다. 주소를 입력하면 위/경도 값을 알아내 현재 위치로부터 얼마나 멀리있는지 보여주도록 해보자. 1. 화면 상단에 EditText와 버튼을 배치하여 주소를 입력한 후 Enter 또는 검색버튼을 클릭할 수 있도록 화면을 만든다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 cs 2. 구현 그 다음, EditText와 버튼에 Listener를 연결한다. 1 2 3 4 5 6 7 8 9 10 11 12 13.. 더보기
[Spring Boot] 주소에서 위/경도 가져오기 (with Geocoding API) 지도에 특정 위치를 표시해주는 기능이 필요할 경우, 주소를 위/경도로 변환해주는 기능이 꼭 필요한데 그것이 Geocoding이다. 앱에서는 원하는 위치를 표시하기 위해 서버에게 전달할 정보 중에 쉽게 얻을 수 있는 것은 주소이다. 앱에서 서버로 주소를 보내면 주소를 받아 Geocoding API를 이용하여 위/경도 값으로 바꾸고 리턴해주면 앱에서는 위/경도 값만 지도에 표시해주면 된다. 1. Geocoding API 및 API 키 Google Cloud Platform의 API 및 서비스에서 Geocoding API를 검색하여 사용 버튼 클릭. 사용자 인증 정보에서 +사용자 인증 정보 만들기 버튼을 누르고 API키 버튼을 클릭하여 키를 생성한다. Android에 Google Maps API를 등록할 때 .. 더보기
[Spring Boot] Spring Boot 프로젝트 생성 Local 데이터만을 사용하는 경우를 제외하고, 모바일 프로젝트는 API를 처리해 줄 서버가 꼭 필요하다. 하지만 불가피하게 서버 개발자가 없는 상태에서 프로젝트를 진행해야 한다거나 서버 개발자가 여러 프로젝트를 동시에 진행하면서 업무에 밀려 API 개발이 지연되는 등 여러 변수에 의해 앱을 만들면서 API 테스트를 하지 못하는 상황이 빈번하게 발생한다. 이러한 경우, API 테스트를 위한 아주 간단한 서버를 만들어 먼저 진행하면 프로젝트 후반에 조금이나마 시간을 절약할 수 있을 것이다. 이런 목적으로 아주 간단하게 만들어 사용할 API 테스트용 Spring Boot에 대해 기록한다. 참고로 API 호출 방식이나 여타 다른 자잘한 부분에 대해 모두 다루면 좋겠지만 나는 서버 개발자가 아니기 때문에 req.. 더보기
[Android/Kotlin] 현재 위치 구하기(with Location Manager) 이전 글에서 Google Maps를 이용하여 지도에 마커를 찍어봤으니 이제는 지도에 현재 위치를 찍어보려고 한다. 1. 위치 정보 접근 Permission 현재 위치를 가져오는 기능은 보안 정책에 의해 사용자에게 권한을 부여받아야 사용할 수 있다. 때문에 Manifest.xml에 Location과 관련된 Permission을 추가해줘야한다. 안드로이드 문서에서 위치 정보 액세스 권한 요청 부분을 보면 아래와 같이 나와있다. 위 내용에 따르면 ACCESS_COARSE_LOCATION은 대략적인 위치를 제공하고 ACCESS_FINE_LOCATION은 정확한 위치를 제공한다고 돼있는데 네트워크를 이용한 위치값, GPS를 이용한 위치값의 차이인 것 같다. 아무튼 위 두개의 Permission을 Manifest... 더보기
[Android/Kotlin] Google Maps API 사용하기 현재 진행 중인 프로젝트에 지도API가 필요해서 Fragment에 Google Maps를 보여주는 방법을 기록한다. 1. Google API 프로젝트 생성 및 사용 등록 Google API에 접속하여 프로젝트 만들기를 클릭한다. 새 프로젝트 팝업이 뜨면 프로젝트 이름을 입력하고 프로젝트를 만든다. 프로젝트를 만들고 안내에 따라 API 라이브러리로 이동하여 API 사용 등록한다. 2. API 키 생성 및 설정 Google API 대시보드 화면에서 사용자 인증 정보 -> 상단의 + 사용자 인증 정보 만들기 -> API 키 순으로 클릭. 클릭. 클릭. API 키를 클릭하면 알아서 키가 생성된다. 여기서 키 제한을 클릭하여 생성된 API 키 설정 화면으로 이동한다. 애플리케이션 제한사항에서 Android 앱을 .. 더보기
[Android/Kotlin] EditText의 Single or Multiple Line 여러 예제를 참고하여 메모 앱을 만들어보고 있는데 한 줄짜리 텍스트 입력창과 여러 줄짜리 텍스트 입력창이 필요해서 기록한다. iOS 개발 할 때 한 줄 텍스트 입력은 UITextField로, 여러 줄 텍스트 입력은 UITextArea로 했었는데 (예외도 있긴 하다) Android에서는 일반적으로 EditText의 속성을 이리저리 바꿔서 처리하는 것 같다. 메모의 제목은 한 줄, 내용은 여러 줄로 처리하려고 한다. 레이아웃 구성은 contentText를 Multiple Line으로 할 것이기 때문에 contentText의 parent ConstraintLayout의 Bottom을 Save버튼의 top으로 지정했다. 1. inputType EditText의 입력에 대한 속성은 inputType으로 지정할 수.. 더보기