-
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주차 과제 Step1 #23
base: cleonno3o
Are you sure you want to change the base?
Conversation
|
||
object MapContract { | ||
object MapEntry : BaseColumns { | ||
const val TABLE_NAME = "map" |
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.
object 내에 object 로 선언하신 이유가 있으실까요?
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.
MapContract는 db를 가리키고 내부에 테이블마다 Column이름을 상수로 가지게 하려고 object로 선언했습니다!
그런데 나중에 step2에서 잊고 적용을 안한 것 같네요..
const val DATABASE_VERSION = 1 | ||
|
||
private const val SQL_CREATE_ENTRIES = | ||
"CREATE TABLE ${MapContract.MapEntry.TABLE_NAME} (" + |
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.
쿼리 잘 만드셨네요 👏
kotlin에서는 이렇게 multiline 으로 정의해야하는 string을 좀더 손쉽게 명세할수 있는 기능이 있습니다.
https://kotlinlang.org/docs/strings.html#multiline-strings
한번 써보시겠어요?
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.
잊고 있었던 기능인데 상기시켜 주셔서 감사합니다! 추후에 작성할 상황에서 적용해보겠습니다!
onCreate(db) | ||
} | ||
|
||
private fun initializeDb(db: SQLiteDatabase?) { |
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.
nullable 처리가 조금 아쉽네요
애초에 db가 null이라면 initializeDb함수가 호출되는게 의미가 없을거 같습니다.
어떤 경우에 db가 null이 될수 있나요?
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.
Android에서 자동 import를 했을때에 생성된 함수를 그대로 사용했었습니다!
그런데 안드로이드 공식문서나 예제에서도 non-null타입으로 db를 매개변수로 받는데 어느것이 맞는지 잘 모르겠습니다.
지금 생각해보기에는 앱을 설치한 후 사용자가 임의로 db파일을 직접 삭제하는 경우가 있을 것 같습니다!
지금 코드에서는 null이면 다시 onCreate를 호출하는 방향으로 수정할 것 같습니다!
content.put(MapContract.MapEntry.COLUMN_NAME_CATEGORY, location.category) | ||
content.put(MapContract.MapEntry.COLUMN_NAME_ADDRESS, location.address) | ||
|
||
writableDb.insert(MapContract.MapEntry.TABLE_NAME, null, content) |
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 작업은 에러가 발생할수 있는 대표적인 케이스중 하나입니다.
에러처리에 대해서도 한번 고민 해보시겠어요?
어려웠던 점
중점적으로 리뷰해주셨으면 하는 부분
제가 이해한 MVVM
이렇게 생각했고 코드를 작성했다고 생각하는데 맞는지 궁금합니다.