분류 전체보기 (173) 썸네일형 리스트형 [Android] Compose 사용하기 - 1. remember와 MutableState Jetpack Compose를 공부하며 예제를 만들어보는 도중, 처음 접하게 되는 키워드들과 클래스, 함수들이 상당히 많았다.해당 키워드와 클래스들을 사용하지 않으면 Compose를 사용하는 것에 무리가 있을 것으로 판단이 되었고, 따라서 예제를 만들어 보면서 기본적인 것부터 정리해 나가려고 한다. 이번 글에서는 그 중 가장 처음에 접하게 되었던 remember과 MutableState에 대하여 사용 방법을 정리해 보았다. 우선,기본적으로 Compose에서 어떠한 상태 값이 바뀌게 되면 재구성(Recomposition)이 일어나게 된다.여기서 재구성이란, 말 그대로 재 생성한다는 뜻이다. 예로 들어, a라는 값을 기본으로 가지고 있고 버튼을 누르면 b라는 값으로 변경되는 TextView가 있다고 가정해 .. [Android] Compose 란? 혼자 스터디를 진행하고 이해한대로 작성된 글이기 때문에 옳지 못한 정보가 있을 수 있습니다.잘못된 부분은 언제든지 지적해주시면 감사하겠습니다.Jetpack에는 Compose라는 것이 있다.지금까지 사용하던 XML을 사용하지 않고 코틀린으로 선언하여 화면을 그릴 수 있는, Native UI를 코드레벨로 구현할 수 있도록 도와주는 도구이다. 필자가 Jetpack Compose에 대하여 공부를 진행하고 있으나, 생각보다 러닝커브가 있는 것으로 보인다.기존의 XML 방식만 사용하다 다른 방식을 사용하면서 사용 방법에 대한 갭 때문에 어렵게 느껴지는 것도 있는 것으로 보이는데, 최대한 많은 부분을 이해해보고자 Compose에 대한 글을 작성하려고 한다. 혼자 공부하고 이해한 대로 작성한 글이기 때문에 잘못 된 부.. [Gradle] Implementation vs Api Gradle에서 dependencies 블록에서는 implementation, annotationProcessor, api, lintChecks 등 다양한 키워드를 사용하여 종속 항목을 추가할 수 있다. 그중, 사용 용도가 비슷하여 헷갈릴 수 있는 api와 implementation의 차이점에 대하여 알아보고자 한다. 안드로이드 공식 페이지에서 API와 Implementation에 대하여 확인해보면 다음과 같이 나와있다. implementation Gradle이 컴파일 클래스 경로에 종속 항목을 추가하고 빌드 출력에 종속 항목을 패키징 합니다. 그러나 모듈에서 implementation 종속 항목을 구성하면 모듈이 컴파일 시간에 종속 항목을 다른 모듈에 누출하기를 바라지 않는다는 것을 Gradle에 알려.. [Android] AAC (Android Architecture Components) 란 ? (Feat. ViewModel) 지금까지 AAC에 대한 카테고리로 글을 작성한 것들이 있는데, 막상 생각해보면 AAC에 대해서 명확하게 인지하지 못하고 이것이 AAC다 라는 것만 보고 이전 글을 작성하였다. 따라서 AAC가 무엇인지, AAC에서 필자가 헷갈렸던 부분에 대해서 한번 정리하고 넘어가고자 한다. 우선, AAC가 무엇인가 ? AAC는 Android Architecture Components의 약자로, 테스트와 유지보수가 쉬운 앱을 디자인할 수 있도록 돕는 라이브러리의 모음이다. 쉽게 말해서 라이브러리 모음이라고 할 수 있다. Google I/O 2017에서 새로운 라이브러리를 AAC로 묶어서 발표를 하여 AAC라는 것이 사용되게 되었고, Google I/O 2018에서 Android Jetpack을 발표할 때는 Jetpack의.. [Gradle] 빌드 변형 구성을 사용하여 하나의 앱을 나눠보자. Developer 페이지를 확인해보면, 빌드 구성 개요를 토대로 단일 프로젝트에서 다양한 버전의 앱을 생성하기 위해 빌드 변형을 구성하는 방법과 관리하는 방법을 설명해주고 있다. 기본적으로 사용하고 있던 Debug와 Release 외에도 원하는 대로 커스텀하여 앱을 나누어서 사용이 가능한데, 이번에는 해당 방법에 대해 알아보고자 한다. 우선, 가장 간단한 방법으로 앱을 나눠보도록 하자. buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } Module 범위의 gradle에서 buildTypes를 확인해보면, 별 .. [Koin] Gradle 7.2버전 이상과 Koin 3.2 버전에서 Koin의 변경점. 2022.05.20 - [Android/Gradle] - [Gradle] Gradle 7.2 버전 대응하기. 이전에 작성한 게시글을 보면 알 수 있겠지만, Gradle 7.2 버전 이상부터는 jcenter()가 제거되었다. 기존에 사용되던 jcenter()는 위와 같은 주석과 함께 Lint가 발생하고 있었으며, gradle 버전이 7.2로 올라감에 따라서 jcenter()가 완전히 제거가 되었다. 해당 경고가 오래전부터 떠있었기 때문에 영향 있는 부분은 없을 것이라고 생각했지만, 기존에 사용하고 있던 Koin에서는 jcenter()를 사용하고 있었기 때문에, 해당 부분이 제거됨에 따라 에러가 발생하게 되었다. jcenter()가 제거된 상태로 sync를 진행해 보면, 이처럼 기존에 사용하고 있던 koin.. [Gradle] Gradle 7.2 버전 대응하기. Bumblebee가 나온 이후로, 최신 버전으로 프로젝트를 생성하면 Gradle이 좀 다른 것을 볼 수 있다. Project 범위의 gradle과 setting.gradle에 변경사항이 있는데, 해당 변경사항에 따라 대응하는 과정을 작성해두려고 한다. 우선, gradle-wrapper.properties에서 gradle 버전을 확인해보면, distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip 이처럼 7.2 이상 버전에서 적용되는 방식이다. 정확한 버전을 확인하기 위해서는 Developer 사이트에서 확인하길 바란다. 지금까지 프로젝트를 생성하면, 다음과 같은 project 범위의 gradle을 볼 수 있었을 것이다. b.. [Firebase] Android12(SDK 31)을 Target할 때 FCM 변경점. (Feat. PendingIntent) TargetSDK 31 (Android12)를 대응하는 작업 도중, FCM에서 오류가 발생하여 이를 해결하는 과정을 작성해 두려고 한다. 여기서 FCM이란, Firebase Cloud Messaging의 약자로, Firebase에서 제공해주는 무료 푸시 서비스. 라고 생각하면 된다. 이번 게시글에서는 푸시 설정을 하는 방법에 대해서는 생략하고, targetSdk를 31로 설정하였을 때(Android 12), FMC에서 수정되어야 할 사항에 대하여 알아보고자 한다. 우선, target Sdk Version을 31로 올리고 여러 가지 확인을 하던 와중, Firebase에서 Push를 테스트하는데 다음과 같은 오류 메시지를 볼 수 있었다. java.lang.IllegalArgumentException: *.*.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 22 다음