목록Kotlin & Android (5)
코린이 개발로그
viewModel()Android 를 개발할때 ViewModel 은 필수적인 요소로 사용되고있습니다.Compose 로 개발할때도 ViewModel 은 여전히 많이 사용됩니다.일반적인 Compose 의 예제를 확인했을때 우리는 Compose 에서 제공하는 viewModel() 함수를 주로사용하는것을 볼 수 있습니다.@ComposableMyScreen() { val viewModel = viewModel() ...}일반적으로 사이드 프로젝트나 비교적 간단한 어플리케이션의 경우에는 해당 함수를 간단하게 사용해도 큰 문제가 없습니다.하지만 해당 함수는 몇가지 파라미터를 받고있습니다.@Suppress("MissingJvmstatic")@Composablepublic inline fun viewModel( ..
DI란? DI는 Dependency Injection의 줄임말로 의존성 주입이라는 뜻을 가지고 있습니다. 일반적으로 클래스에는 다른 클래스 참조가 필요한 상황이 자주 있습니다. 예를 들면 Car라는 클래스는 Engine 클래스 참조가 필요할 수 있습니다. 이처럼 필요한 클래스를 종속 항목이라고 하며, 이 예에서 Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 합니다. 이제 여기서 우리는 Engine클래스를 만들어 주는데 3가지 방법이 있습니다. Car 라는 클래스 안에서 직접 Engine 인스턴스를 생성한다. 다른 곳에서 해당 인스턴스를 불러온다. 매개변수로 Engine 인스턴스를 제공받는다. 이 세번째 방법이 바로 의존성 주입입니다. 이로써 Car클래스는 Engine인스턴스를 ..
위젯은 다른 애플리케이션에 삽입되어 주기적인 업데이트를 받을 수 있는 소형 애플리케이션 뷰입니다. 앱 위젯을 만들기 위해 다음과 같은 단계가 있습니다. Manifest에 위젯과 리시버 등록하기. AppWidgetProviderInfo객채 구현 AppWidgetProvider를 상속받은 클래스 구현 widget layout 구현 이 모든 과정을 끝내야 위젯이 정상적으로 작동하게 됩니다. 현재는 이 과정을 따로 하지 않아도 Android Studio에서 New > Widget > AppWidget을 통해 위 과정을 한 번에 진행할 수 있습니다. Manifest에서 위젯 선언하기 여기서 name에 해당하는 속성은 직접 만들어준 AppWidgetProvider를 상속받은 클래스입니다. 또한 intent-filt..

디자인 패턴 소프트웨어를 여러 사람이 협업해서 개발할 때, 정해진 패턴이 없다면 다른 사람의 코드 구조를 이해하는 것이 어렵습니다. 또한 이를 유지 보수하는데 많은 노력이 들 거라고 생각합니다. 이러한 문제를 해결하기 위해, 디자인 패턴이 존재합니다. 디자인 패턴은 개발자끼리의 일종의 약속이라고 생각합니다, 이 약속을 서로 지키게 되면, 서로의 코드를 이해할 때 많은 노력을 들이지 않아도 쉽게 이해할 수 있을 거라고 생각합니다. 예를 들어 구글에서 제공하는 MVP패턴이 있습니다. 그러면 100명의 개발자에게 하나의 기획을 주고 개발을 하라고 했을 때와, 구글에서 제공하는 MVP패턴을 참고해서 작성하라고 한다면, 전자는 서로 각기 다른 구조의 앱이 될 거라고 생각하고, 후자의 경우 서로 다른 실력에도 비슷..