안드로이드
-
[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 {..
-
[Android] 데이터 저장 - SharedPreferences안드로이드 2024. 4. 30. 14:56
✏️ TIL(Today I Learned)SharedPreferences 대해 알아보았다.이는 애플리케이션의 사용자 설정이나 간단한 데이터를 저장하기 위해 사용된다.EditText에 입력한 뒤, 저장 버튼을 누르면 입력한 text를 SharedPreferences로 저장했다.그리고, 앱을 다시 열면 저장된 text를 불러오도록 만들었다.class MainActivity : AppCompatActivity() { private val binding by lazy { ActivityMainBinding.inflate(layoutInflater) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInst..
-
[Android] 주소록 App 만들기 - 마무리 & KPT 회고안드로이드 2024. 4. 30. 12:44
📝 프로젝트 소개- 구현한 기능ContactTabLayout, ViewPager2, FloatingActionButton을 활용하여 사용자 인터페이스를 구성탭 전환(TabSwitch) 클릭 이벤트를 통해 사용자의 상호작용을 처리Contact ListRecyclerView와 Adapter를 이용해 연락처 리스트를 동적으로 표시사용자가 좋아하는 연락처에 대해 즐겨찾기 기능을 제공Contact Mypage & Contact DetailClipboardManager, PopupMenu, Intent를 사용하여 다양한 기능을 제공 (전화, 문자, 링크 접속 및 정보 복사)Contact Dialog & Schedule DialogDialogFragment를 사용하여 사용자 입력을 받는 다이얼로그를 구현입력된 정보..