반응형

안드로이드 19

[Android] Shared Preferences. 앱 내 간단한 데이터 저장에 사용.

목차 Shared Preferences Shared Preferences 객체에 접근 Shared Preferences에 쓰기 Shared Preferences에서 값을 삭제하기 Shared Preferences에서 읽기 결론 Shared Preferences 크기가 크지 않은 비교적 간단한 데이터를 key-value 형태로 저장할 수 있게 도와주는 라이브러리입니다. (Shared Preferences API와 Preference API는 다릅니다.) Shared Preferences는 애플리케이션 내부에 저장됩니다. 따라서 앱을 지우거나 데이터를 삭제하면 Shared Preferences에 저장된 값 또한 사라지게 됩니다. Shared Preferences는 해당 경로에 .xml 형태로 저장됩니다. d..

[Android] Dive into concept of Configuration. (App Lifecycle, 화면 전환 등)

목차 Configuration 소개 Activity Recreate 상태 보존 생성 제한 결론 Configuration 소개 Configuration 클래스는 응용 프로그램 리소스에 영향을 줄 수 있는 모든 장치 구성 정보를 설명한다. 여기에는 사용자 지정 옵션(화면 스케일, 로케일, 입력 모드, 화면 방향 전환, 화면 크기와 같은 장치 구성 정보가 포함된다. val config = resources.configuration와 같이 접근할 수 있다. 일부 기기 구성은 앱이 실행되는 동안 변경될 수 있다. 여기에는 다음이 포함되지만 이에 국한되지 않는다. 앱 디스플레이 크기 화면 방향 글꼴 크기 및 두께 언어 어두운 모드와 밝은 모드 비교 키보드 사용 가능 여부 구성 변경은 대부분 사용자 상호작용으로 인해..

[Android] What is Gradle?

What is Gradle? Gradle은 거의 모든 유형의 소프트웨어를 빌드할 수 있을 정도로 유연한 오픈 소스 빌드 자동화 도구이다.Gradle은 무엇을 구축하려고 하는지 또는 어떻게 구축해야 하는지에 대해 몇 가지 가정을 한다. 이러한 가정이 Gradle을 특히 유연하게 만든다. 안드로이드 스튜디오는 빌드 자동화 도구로 Gradle을 사용한다. 안드로이드 스튜디오에서 실제 빌드는 Gradle이 한다. Gradle은 다음과 같은 일을 한다. Compile : 리소스 및 소스 코드를 컴파일한다. (In Android, Kotlin, Java 코드 → 바이트 코드) Packaging : 코드를 패키징해서 aab, apk 파일로 만들어 준다. Test : 테스트 환경을 구축하고 지원한다. Deploy & ..

Foundation/Android 2023.04.19

[Android] Dive into concept of Android Context. (Application Context and Context)

목차 Context 정의 Context Tree Activity Context, Application Context Activity Context Application Context Context 사용 Context 사용과 메모리 누수 1. static 변수에 ActivityContext 사용 2. singleton 객체에서 ActivityContext 참조 Context 정의 애플리케이션 환경에 대한 전반적인 정보를 담고 있는 인터페이스이다. 여기서 전반적인 정보란, 애플리케이션의 리소스 파일 혹은 View에 대한 정보 등을 포함한다. Context에 쓰임은 주로 activityContext, applicationContext와 같이 사용된다. Context Tree Context는 abstract c..

[Android] Support different screen size. (큰 화면, 작은 화면 사이즈 대응)

이 글은 Compose를 사용하고 Bottom Navigation을 사용할 때 화면 사이즈에 대한 UI 구성을 부드럽게 하기 위한 간단한 예제이다. 이 예제는 Compose를 사용하였습니다. 이 글은 PC로 보는 것을 권장합니다. 1. Dependency 추가 Material3 Library Window Size Class를 사용하면 기기 화면 사이즈를 구할 수 있다. 실제 기기 사이즈와 앱 스크린 사이즈는 다를 수 있다. 출처 : https://developer.android.com/jetpack/androidx/releases/compose-material3?hl=ko 2. Code calculateWindowSizeClass()를 통해 window width size를 구할 수 있다. HomeScr..

[Android] Jetpack Compose 개념

Introduce Jetpack Compose는 Android를 위한 현대적인 선언형 UI 도구 키트이다. 더 적은 수의 코드, 강력한 도구, 직관적인 Kotlin API로 Android에서의 UI 개발을 간소화하고 가속화하여 앱에 생동감을 더해준다. 코드 감소 직관적 빠른 개발 과정 강력한 성능 간단한 Composable 함수 Compose를 사용하면 데이터를 받아서 UI 요소를 내보내는 Composable function 집합을 정의하여 사용자 인터페이스를 빌드할 수 있다. @Composable 주석이 있어야 함수가 데이터를 UI로 변환하기 위한 함수라는 것을 Compose 컴파일러에게 알릴 수 있다. 함수는 데이터를 받는다. 매개변수가 있을 수 있으며 이를 통해 앱 로직이 UI를 형성할 수 있다. ..

Foundation/Android 2023.01.29

[Android] Concept of DI Hilt. Dive into Hilt Components.

Component Hierarchy 기존 Dagger와 달리 Hilt 사용자는 Dagger의 Components를 직접 정의하거나 인스턴스화하지 않는다. 대신 Hilt는 사용자를 위해 생성되는 미리 정의된 Components를 제공한다. Hilt는 안드로이드 애플리케이션의 다양한 라이프 사이클에 맞춰 자동으로 통합되는 Components(및 해당 Scope Annotaion) 세트가 제공된다. 아래 Diagram은 Hilt Component의 계층 구성도를 보여준다. 각 Component의 주석은 해당 Component의 수명으로 바인딩 범위를 지정하는 데 사용되는 범위 지정 주석이다. Component의 화살표는 하위 Components를 가리킨다. 일반적으로 하위 Components의 바인딩은 상위 ..

[Android] 종속 항목 삽입(Dependency Injection)이란?

Introduce 종속 항목 삽입을 구현하면 다음과 같은 이점을 누릴 수 있다. 코드 재사용 가능 리팩터링 편의성 테스트 편의성 종속성 항목 삽입이란? 클래스에는 흔히 다른 클래스 참조가 필요하다. 예를 들어 Car 클래스는 Engine 클래스 참조가 필요할 수 있다. 이처럼 필요한 클래스를 종속 항목이라고 하며, 이 예에서 Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 한다. 클래스가 필요한 객체를 얻는 세 가지 방법은 다음과 같다. 클래스가 필요한 종속 항목을 구성한다. 위의 예에서 Car는 자체 Engine인스턴스를 생성하여 초기화한다. 다른 곳에서 객체를 가져온다. Context Getter 및 getSystemService()와 같은 일부 Android API는 이러한..

Foundation/Android 2022.11.19

[Android/Kotlin] JVM target 1.8 Error

안녕하세요 골드입니다. 오늘은 안드로이드 스튜디오에서 Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper '-jvm-target' option 에러를 수정하는 방법에 대해서 간단 포스팅을 하도록 하겠습니다. 저 같은 경우 build.gradle에 컴파일 옵션을 자바 1.8만 보고 이미 선언하였는데 해당 오류가 나타나서 당황했었습니다. 결론적으로 build.gradle에 코틀린 컴파일러 안에 타겟 JVM도 자바 1.8로 설정해야 한다고 선언해줘야 합니다. 여기까지 골드였습니다. 감사합니다.

Mobile/Issues 2021.11.06

[Android/Kotlin] 서울시 공공데이터 사용법

안녕하세요 골드입니다. 서울 열린 데이터 광장에 들어가시면 서울시에서 제공하는 다양한 API를 이용할 수 있습니다. 흔히 지하철, 버스, 도서관 등 다양한 정보들을 제공하고 있기 때문에 이를 이용하여 앱을 만들 수 있습니다. data.seoul.go.kr/dataList/datasetList.do 서울 열린데이터광장 전체 6,642건 을 찾았습니다. 정확도순 최신공개일순 조회순 제목순 조회 공공데이터 [일반행정] 민주주의 서울 자유제안 정보 서울시 시민제안 사이트로, 시민이 제안을 하면 10일동안 10표 이 data.seoul.go.kr 공공데이터 사용 먼저 홈페이지에 접속하고 로그인을 해야 합니다. 만약 아이디가 없다면 회원 가입 후 이용할 수 있습니다. 로그인을 하고 공공데이터 -> 데이터셋으로 접속..