-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
경북대 Android 남지연 5주차 과제 Step2 #65
base: njiyeon
Are you sure you want to change the base?
경북대 Android 남지연 5주차 과제 Step2 #65
Conversation
리베이스 부탁드려요 ~ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번 주차도 수고하셨습니다!
Hilt와 Room 잘 사용해주셨습니다. Module도 잘 분리해주신것 같네요!
다만 Android Repository Pattern에 대해서 조금 더 학습이 필요해보입니다. 현재 구현이 LocalDB 관련 로직만 남겨있는데 보통의 Repository Pattern과는 조금 달라보이네요.
이번주는 그냥 넘어가셔도 좋으신데 확실히 학습하시고 반영하신 후 넘어가시면 좋겠습니다.
리뷰 남겨드리니 확인 부탁드려요~
@@ -4,4 +4,4 @@ import campus.tech.kakao.map.model.Item | |||
|
|||
interface OnSearchItemClickListener { | |||
fun onSearchItemClick(item: Item) | |||
} | |||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ViewModel에 리스너가 있는건 어색하네요. View로 옮겨주세요
import campus.tech.kakao.map.repository.keyword.KeywordDao | ||
import campus.tech.kakao.map.repository.location.ItemDao | ||
|
||
@Database(entities = [Keyword::class, Item::class], version = 1) | ||
@Database(entities = [KeywordEntity::class, LocationEntity::class], version = 2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Item -> LocationEntity로 변경하셨으니 ItemDao도 그에 맞게 변경하면 좋겠네요
@Singleton | ||
class KeywordRepository @Inject constructor(private val keywordDao: KeywordDao) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DatabaseModule에서도 KeywordRepsoitroy 의존성을 생성하고 여기서도 생성하시는 이유가 있을까요?
특별한 이유가 없으면 하나의 방법으로 통일시키는게 좋겠습니다.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DatabaseModule
에서만 생성하도록 수정하였습니다 !
@@ -24,6 +24,10 @@ import javax.inject.Inject | |||
@AndroidEntryPoint | |||
class SearchActivity : AppCompatActivity(), OnSearchItemClickListener, OnKeywordItemClickListener { | |||
private lateinit var binding: ActivitySearchBinding | |||
|
|||
@Inject | |||
lateinit var api: KakaoLocalApi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
KakaoLocalApi를 주입받는 이유가 있을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Viewmodel
에서 처리를 하고 있으므로 따로 주입받을 필요가 없습니다 ! 해당 부분을 삭제하도록 하겠습니다 !
private lateinit var searchViewModel: SearchViewModel | ||
private lateinit var keywordViewModel: KeywordViewModel |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ViewModel를 by viewModels 를 통해 ViewModel을 LAZY 하게 providing 받을 수 있는 기능을 제공합니다. 한 번 적용해보세요!
혹시 코루틴 적으로 레벨업 하시려면 Flow를 최대한 사용해보시면 좋을 것 같네요! |
…wordDbHelper.kt Delete KeywordDbHelper
…wordContract.kt Delete KeywordContract
…cationDbHelper.kt delete LocationDbHelper
중점적으로 리뷰해주셨으면 하는 부분
데이터바인딩
과코루틴
을 적용할 수 있는 부분에 최대한 적용하였다고 생각했는데, 혹시 부족한 부분이나 추가적으로 적용할 수 있는 부분이 있는지 궁금합니다 !