본문 바로가기

TIL

(74)
TIL 74일차 - 최종프로젝트 발표 대본 준비 & 발표 연습  튜터님 코드 리뷰 내용기존 여러 개로 나뉘어져있던 패키지를 data, network, presentation 3개로 정리(클린아키텍쳐)MVVM 패턴으로 일관성있게 정리mapper를 이용해 의존성 분리패키지명, 파일명 등을 잘 지어야 나중에 편하다SharedPreference 보다는 DataStore를 이용해 볼 것
TIL 73일차 - 최종프로젝트 Paging대량의 데이터를 효율적으로 로드하고 표시하기 위한 라이브러리 특징 Paging 데이터로 작업하는 동안 시스템 리소스를 효율적으로 사용할 수 있다요청 중복 삭제 기능이 기본 제공되므로 앱에서 네트워크 대역폭과 시스템 리소스를 효율적으로 사용할 수 있다사용자가 로드된 데이터의 끝까지 스크롤할 때 구성 가능한 Recyclerview 어댑터가 자동으로 데이터를 요청한다새로고침 및 재시도 기능을 포함하여 오류 처리를 기본으로 지원한다 Paging 라이브러리의 구성요소는 앱의 세 가지 레이어에서 작동한다저장소 레이어ViewModel 레이어UI 레이어저장소 레이어저장소 레이어의 기본 페이징 라이브러리 구성요소는 PagingSource이다. 각 PagingSource 객체는 데이터 소스와 이 소스에서 데이터..
TIL 72일차 - 최종프로젝트 class StratagemListActivity : ComponentActivity() { private val viewModel by lazy { ViewModelProvider( this, StratagemViewModel.StratagemViewModelFactory() )[StratagemViewModel::class.java] } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) enableEdgeToEdge() viewModel.getStratagem() setContent {..
TIL 71일차 - 최종프로젝트 Compose 에서의 화면 이동 구현하는 방법@Composablefun Title() { Box(modifier = Modifier.fillMaxSize()) { Image( painter = painterResource(id = R.drawable.helldivers2_title), contentDescription = "Hell Divers 2 Title", contentScale = ContentScale.FillBounds, modifier = Modifier .fillMaxSize() .clickable { val..
TIL 70일차 - 최종프로젝트 모의 기술면접 피드백 정리DI에 관한 개념이 조금 약한 것 같다. 공식 문서를 참고하면 좋을 것이다.마찬가지로 무한 스크롤을 구현하는 Paging도 공식 문서를 참고하면 좋을 것이다.설명하는 방식은 괜찮지만 개념을 좀 더 확실하게 알고 가야 매끄러운 설명이 가능할 것이다.저번 모의 기술면접 때보다 좀 더 버벅인 감이 있다. 잘 모르는 질문이 나왔을 때 당황하지 않고 생각을 빠르게 정리해 설명하는 요령이 필요할듯 하다.
TIL 69일차 - 최종프로젝트 kapt에서 KSP로 마이그레이션 하기 KSP란?KSP(Kotlin Symbol Processing)는 kapt의 Kotlin 우선 대안이다. KSP는 Kotlin 코드를 직접 분석하기 때문에 시간이 최대 2배가량 빠르다. 또한 Kotlin의 언어 구성을 더 잘 이해할 수 있는 장점이 있다. 프로젝트에 KSP 플러그인 추가 & 의존성 추가plugins { id("com.google.devtools.ksp") version "1.8.10-1.0.9" apply false}plugins {    id("com.google.devtools.ksp")}ksp("androidx.room:room-compiler:2.5.0") kapt 플러그인 삭제 모듈에 더 이상 kapt와 함께 포함된 종속 항목이 없으면 ..
TIL 68일차 - 최종프로젝트 Compose를 이용해 로그인 화면의 UI를 만들어 보았다.class LoginActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { ComposeTestTheme { Surface ( modifier = Modifier.fillMaxSize() ) { LoginScreen() } } } }..
TIL 67일차 - 최종프로젝트 최종 프로젝트 앱의 APK 파일을 사용하고 있는 핸드폰에 설치를 해보았다.애뮬레이터에서 실행했을 때와는 UI에 조금 차이가 있었다.일단 색상의 문제(?)가 있었다.이 곳에서 설정한 색상과애뮬레이터 상에서 보이는 색상과, 스크린샷은 없지만 실제 핸드폰 기기 내에서의 색상이 제각각 다른 문제가 있었다. 조정이 필요할 수도 있다.그 밖에 테두리 설정이 안되어있다거나 하는 사소하게 다른 점도 있고, 가장 눈에 띄는 점은 컬러를 지정하지 않는 텍스트가 검은색으로 보이지 않는다는 점이였다.원인을 찾아보니, 내 핸드폰은 다크모드로 설정되어 있는데 텍스트의 컬러를 지정해주지 않아서 생긴 문제였다. 기기에서 따로 다크모드를 구현하지 않을 예정이기 때문에, 텍스트의 컬러가 지정되어있지 않은 부분에 전부 기본 컬러를 검은색..