본문 바로가기

개발노트/Kotlin55

10주차 3일 이모저 1. SharedPreferences Preference란? 프로그램 설정 정보를 영구적으로 저장하는 용도로 사용 휴대폰 내부 용량에 정보를 저장 저장하는 메소드와 로드하는 메소드를 구현해서 저장타이밍과 로드 타이밍을 지정해서 사용할 수 있다. 지금까지 팀 프로젝트를 진행하면서 해당 기능을 사용하지 않아 앱이 종료되면 내용이 저장이 되지 않았다. 하지만 이 기능을 사용하면 손쉽게 저장할 수 있다. 다만 기기 내부에 저장하는 방식이다보니 보안적인 그리고, 앱 사용자의 경험의 측면에서는 좋다고는 볼 수 없을 것 같다. 물론 서버에 전부 데이터를 저장하는 것은 비용이 발생하는 일이며 기업에게도 부담스러운 일인 것은 맞다. 카카오톡의 모든 내용이 기기 말고 서버에 누적이 된다면 그 것 대로 기업에서 부담해야하는.. 2023. 9. 13.
10주차 2일 뷰모델 개요 뷰 모델은 안드로이드 스튜디오에서 사용할 수 있는 MVVM모델이다 안드로이드 스튜디오의 각 정보는 캡슐화되어있기 때문에 데이터 접근 방식이 무척이나 힘들다. 당장 액티비티/액티비티 프래그먼트/액티비티간의 정보 통신만 해도 끔찍하다고 생각이 들 때가 있다. 이러한 문제를 해결하기 위해 나온 것이 바로 뷰 모델이다. 1. 뷰 모델에 대하여 뷰 모델은 m-v-v-m모델이다 model view viewmodel mdoel 뷰는 뷰모델을 알지만 뷰모들엔 뷰를 모른다 뷰모델은 모델을 알지만모델은 뷰모델을 모른다 이런 구조를 통해 뷰모델과 모델이 뷰로부터 완전히 독립된 형태를 가지게된 구조가 완성된다. 뷰 : 뷰는 말 그대로 평소에 다루던 view다. 뷰 모델 : 뷰 모델은 뷰가 사용할 메서드와 필드를 구현하고.. 2023. 9. 12.
10주차 1일 인터페이스 인터페이스를 null값이 들어가는 문제가 있었죠. interface NewUserListener { fun onNewUser(user: UserModel) } var newUserListener: NewUserListener? = null 이 부분 만으로는 context를 지정해주지 않는다. 따라서 newUserListener는 null값이 계속 들어오므르 그 것을 해소해줄 필요가 있다. 이에 대한 해결 방법으로는 fun setListener(context: NewUserListener) { newUserListener = context } 라는 메소드를 만들어서 //메인 액티비티 부분 private fun dialogView() { val myAddContactDialogFragment = AddCon.. 2023. 9. 11.
9주차를 돌아보며 재밌고도 괴로웠던 9주차 팀프로젝트가 오늘로 마무리되었습니다. 오전 8시에 일어나고 새벽 3~5시에 잠들기를 주말까지 반복한 결과 거의 시체가 되었지만 하나하나 구현되고 조각처럼 맞춰지는 우리 프로젝트를 보면 피곤함은 감수할만했습니다. 하지만 저번주를 돌아보자면 가장 아쉬운점은 이 것인 것 같습니다. '프로젝트 진행하면서 문서화의 신경을 못썼다' 회의 내용과 합의 내용을 대부분 말로만 남기고 문서화 하지 않아 재확인 하는 과정이 여러번 필요했던 것 같습니다. 솔직히 TIL도 제대로 작성되지 않은 부분도 있기 때문에 바쁘고 힘들더라도 무언가 흔적을 남겨두지 못해 다시 찾아볼 때 어려움이 컸습니다. 다음 프로젝트부터는 문서를 많이 남겨놔야겠습니다. TIL은 너무 힘들다면 참고했던 링크들이라도 남겨두는걸로. 2023. 9. 11.
9주차 5일 1. 아이템 뷰 오류 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BookMarkHolder { return BookMarkHolder( BookMarkItemBinding.inflate(LayoutInflater.from(parent.context),parent,false) ) } 부분에서 BookMarkItemBinding.inflate(LayoutInflater.from(parent.context) 까지만 적어서 생긴 문제였다. 맙소사! 참고 블로그 https://bada744.tistory.com/140 [Android/Kotlin] 안드로이드 주소록 앱(Contacts)에서 연락처 상세 정보 가져오기, cursor의 co.. 2023. 9. 8.
9주차 4일 뷰 타입 분기 구현 완, 북마크 구현 완 1. 뷰 타입 companion object { const val VIEW_TYPE_1 = 1 const val VIEW_TYPE_2 = 2 const val VIEW_TYPE_3 = 3 } private var list = mutableListOf() private var viewTypeState = VIEW_TYPE_1 fun typeChange(newType: Int) { viewTypeState = newType notifyDataSetChanged() } 어뎁터 추가문구 override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder { return when (viewType) { VIEW_TYPE.. 2023. 9. 7.