전체 글
-
[Android] 특정 Tab에서만 Toolbar 보이게 하기안드로이드 2024. 5. 21. 11:32
✏️ TIL(Today I Learned) [Android] Tab Layout 구현 (Tab 선택 시, icon & text 색상 변경)✏️ TIL(Today I Learned)하단에 Tab Layout을 만들어서, 클릭 시 선택된 탭의 아이콘과 텍스트의 색이 변경되면서 프래그먼트가 전환되도록 했다. 레이아웃부터 만들어준다.상단에 툴바, 가운데에muk-clouds.tistory.com기존 코드에서 Home Tab을 제외한 나머지 탭에서는 Toolbar가 안 보이도록 변경했다. registerOnPageChangeCallback()을 사용하여 선택된 탭이 1(home) 일 때만 toolbar 보이게 했다.vpMain.registerOnPageChangeCallback(object : ViewPager2..
-
[Android] Tab Layout 구현 (Tab 선택 시, icon & text 색상 변경)안드로이드 2024. 5. 16. 09:39
✏️ TIL(Today I Learned)하단에 Tab Layout을 만들어서, 클릭 시 선택된 탭의 아이콘과 텍스트의 색이 변경되면서 프래그먼트가 전환되도록 했다. 레이아웃부터 만들어준다.상단에 툴바, 가운데에 뷰페이저, 하단에 탭으로 구성했다. 그리고 한 가지 주의해야할 점이있다.메인 엑티비티에서 클릭된 탭의 텍스트 색을 변경하려고 아무리 해도 적용되지 않았는데, xml의 TabLayout에 tabSelectedTextColor 속성을 추가하니 적용되었다... 그리고 TabModel을 만든다.프래그먼트, 타이틀 리소스 ID, 아이콘 리소스 ID를 필드로 가진다.data class MainTabModel( val fragment: Fr..
-
[Android] java.net.UnknownServiceException: CLEARTEXT communication to apis.data.go.kr not permitted by network security policy 오류 해결안드로이드 2024. 5. 1. 20:08
✏️ TIL(Today I Learned)HTTP(평문 통신)을 사용하여 네트워크 요청을 하려고 시도했으나, 앱의 네트워크 보안 정책에 의해 허용되지 않아서 발생한 오류라고 한다. 최신 안드로이드 버전은 기본적으로 보안상의 이유로 평문 트래픽을 허용하지 않기 때문인 것 같다.이를 해결하는 방법을 2가지 찾아봤다. 1. AndroidManifest.xml 파일의 부분에 android:usesCleartextTraffic="true"로 설정 cleartext HTTP와 같은 cleartext 네트워크 트래픽을 사용할지 여부를 나타내는 flag로 이 플래그가 flase 로 되어 있으면, 플랫폼 구성 요소 (예 : HTTP 및 FTP 스택, DownloadManager, MediaPlayer)는 일반 텍스트 ..
-
[Android] BuildConfig import 안되는 상황 해결 (Unresolved reference: BuildConfig)안드로이드 2024. 5. 1. 16:11
✏️ TIL(Today I Learned)BuildConfig가 import가 안 되는 상황이 발생했다. 그래서 bulid.gradle(:app)에 buildConfig = true로 하고,buildFeatures{ buildConfig = true} gradle-properties에서 아래 코드를 추가했다.android.defaults.buildfeatures.buildconfig=true 그래도 인식을 못해서 rebulid하니 import가 되었다.
-
[Android] 미세먼지 앱 (공공 데이터 API) + Retrofit안드로이드 2024. 5. 1. 15:35
✏️ TIL(Today I Learned)도시를 선택하면 그에 해당하는 데이터를 지역 선택 스피너에 받아와서 선택을 할 수 있다. 선택이 완료되면, TextView에 지역명이 표기되면서 미세먼지 농도와 상태가 이모티콘, 텍스트, 배경색으로 표시된다. API 사용하기 위해 공공데이터포털로 들어가서, 활용신청을 한다. 그럼 바로 승인이 된 것을 확인할 수 있다. 이를 클릭하여, 개발계정 상세 보기로 들어간다.그리고 미리보기를 클릭하여 데이터의 json을 확인해 볼 수 있다. 아래와 같은 형식이다.{ "response": { "body": { "totalCount": 0, "items": [], "pageNo": 1, "numOfRows": 100 }, ..
-
[Android] Retrofit 알아보기 (REST API/ JSON/ GSON)안드로이드 2024. 5. 1. 14:57
✏️ TIL(Today I Learned)1. REST APIREST는 Representational State Transfer의 약자이다.웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일을 의미한다.월드 와이드 웹 (WWW) 자체가 REST 아키텍처를 기반으로 구성되어 있다. 자원(리소스)의 식별: 각 리소스는 고유한 URI로 식별됩니다. 1.1 REST의 핵심 원칙메시지의 상태를 통한 표현: 리소스는 JSON, XML 등의 형식으로 표현된다.상태가 없는(stateless) 통신: 각 요청은 서버에서 필요한 모든 정보를 포함하고 있어야 한다. 이를 통해 서버는 각 요청을 개별적으로 처리할 수 있다.클라이언트-서버 구조..
-
[Android] Google Map API 사용하기 (+ SHA 인증서 지문 얻기)안드로이드 2024. 4. 30. 18:18
✏️ TIL(Today I Learned)Google Map API를 사용하여 현재 사용자의 위치를 구글 지도로 표시하는 앱을 만들어봤다.위치 권한을 허용한 뒤, 애뮬레이터의 Location을 이동하면 해당 장소의 지도가 보이게 된다. 구글 API를 사용하려면, GoogleCloud에서 사용자 인증키 만들어야한다.구글 계정으로 가입을 하면, 아래와 같이 자동으로 My First Project가 생성된다.maps를 검색하여 Google Maps Platform을 클릭한 뒤, 사용자 인증 정보로 들어간다.사용자 인증 정보 만들기를 클릭하여, API 키를 생성하면 된다. 패키지 명과 SHA-1을 입력하면 아래와 같이 API 키가 생성된다.SHA 인증서는 터미널에서 아래 명령어를 입릭하면 얻을 수 있다../g..
-
[Android] 데이터 저장 - Room안드로이드 2024. 4. 30. 17:08
✏️ TIL(Today I Learned)Room 대해 알아보았다.Room은 안드로이드 플랫폼을 위한 객체 관계 매핑 (ORM) 라이브러리로, SQLite 데이터베이스를 보다 쉽게 사용할 수 있도록 도와준다.EdtiText에 입력된 ID와 이름을 Datebase에 ADD, QUERY, DELETE 할 수 있는 버튼을 만들었다. 이름을 통해 QUERY 하고, ID를 통해 DELETE 되도록 했다. App Inspection에서 Database를 확인하면 잘 저장된 것을 볼 수 있다. Room을 사용하려면, gradle 파일 설정을 해야 한다.build.gradle(:app)에 아래 내용을 추가하면 된다.plugins { ... id ("kotlin-kapt")}dependencies {..