전체 글 (103) 썸네일형 리스트형 [PROJECT]프로젝트 리팩토링 🚨 ISSUE 프로젝트를 진행하면서 서버에 저장된 매장 정보를 사용자에게 보여주는 과정에서 UI를 바로 렌더링 하지 못하는 issue가 발생했습니 다. SplashScreen이나 Loading 화면을 만들어 해결할 수 도 있겠지만 그러면 저 이거 못해요~~라고 인정하는 거 같아서 🐌 이를 개선하기 위해 기존 코드의 문제점을 분석해 보았습니다. 📌Activity class MyStoreActivity : AppCompatActivity(){ private lateinit var binding: ActivityMyStoreBinding private val viewModel: MyPageViewModel by viewModels() override fun onCreate(savedInstanceState: .. [Kotlin] LiveData 대신 StateFlow 사용하기 👩💻 오늘의 할 일 앞선 글에서 소개했듯이 프로젝트에 있던 LiveData들을 StateFlow로 대체하기 위해 공부하고 있습니다. 안드로이드에서는 어떤 이유로 Live Data를 StateFlow로 대체하라고 하는걸까요 ? StateFlow에 대해 알아보겠습니다. [Kotlin] Coroutine Flow 기존 진행하던 프로젝트를 리팩토링 하는 과정에서 two-way Binding을 사용하던 도중 Live Data의 타입을 변경할 수 있는 Transformation.map Operator가 import가 안되는 issue가 발생했습니다. Transformations.map AAC( chanho-study.tistory.com 📕 LiveData LiveData 개요 | Android 개발자 | And.. [Kotlin] Coroutine Flow 🚨Trouble Shooting 기존 진행하던 프로젝트를 리팩토링 하는 과정에서 two-way Binding을 사용하던 도중 Live Data의 타입을 변경할 수 있는 Transformation.map Operator가 import가 안되는 issue가 발생했습니다. Transformations.map AAC( Android Architecture Components) Library Utility Method Live Data를 사용자가 원하는 형태로 변환 원인을 찾던 도중 androidx.navigation Library 2.6 버전부터 LiveData 대신 Kotlin의 StateFlow를 사용하도록 권장하고 있다는 것을 알게 되었습니다. 즉, 버전이 2.6 이상인 경우 Transformations... [TEKHIT] KOTLIN 범위 지정 함수와 배열 출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉let 첫번째 매개 변수로 객체의 주소값이 들어옵니다. it 통해 객체의 프로퍼티나 메소들에 접근할 수 있습니다. let 호출인 객체가 Null이 아닌 경우에만 호출되기 때문에 컴파일러는 람다 안에서 it 파라미터가 널이 될 수 없는 값임을 보장합니다. Null이 될 수 있는 값을 안전성 검사를 걸쳐 Null이 될 수 없는 함수에 값으로 만들 수 있습니다. 코드 블럭 마지막에 작성된 값을 반환니다. t2 에 객체를 담기 위해선 마지막에 it 작성해 객체의 주소값이 반환될 수 있도록 해줘야 합니다. class TestClass1(var a1:Int, var a2:Int){ var a3:Int = 0 var a4.. [TEKHIT] KOTLIN FUNCTION 출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉Lambda Function 전달 받은 값을 처리 후 결과를 반환 합니다. 가장 마지막에 작성한 수식의 결과를 반환 합니다. (Int, Int) : 매개 변수의 타입을 정의합니다. val lambda1 : (Int, Int) -> Int = {a1:Int, a2:Int -> a1 + a2} 코틀린은 람다식만 작성이 가능합니다. val lambda2 = {a1:Int, a2:Int -> a1 + a2} 타입 생략이 가능합니다. val lambda3 : (Int, Int) -> Int = {a1, a2 -> a1 + a2} 코드가 엄청나게 줄어든당께요 ???? fun testFun3(a1:Int, a2:Int) .. [TEKHIT] Enum & SealedClass & Reflection 출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 열거형(Enum) 프로그램 개발 시 특정 그룹의 구성요소를 정의하는 값이 필요할 때 사용합니다. enum 지시자를 사용합니다. when과 함께 사용시 enum Class에 정의한 모든 경우에 대해 작성해주면 else를 생략 가능합니다. fun main(){ val r1 = getValue1(Direction2.SOUTH) val r2 = getValue2(Direction.EAST) println("r1 : $r1") println("r2 : $r2") } // 열거형 정의 enum class Direction{ NORTH, SOUTH, WEST, EAST } fun getValue2(a1:Direction.. [TEKHIT] 중첩 클래스 & NULL & Casting 출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉 중첩 클래스(Inner Class) inner 지시자를 사용해 클래스안에 작성하는 클래스 내부 클래스의 객체를 생성하려면 외부 클래스를 통해 참조해야 합니다. class Outer1{ // 프로퍼티 var outerValue1 = 100 // 메서드 fun outerMethod1(){ println("Outer1의 outerMethod1") // println("innerValue : $innerValue1") // innerMethod1() } var innerValue1 = 200 fun innerMethod1(){ println("Inner1의 innerMethod1 입니다") } inner class.. [TEKHIT]Companion & Data Class & Generic 출처 : Tekhit Android App School / Soft campus 윤재성 강사님 🎉Companion Object Java의 static Kotlin에서 정적 멤버를 생성하는 클래스 프로그램 전체에서 오직 하나만 만들어 사용하는 변수 객체 생성없이 바로 사용할 수 있는 요소 객체의 멤버로 취급되지 않습니다. fun main(){ println(kotlinValue1) println(kotlinMethod()) } class TestClass2{ companion object{ var kotlinValue1 = 1000 fun kotlinMethod() = println("kotlin Method") } } 🎉 Data Class 객체의 맴버를 보다 쉽게 관리할 수 있게 만든 클래스 data .. 이전 1 ··· 4 5 6 7 8 9 10 ··· 13 다음