본문 바로가기

개발19

코틀린 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.
안드로이드 디자인패턴 MVC와 MVP의 차이? 오늘은 안드로이드에서 정말 중요하다고 할 수 있는 디자인 패턴 MVC, MVP에 대해서 알아볼 것이다. 사실 가장 많이 쓰이는 패턴은 MVVM이지만 그래도 다른 패턴들 먼저 알아보고자 한다. 그래서 오늘은 MVC와 MVP 패턴의 차이를 먼저 알아볼 것이다. MVC 먼저 MVC 패턴에 대해서 간단하게 설명해보면 MODEL : 데이터 관리 View : 유저에게 보여주는 화면 Controller : 사용자의 요청을 인식하여 Model에서 요청에 맞는 데이터를 가져오고 View에 적용 안드로이드에서의 MVC 안드로이드에서 MVC를 매칭시켜보면 View : Activty(View, Fragment) Controller : Activity(Button.setOnClickListener) Model : Model V.. 2023. 4. 24.