분류 전체보기 91

[코틀린(Kotlin)] 뷰 모델 (ViewModel)

1. 뷰 모델이란? Activity와 Fragment와 같은 UI 컨트롤러의 로직에서 데이터를 다루는 로직을 분리하기 위해서 등장한 Android JetPack 라이브러리. 2. 뷰 모델의 필요성 안드로이드는 Activity와 Fragment 같은 UI 컨트롤러에서 리소스의 제거와 복구가 수행된다. 예시로, 화면 전환(가로/세로)이 이루어질 때 Activity가 onDestroy 된 다음, 다시 화면이 onCreate → onStart가 되기 때문에 특정 데이터들이 날아갈 수 있다. 이는 생명주기와 관련 있는데, class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCrea..

[코틀린(Kotlin)] API Key 숨기기

API Key를 이용하여 카카오 API를 받아 이미지 검색을 하는 개인과제를 진행 중에, 이걸 제출할 때 깃허브에 올릴 텐데, API Key가 노출된 채로 올려도 되나?라는 생각이 들었다. 그래서 API Key를 숨기는 방법을 검색해서 알아봤다 우선, 대략적인 순서는 아래와 같다 local.properties 파일에 값 저장 build.gradle.kts(:app) 수정 프로젝트 빌드 BuildConfig로 호출 1. local.properties 파일에 값을 저장 // local.properties sdk.dir = sdk 경로 API_KEY = "API_Key 값" local.properties 파일을 열고 sdk 경로 밑에 사용할 API Key값을 정의한다 local.properties는 기본적으로..

[코틀린(Kotlin)] 디버깅(Debugging)

1. 디버깅이란? 디버깅은 모든 소프트웨어에서 소스 코드의 오류 또는 버그를 찾아서 수정하는 과정이다 소프트웨어가 예상대로 작동하지 않으면 프로그래머는 오류가 일어나는 원인을 알아내기 위해 코드를 분석한다 디버깅 도구를 사용해 소프트웨어를 제어된 환경에서 실행하고 코드를 단계별로 확인하여 문제를 분석하고 수정한다 2. 디버깅의 중요성 앱 개발 시간 단축 - 초기 단계의 에러 발견으로 이후 시간 절약 - 코드 흐름과 동작 방식 파악으로 유사 오류 빠르게 대응 - 복잡한 문제를 단계별로 분해하여 효과적 관리 품질 향상 및 사용자 경험 개선 - 앱 안정성 증대로 사용자 신뢰 향상 - 오류 감소로 사용자 경험 개선 - 문제 원인 미리 파악으로 유지보수 용이성 향상 개발자의 성장 - 다양한 문제 대처 능력 향상 ..

[코틀린(Kotlin)] CLEARTEXT communication to XXXX not permitted by network security policy

강의를 보며 미세먼지 앱을 만들다가 겪은 에러 "CLEARTEXT communication to XXXX not permitted by network security policy" 발생하는 이유는 따라 치던 코드의 API 주소, 이미지주소 등 네트워크 경로가 https가 아닌 http로 되어 있기 때문이다. 안드로이드 9.0 파이부터는 https를 사용하도록 강제한다고 한다 [참고 사이트]

[코틀린(Kotlin)] 미세먼지 앱 만들어보기

특정 지역의 미세 먼지 수치, 등급을 알려주도록 한다. 데이터는 공공데이터포털을 이용한다. 수신된 JSON 데이터를 가공한다. 미세먼지 등급에 따라 아이콘/배경색을 변경한다. 공공데이터 포털 접속 후 환국환경공단_에어코리아_대기오염정보의 API 활용 그 중에서, 시도별 실시간 측정정보 조회을 활용 미세먼지 등급에 따라 나뉘는 아이콘 및 배경색의 기준 Gradle에 라이브러리 추가 plugins { ... id("kotlin-kapt") } ... buildFeatures { viewBinding = true dataBinding = true buildConfig = true } dependencies { ... implementation("com.google.code.gson:gson:2.10.1") i..

[코틀린(Kotlin)] 레트로 핏(Retrofit)

1. 레트로핏(Retrofit) 이란? Retrofit은 Square Inc. 에서 개발한 안드로이드 및 자바를 위한 타입-세이프한 HTTP 클라이언트 라이브러리이다. REST API의 HTTP 요청을 자바 인터페이스로 변환하는 것을 주목적으로 한다. 2. Retrofit의 장점 코드의 간결성 - 복잡한 HTTP API 요청을 쉽고 간결하게 만들 수 있다 - 간단한 어노테이션을 통해 요청 메서드와 URL을 정의할 수 있다 안정성과 확장성 - 내부적으로 OkHttp 라이브러리를 사용하여 통신, 이를 통해 안정적인 통신이 가능하다. - 인터셉터를 사용하여 요청/응답 프로세스를 확장하거나 수정할 수 있다. 다양한 플러그인과 컨버터 지원 - 다양한 데이터 형식(Json, XML 등)에 대해 데이터 변환 컨버터를..

[코틀린(Kotlin)] 구글 지도앱 만들기

1. 지도 사용 설정하기 build.gradle의 dependencies 추가 implementation("com.google.android.gms:play-services-maps:18.2.0") implementation("com.google.android.gms:play-services-location:21.0.1") 퍼미션 추가 구글 지도 API 이용하는 키 등록 2. 구글 개발자 콘솔에서 지도 API 키 얻기 구글 개발자 콘솔에 접속해 프로젝트를 생성하고 사용자 인증 정보를 만들면 지도 API 키를 발급받을 수 있다 (무료 사용 하는데도 카드는 등록해야 한다..) 구글 개발자 콘솔에서 얻은 지도 API키를 ManiFest파일에 등록해 준다 레이아웃.xml 3. 지도 제어하기 지도의 중심 이동하기..

[코틀린(Kotlin)] 사용자의 위치 얻기

1. 위치 접근 권한 사용자의 위치를 추적하기 위한 3가지 권한 android.permission.ACCESS_COARSE_LOCATION - 와이파이나 모바일 데이터를 사용해 기기의 위치에 접근하는 권한이다 - 도시에서 1블록 정도의 오차 수준 android.permission.ACCESS_FINE_LOCATION - 위성, 와이파이, 모바일 데이터 등 이용할 수 있는 위치 제공자를 사용해 최대한 정확한 위치에 접근하는 권한이다 android.permission.ACCESS_BACKGROUND_LOCATION - 안드로이드 10(API 레벨 29) 이상에서 백그라운드 상태에서 위치에 접근하는 권한이다 *안드로이드 애플리케이션에서 특정 기능을 사용하기 위해서는 해당 기능에 필요한 권한을 사용자로부터 획득..

[코틀린(Kotlin)] 데이터 저장 - SharedPreference, Room

SharedPreference Room 안드로이드의 데이터를 영구적으로 저장하는 방법 SharedPreference 데이터베이스 파일 형태로 저장 1. Preference란? 프로그램의 설정 정보 (사용자의 옵션 선택 사항이나 프로그램의 구성 정보)를 영구적으로 저장하는 용도로 사용 XML 포맷의 텍스트 파일에 키-값 세트로 정보를 저장 SharedPreference 클래스 - Preference의 데이터(키-값 세트)를 관리하는 클래스 - 응용 프로그램 내의 액티비티 간에 공유하며, 한쪽 액티비티에서 수정 시 다른 액티비티에서도 수정된 값을 읽을 수 있다 - 응용 프로그램의 고유한 정보이므로 외부에서는 읽을 수 없다 (현재 앱에서만, 다른 앱에서는 x) 1-1. 공유 환경설정의 핸들 가져오기 getSh..

[코틀린(Kotlin)] [팀 프로젝트] 간단한 연락처 앱 만들기

[깃 허브 링크] 맡은 & 구현한 기능 연락처 리스트 화면 (ContactFragment) - 뷰 바인딩(viewBinding) & 리사이클러 뷰(recyclerView) 사용 - 연락처 정보 리스트 출력 (더미 데이터를 활용) - 스크롤 이동 시 최상단으로 이동하는 플로팅 버튼(FloatingButton) - 검색 기능 - 통화 아이콘 클릭 시 ACTION_DIAL 및 Intent로 번호 전달 - 뷰 전환 (리스트 뷰(ListView) 그리드 뷰(GridView)) - 즐겨찾기 된 유저 이미지 뷰에 스트로크 추가 - 연락처 정보 리스트에서 아이템 클릭 시 상세정보로 전환 및 데이터 전달 - 콜랩싱 바(CollapsingBar)를 이용하여 스크롤 이동 시 앱의 아이콘이 가려지도록 사용자 편의성 제공 프래..