-
Notifications
You must be signed in to change notification settings - Fork 33
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_주수민 2주차 과제 Step2 #34
base: cleonno3o
Are you sure you want to change the base?
Conversation
step2 기능구현 정리
RecyclerView를 사용했기 때문에 스크롤기능까지 추가됨
MainActivity: - 기능을 메서드로 분리 - LiveData를 통해 observe하도록 변경 MapViewModel: - LiveData로 View가 필요한 데이터를 관리하도록 변경 MapModel: - 함수명을 알아보기 쉽도록 변경 - 공통되는 기능을 메서드로 분리하여 재사용 ResultRecyclerAdapter: - 클래스 명을 더 적합한 이름으로 변경
} | ||
|
||
override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) { | ||
db?.execSQL(SQL_DELETE_ENTRIES) |
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.
db 버전이 업그레이드될때 실행되는 마이그레이션 작업인데
지금은 모든 데이터를 지우고 새로 설정 해주시고 계시네요 ㅎㅎ
지금은 실 서비스가 아니니까 상관 없는데
실제 서비스를 할땐 이런 작업을 유의해야합니다.
앱 업데이트를 했는데 내가 저장해둔 데이터가 날아가면... 무수히 많은 문의를 받을수도 있거든요
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.
이번 과제에서 실제로 upgrade하는 상황이 발생하지 않아 다 지워버리고 새로 생성한다고 구현했던 것 같습니다! 하지만 실제 서비스에서는 발생하면 정말 아찔할 것 같습니다.. 앞으로 실제 서비스여도 괜찮을지 고민해보며 구현하겠습니다!
private val helper: MapDbHelper = MapDbHelper(mContext) | ||
|
||
init { | ||
helper.readableDatabase |
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.
불필요한 init 함수로 보이네요~!
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.
step1 을 진행하면서 아무 작업도 안했을 때 db가 초기화 안되어서 만들었던 함수같습니다! 삭제하도록 하겠습니다!
|
||
fun insertHistory(historyName: String) { | ||
model.insertHistory(historyName) | ||
_searchHistory.value = model.getAllHistory() |
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.
(아직 안배우셨을거 같아서 대응하지 않으셔도 됩니다)
db에 쿼리를 날리는 작업은 대체로 오래 걸립니다.
지금도 쿼리가 실행되는 시간을 측정 해보시면 몇십~몇백ms정도는 나올거에요
이정도 눈깜빡할 시간도 UI 쓰레드에서 실행하면 유저에겐 버벅임으로 느껴질수 있습니다.
UI쓰레드를 방해하지 않을 방법을 한번 고민 해보시면 좋을거 같아요
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.
SQLite 공식 문서도 백그라운드 스레드에서 하는것을 하는군요. 추후 스레드를 공부해보고 개선된 방법을 적용하겠습니다!
안드로이드 에뮬레이터에서 실행할때 살짝 버벅였던 게 그런 이유였나 싶습니다!
Step1 커밋
https://github.com/kakao-tech-campus-2nd-step2/android-map-keyword/pull/34/files/0183943bcffa34d9682fdcaf65af7165c8b29c2b
어려웠던 점
중점적으로 리뷰해주셨으면 하는 부분
제가 이해한 MVVM과 구현한 클래스
이렇게 생각했고 코드를 작성했다고 생각하는데 맞는지 궁금합니다.
실행화면