DOING IN THIS WEEK : 심화 강의를 수강하고 개인과제를 위주로 진행하였다. 화요일에 강의를 들으며, 개인 과제 틀을 잡기 시작했고, 수요일에는 남았던 디버깅 강의를 듣고, 본격적인 개인과제를 시작했다. 처음에는 MVC 구조 (activity에서 로직 작성) 으로 이미지 검색 앱을 만들었고, 만들고 나니, 코드도 복잡하고, activity의 역할이 너무 큰 것 같아, MVVM 구조로 리팩토링하는 작업을 진행하였다. 금~토요일까지 해서 리팩토링을 마친 것 같고, 필수 구현 기능은 작업을 다 한 것 같다. FEELING : 확실히 심화 과정에 들어가고, 아키텍처 패턴 공부를 시작하게 되어 굉장히 복잡하고 어려워졌다. 처음에는 뭘 먼저 해야하지 싶었는데, 그냥 편하게 생각해서 1개씩 해치워보자고 ..
일일 회고 금요일이다. 뭔가 많이 했나? 한거 같긴하다. 개인 과제 기능구현은 거의? 다 한 것 같다. 이제 버그를 찾으면서 수정해보자.... 주말에는 선발대 과제를 해보면서 조금 쉬는 시간을 갖자.... 오늘의 키워드 Activity - LifecycleOwner, Fragment - viewLifecycleOwner Sealed Class Repository pattern Activity - LifecycleOwner Fragment - viewLifecycleOwner 개발을 하다보면 Activity와 Fragment를 함께 사용하면서 복잡한 생명주기를 다루게 되는 순간이 있다, 이럴 때에, 생명주기에 더욱 주의를 기울여야 하는데, AAC의 Lifecycle이 생명주기의 처리를 도와준다. LiveD..
Fragment, Fragment lifecycle 내일배움캠프 7기 Android TIL 34일차 (2023.08.31) 일일 회고 벌써 과제 제출일과 한 주의 마지막이 다 되간다. 과제는 얼추 다 정리하였으니 최종 제출을 하고, 내일은 다음주 프로젝트 시작을 위해 약간 쉬어가는 타임을 가지며 공부를 해봐야 aaapple.tistory.com 업데이트 필요 시 계속 업데이트
Sealed Class (& enum class) 등장 배경 여러 자식 클래스들이 하나의 부모 클래스를 상속받았다고 할 때, 컴파일러는 어떤 클래스들이 부모 클래스를 상속받았는지 알지 못한다. 그래서 이 문제를 해결하기 위해 sealed class라는 개념이 나왔는데 sealed class는 자신은 추상클래스이고, 자신을 상속받는 자식 클래스의 종류를 제한하는 특성을 가지고 있다. 컴파일 시 sealed class의 자식이 어떤 것이 있는지 알 수 있다는 것이다. 자식 클래스의 종류를 제한하기 때문에 다음과 같은 특성이 있다. 실드란 '봉인된'이라는 의미로 무언가 안전하게 보관하기 위해 묶어 두는 것 실드 클래스 그 자체로는 추상 클래스와 같기 때문에 객체를 만들 수는 없다. 생성자도 기본적으로는 pri..
일일 회고 개인과제, 선발대 과제가 있다. 둘 다 한다는 생각으로 하고 있긴 한데, 둘을 병행하면 힘들 것 같다고 생각하여 일단 개인과제부터 하기로 맘을 먹었다. 주말까지 최대한 개인과제를 마무리해본 다음, 수요일 선발대 세션이 돌아올 때까지 선발대 과제를 진행해 봐야겠다. 오늘의 키워드 mvvm 개요 개인 과제 MVVM 개요 왜 배우고 써봐야 하는가? - 안드로이드 기본 구조 mvc는 activity가 view, controller 역할을 같이 수행한다. - model을 통해 데이터를 주고받는다. - 이러한 방식은 SOLID원칙 중 S인 SRP 단일 책임 원칙을 위반하게 된다 - (view & controller) --> view와 business logic을 분리해 보자 비즈니스 로직을 present..
일일회고 선발대 세션 및 개인 과제를 진행하였다. 선발대 세션은 예고한 대로 mvvm 아키텍처를 공부하면서 난이도가 확 올라갔다. mvvm을 공부를 해본 적은 있지만 내가 공부했던 코드 방식과 좀 달라서 그런지 많이 헷갈렸다. 천천히 다시 공부해 봐야겠다. 개인과제는 처음에는 아키텍처 없이 코드를 구현하다가, retrofit으로 api연결까진 했는데, 코드가 너무 지저분해지는 느낌이 있어서 예전에 공부했던 mvvm 방식으로 리팩토링을 했다. UI와 로직을 나누니 코드가 좀 더 보기 좋아졌다. 이 상태에서 계속 기능 구현을 하고자 한다. 역시 심화의 시작이다 보니 난이도가 많이 어려워졌다. 차근차근히 공부해 봐야겠다. 오늘의 키워드 앱 개발 프로세스 선발대 세션 mvvm 개발 앱개발 프로세스 1. 아이디어..
일일회고 심화 강의를 듣고, 강의에 있는 예제도 한 번 해보았다. 강의에 있던 대로 데이터 타입을 하나 잘못 써주었더니, API로 데이터를 가져올 때, 바로 에러를 뱉어내었다. 이제 난이도가 많이 올라간 만큼, 세세한 것들도 잘 신경 쓰는 자세를 가져야 할 것 같다. 아마 내일부터 개인 과제를 시작할 것 같은데, 강의, 강의 자료 등을 통해 열심히 도전 해 볼 생각이다. 또, 이번에는 사용 기술에 제한이 없어 이것, 저것 많이 만져봐야겠다. (일단 아키텍처?) 오늘의 키워드 sharedPreference Room 위치 정보 활용 SharedPreference 프로그램을 만들다 보면 데이터를 다룰 일이 생기고 저장할 일이 생긴다. 보통 DB를 사용을 하지만 소량의 데이터의 같은 경우엔 리소스를 많이 잡는 ..
일일 회고 숙련 프로젝트가 마무리되었다. 다른 조의 발표도 보았고, 발표들을 통해 우리 조의 잘한 점과 아쉬운 점을 생각해 볼 수 있었다. 프로젝트는 끝이 났지만 간간히 코드를 보면서 복습을 하는 시간을 가지는 것도 좋을 것 같다. 내일부터는 심화과정의 시작이다. 난이도가 확! 올라간다고 하였으니 마음 가다듬고 열심히 임해야 할 것 같다!. 오늘의 키워드 프로젝트 피드백 선발대 과제 안드로이드 12 이후 스플래시 스크린 대응 프로젝트 피드백 더보기 동준 튜터님 - 시연영상이 좀 짧다. 조금만 길었으면 좋겠다. 영상이 짧아서 이해하기가 약간 아쉬웠다. 기능적인 면은 잘 구현된 것 같다. 성휘 튜터님 - 탭 인디케이터 색이 아쉽다 색이 확 구분되지 않아 어느 탭이 눌렸는 지 알기가 어렵다. 하이픈 붙이는 것..
DOING IN THIS WEEK : 프로젝트를 구현하였다. MainActivity - ContactListFragment를 맡아 메인 페이지 및 리사이클러뷰, 리사이클러 뷰 애니메이션 등 메인 페이지와 페이지 이동 시 데이터 전달을 위주로 구현을 하였다. 이번주의 키워드 프로젝트 구현 FEELING : 새로운 깃허브 관리 방법(Issue - pull request)을 적용해보고 굉장히 유용하다는 것을 느낄 수 있었다. 협업간에 원활한 소통이 얼마나 중요한 지 다시 한 번 잘 알 수 있었다. 우리 팀은 서로서로 대화를 많이 주고받아 협업하는데에 많은 어려움은 없었던 것 같다. FINDING THIS WEEK: 깃허브 이슈 관리 TabLayout 및 ViewPager 사용법 TabLayout 커스텀 아이콘..
일일 회고 프로젝트 정규일의 마지막 날이 다가왔다. 진짜진짜 5일이 순식간에 지나가 버렸다. 기능 구현은 거의 다 완성했고, 이제 버그를 찾아서 수정하는 작업을 위주로 하고, 발표 준비를 하면 될 것 같다. 주말도? 열심히 해보자! 오늘의 키워드 프로젝트 버그 수정 알람 기능 추가 프로젝트 버그 수정 1. 키 값 중복으로 인한 데이터 송수신 불가 페이지끼리 데이터를 주고 받는 부분이 두 군데가 있는데, 두 군데의 키 값이 같아서 데이터가 넘어오지 않는 문제가 있었다. 한 군데의 키 값을 바꾸어 주어 문제를 해결해였다. 2, 버그는 아니지만 데이터 타입을 수정을 하였다. 갤러리에서 이미지를 가져오는 부분이 있어 이미지 ID 값으로는 유지하기가 힘들게 되어 Uri를 통해 이미지를 보여주도록 데이터 클래스의 ..