개발 노트 (142) 썸네일형 리스트형 [Android/Kotlin] Hilt란? # Hilt란?공식문서에 정리되어있는 Hilt의 정의이다Hilt는 프로젝트의 모든 Android 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리함으로써, 애플리케이션에서 DI를 사용하는 표준 방법을 제공합니다. 그럼 DI란 뭘까?DI는 Dependency Injection의 약자로, 의존성 주입을 뜻한다특정 한 객체가 다른 객체를 필요로 할 때 이 의존성을 제공하는 기술이 DI이다객체가 다른 객체를 필요로 하면, 외부에서 해당하는 객체를 생성하여 필요한 객체에 넘겨주게 된다 DI는 아래와 같은 장점이 있다.코드 재사용성 향상결합도 감소테스트 용이성의존성을 가짜 객체나 Mock 객체로 대체하여 테스트 수행 가능코드의 유연성 및 확장성, 가독성 향상새로운 기능을 추가하거나, 기능을 수정할 때 미치는 .. JSON 보기편하게 변환 해주는 사이트 아래 사이트를 사용하면 이렇게 보기 힘들게 되어있는 Json 데이터들을 이런식으로 좀 더 보기 편하게 바꿔준다. 그냥 JSON데이터를 복붙해주면 된다 # Json 보기 편하게 바꿔주는 사이트https://codebeautify.org/jsonviewer# Best JSON Viewer and JSON Beautifier OnlineOnline JSON Viewer, JSON Beautifier and Formatter to beautify and tree view of JSON data - It works as JSON Pretty Print to pretty print JSON data.codebeautify.org http://jsonviewer.stack.hu/ Online JSON .. [Android/Kotlin] Google Map API 사용해서 구글 지도맵 만들기 # GoogleCloud에서 사용자 인증키 만들기GoogleCloud에 접속하여 구글 계정으로 로그인한다 프로젝트가 생성되어있지 않다면 새프로젝트를 눌러서, 이름을 적고 새 프로젝트를 생성해준다 API 및 서비스 -> 사용자 인증정보 클릭 사용자 인증정보 만들기 -> API 키 클릭 API 키가 생성되었다 (지금은 API키 제한을 안걸어두었지만, 제한을 걸어서 사용해줄 수도 있다)https://developers.google.com/maps/documentation/android-sdk/start?hl=ko#enable-api-sdk Android용 Maps SDK 빠른 시작 | Google for Developers지금 바로 Android 앱용 Google 지도 프로젝트를 새로 시작해 보세.. [Android/Kotlin] 사용자 위치 얻기 # 위치 접근 권한 사용자의 위치를 추적하기위한 3가지 권한android.permission.ACCESS_COARSE_LOCATION : 와이파이나 모바일 데이터(또는 둘 다)를 사용해 기기의 위치에 접근하는 권한 (도시에서 1블록 정도의 오차 수준)android.permission.ACCESS_FINE_LOCATION : 위성, 와이파이, 모바일 데이터 등 이용할 수 있는 위치 제공자를 사용해 최대한 정확한 위치에 접근하는 권한android.permission.ACCESS_BACKGROUND_LOCATION : 안드로이드 10(API 레벨 29) 이상에서 백그라운드 상태에서 위치에 접근하는 권한 # 권한 설정안드로이드 애플리케이션에서 특정 기능을 사용하기 위해서는 해당 기능에 필요한 권한을 사용자로부.. [Android/Kotlin] Room DataBase 활용 예제 안드로이드에서 앱의 데이터를 저장하는 방법은 여러가지가 있는데그 중 데이터 베이스 프로그래밍을 이용하여 안드로이드 폰에서 DB를 관리하는 오픈소스 SQLite 가 있다 Room DB는 이런 SQLite를 완벽히 활용하면서 원활한 데이터베이스 액세스가 가능하도록 제공한다 Room DB의 이점SQLite를 쉽게 사용할 수 있는 데이터베이스 객체 매핑 라이브러리쉽게 Query를 사용할 수 있는 API를 제공Query를 컴파일 시간에 검증함Query결과를 LiveData로하여 데이터베이스가 변경될 때 마다 쉽게 UI를 변경할 수 있음SQLite 보다 Room을 사용할 것을 권장함 # 예제앱 만들어보기 EditText에 학생에 대한 id와 이름을 입력하고 Add Student버튼을 누르면, Student L.. [Android/Kotlin] SharedPreferences 사용해서 데이터 저장하기 SharedPreferences는 앱에서 데이터를 저장하는 방법중에 하나로, 앱 내부 DB 라 말할 수 있다 예를들어, 로그인을 할 때 앱 재실행 시 최근 로그인 한 아이디를 표시하기 위해 아이디 저장 여부가 필요할 때DB에 저장할 필요가 없이 앱 내부에 저장을 하면 된다. 이때 사용하면 좋은 것이 SharedPreferences 이다 다른 DB와 다르게 SharedPreferences는 간단한 데이터를 저장하기 위해 사용한다. (SharedPreferences에는 큰 값을 저장하거나 많은 값을 저장하면 앱이 느려질 수 있으니 작은 값들을 적게 저장해야한다)또한 앱 내부에 xml 파일로 저장이 되며 데이터와 함께 설정된 keyValue 를 통해 Save/Load 할 수 있다.데이터의 보존은 앱이 삭제되기.. [Android/Kotlin] 멀티뷰타입 리사이클러뷰 MVVM패턴으로 수정(Observer Pattern 사용) https://coding-juuwon2.tistory.com/287 [Android/Kotlin] Multi View Type 리사이클러뷰 구현하기일반적인 리사이클러뷰는 하나의 뷰형태만 보여주고 데이터만 달라지지만,리사이클러뷰 멀티뷰타입을 사용하면 다수의(다른) 뷰형태를 가지는 아이템을 보여줄 수 있다 이런식으로 멀티뷰타coding-juuwon2.tistory.com 이때 만들었던 멀티뷰타입 리사이클러뷰를 MVVM패턴으로 수정해볼것이다근데 아직 LiveData를 쓰지는 않고, Observer Pattern을 사용해서 수정해볼것이다 # 상수정의// enum class로 열거형 클래스로 만들기 (코드 단순, 가독성 up)enum class MultiViewEnum(val viewType : Int) .. [Android/Kotlin] Multi View Type 리사이클러뷰 구현하기 일반적인 리사이클러뷰는 하나의 뷰형태만 보여주고 데이터만 달라지지만,리사이클러뷰 멀티뷰타입을 사용하면 다수의(다른) 뷰형태를 가지는 아이템을 보여줄 수 있다 이런식으로 멀티뷰타입을 통해서 구현하면 아이템들을 다르게 보여줄 수 있다 # xml먼저 해당 아이템에 들어갈 레이아웃을 각각 디자인해준다 # 상수정의enum class를 사용해서 방금만든 뷰타입의 상수를 정의해준다// enum class로 열거형 클래스로 만들기 (코드 단순, 가독성 up)enum class MultiViewEnum(val viewType : Int) { BlUE(0), LIGHTBLUE(1), ORANGE(2)} # 데이터들어갈 데이터클래스를 작성.. [Android/Kotlin] Text에 밑줄 표시하기 다양한 방법이 있는데 가장쉬운 방법은 string파일에서 밑줄을 긋고자하는 문자열을 로 감싸주면 된다 매너온도 매너온도라는 문자열에 밑줄이 쳐져있는것을 확인할 수 있다 # 참고자료 https://devuryu.tistory.com/284 [Android] TextView draw Underline - 텍스트 밑줄 긋는 3가지 방법 TextView 에서 밑줄(Underline) 긋는 방법 3가지!!!! TextView 에서 밑줄을 긋기 위해서 검색을해서 (제가)알아낸 3가지 방법입니다. 1. strings.xml 에서 간단하게 HTML Tag 이용하는 방법 Java // strings.xml 작성 I c devuryu.tistory.com https://startuppark.tistory.com/entry.. [Android/Kotlin] 뒤로가기 버튼 클릭이벤트 구현 OnBackPressedCallback() 사용 이전에는 onBackPressed() 메소드를 사용하여 뒤로 가기 버튼이 눌렸을 때의 동작을 정의했지만, 최신 버전(targetSdk 33 : 안드로이드 13 이후)의 안드로이드에서는 onBackPressed()가 deprecated 되었다고 한다 대신에 OnBackPressedCallback 사용하여 뒤로 가기 버튼 동작을 정의할 수 있다. OnBackPressedCallback은 OnBackPressedDispatcher를 통해 등록되고, 뒤로 가기 버튼을 누를 때마다 실행된다. addCallback 메소드는 OnBackPressedDispatcher 에 새로운 OnBackPressedCallback 을 등록하고, 이렇게 등록된 콜백은 handleOnBackPressed 메소드에서 정의된 작업을 수행.. 이전 1 2 3 4 5 6 7 ··· 15 다음