본문 바로가기

분류 전체보기20

코틀린 Object와 Companion Object 차이? - kotlin 오늘은 비슷한거 같으면서 다른 Object declaration와 Companion object의 차이에 대해서 알아보려한다. 보통 Kotlin에서 Java의 static과 같은 정적 변수 및 메서드를 사용하기 위해 보통 object나 Companion object를 사용하는데 object부터 차근차근 알아보자. Object declaration이란? Object declaration은 싱글톤 패턴을 더 쉽게 사용하기 위해 코틀린에서 제공하는 일종의 객체 선언 키워드라고 볼 수 있다. 예시 코드를 한번 봐보자. object ObjectDecl { const val OB_STRING = "1" fun obtest() {} } Object는 위와 같은 형태로 선언할 수 있고 다음과 같은 특징이 있다. Sin.. 2023. 4. 28.
코틀린 Companion Object란? - kotlin 오늘은 코틀린의 companion Object에 대해서 알아볼 것이다. 자바에 static 변수(필드), 메서드가 존재하듯 코틀린에서도 정적 변수와 함수가 존재한다. 그러나 코틀린의 문법 특성 상 클래스 안에 이것들을 클래스 안에 둘 수는 없고, 코틀린에는 static이라는 키워드가 존재하지 않는다. 그럼 어떻게 사용할까? 이 때를 위해 존재하는 것이 companion object라는 것이다. 먼저 Companion Object에 대해 알아보기 전에 Java의 상수 코드를 먼저 봐보자. public class Animal { static final int MAX_AGE = 100; } public static void main() { System.out.prinln("최대 나이는 " + Animal.MA.. 2023. 4. 27.
안드로이드 Compose란? Compose가 필요한 이유 오늘은 Compose에 대해서 한번 알아볼 것이다. 안드로이드 개발자들 사이에서 요즘 굉장히 핫한 Compose가 무엇인지, 그리고 왜 필요한지에 대해서 정리해보고자 글을 써봤다. 일단 Compose가 필요한 이유는 크게 3가지이다. xml을 벗어난 UI 개발 선언형 UI 상속이 아닌 확장 XML을 벗어난 UI 개발 먼저 기존 안드로이드 UI의 특징을 살펴보자. 기존까지 안드로이드 UI를 다룰때는 Xml에다가 UI 속성을 정의를 하는경우가 있고, Class에서 프로그래밍으로 정의를 하는 경우가 있었다. 안드로이드는 기본적으로 Xml를 통해서 UI를 만든 다음에 class(Activity or Fragment or Dialog 등등)에서 UI를 컨트롤 하고 xml의 UI들을 클래스에서 사용할 셋팅이 필요하.. 2023. 4. 26.
안드로이드 Content Provider란? 오늘은 콘텐츠 프로바이더(Content Provider)에 대해서 알아보도록 할 것이다. 콘텐츠 프로바이더는 앱 간의 데이터 공유를 목적으로 사용되는 컴포넌트이다. 그리고 안드로이드의 4대 컴포넌트 중 하나기이도 하다. 한번 예시를 보며 알아보도록 하자. 콘텐츠 프로바이더 구조 먼저 A라는 앱과 B라는 앱이 있다고 가정하자. B라는 앱은 파일 데이터, 데이터베이스, Preference 등 여러 가지의 데이터를 가지고 있다. 이 데이터를 A 앱에서 접근할 수 있을까? 물론 없다. 파일 데이터가 외장 메모리 공간에 저장되어 있다면 가능하겠지만 여기서 말하는 데이터는 내장 메모리 공간에 저장된 데이터이므로 접근이 불가능하다. 하지만 콘텐츠 프로바이더를 이용하면 접근이 가능하다. A앱에서 B앱의 데이터를 이용하.. 2023. 4. 25.