Android/Sunflower

    [ Android ] [ Kotlin ] Navigation

    [ Android ] [ Kotlin ] Navigation

    Navigation은 무엇이고 왜 쓰는가? 💬 안드로이드 아키텍처는 하나의 액티비티에 여러 개의 프래그먼트를 사용하도록 권장된다. 💬 기존 Fragment 당 인스턴스를 생성하고 Transaction Manager을 통해 일일이 화면 replace를 하던 비효율적인 방식에서 벗어나서, Navigation을 사용하면 Fragment, Dialog를 포함한 앱의 스토리보드를 볼 수 있으며, 코드 또한 직관적이고 간결해지는 장점을 갖게 된다. 환경 설정 build.gradle (RootProject) buildscript { ext { nav_version = "2.2.0" } dependencies { classpath "androidx.navigation:navigation-safe-args-gradle-..

    [ Android ] [ Kotlin ] Hilt

    [ Android ] [ Kotlin ] Hilt

    의존성 주입이란? 💬 Dependency Injection (DI) 💬 여러 컴포넌트 간 의존성이 강한 안드로이드에서 클래스 간 의존성을 낮춰주기 위한 장치 💬 객체의 생성을 클래스 내부에서 하는 것이 아니라, 클래스 외부에서 객체를 생성하여 주입시켜주는 디자인 패턴 코드 예시 의존 관계를 형성하고 있는 코드 class Car { private val engine = Engine() fun start() { engine.start() } } fun main(args: Array) { val car = Car() car.start() } 생성자를 통한 의존성 주입을 실행한 코드 class Car(private val engine: Engine) { fun start() { engine.start() } }..

    [ Android ] MVVM 패턴

    [ Android ] MVVM 패턴

    들어가기 전에 ✔ 안드로이드 개발을 처음 시작한다면 하나의 액티비티에 모든 코드를 넣어서 개발을 하곤 한다. 이렇게 되면 시간이 지날수록 액티비티가 무거워지며 유지보수가 힘들어진다. 이와 같은 비효율적인 코드를 스파게티 코드라고 한다. ✔ 하나의 액티비티가 무거워지는 것을 방지하며 유지보수가 용이하도록 만들기 위해서 Architecture 패턴이 등장했고, 안드로이드에서 최근에 유행하는 디자인 패턴은 MVVM 패턴이다. ✔ 보다 나은 이해를 위해 MVC 패턴과 MVVM 패턴을 서로 비교하면서 살펴보자. MVC ✔ Model - View - Controller 시나리오 ◽ Controller가 사용자 동작을 받아들인다. (텍스트 입력, 버튼 터치 등) ◽ Controller가 사용자의 동작에 따른 Mode..