Corp. All rights reserved. Redistribution or public display is not permitted without written permission from Kakao. if(kakao)2022 : DI, 모듈화, UI를 중심으로 카카오페이 앱 리빌딩 스토리
쉽게 사용이 가능한 factory, single 함수 사용 빈도가 잦음 - 올바른 scope로 객체가 생성 되었는지 알 수 없음 // 호출할 때마다 객체를 새로 생성 factory { PayPaymentOfflineLocalDataSource() } // 앱 내에 하나의 객체만 생성 single { PayPaymentOfflineLocalDataSource() }
필요 - Navigation graph scope로 문제 해결 // parent fragment scope val viewModel: PayOfflineViewModel by navGraphViewModels(R.id.payment_offline_graph) // child fragment val parentsViewModel: PayOfflineViewModel by viewModels({requireParentFragment()}) Hilt 도입의 어려운 점
실행 기능 - Scheme 실행 기능 // Activity 실행 navigator.start(this@PayHomeFragment, Direction.NotificationFeed) // Scheme 실행 openSchemeList.collect { navigator.start(activity = this, directionsList = it) }
android:minWidth="0dp" android:minHeight="0dp" android:padding="0dp" android:text="@string/pay_ok" android:textAppearance="@style/PayApp.Text.Medium.Bold" android:textColor="@color/pay_grey800_daynight" app:backgroundTint="@color/pay_grey200_daynight" app:backgroundTintMode="src_atop" app:cornerRadius="0dp" app:rippleColor="@color/pay_grey300_daynight" /> Case1. 디자인 시스템 도입 전 버튼 활용 예시 필요에 따라 일부 Style 및 attribute로 작성
android:layout_height="52dp" android:background="@android:color/transparent" android:insetLeft="0dp" android:insetTop="0dp" android:insetRight="0dp" android:insetBottom="0dp" android:minWidth="0dp" android:minHeight="0dp" android:padding="0dp" android:text="@string/pay_ok" android:textAppearance="@style/PayApp.Text.Medium.Bold" android:textColor="@color/pay_grey800_daynight" app:backgroundTint="@color/pay_grey200_daynight" app:backgroundTintMode="src_atop" app:cornerRadius="0dp" app:rippleColor="@color/pay_grey300_daynight" /> Case1. 디자인 시스템 도입 전 버튼 활용 예시 필요에 따라 일부 Style 및 attribute로 작성