안드로이드(28)
-
Android 에서 TDD를 습관화하기
TDD?Test Driven Developmentsw의 개발 전에, 테스트 사례로 제시되는 요구사항에 의존하는 개발 프로세스가장 쉽고 빠르고, 신뢰 가능한 방법은 Red, Green, Refactor로 구성하는 방법! 테스트 라이브러리Truth — value를 asserting하기 위한 라이브러리Turbine — Flow에서 받은 value를 asserting하기 위한 라이브러리 Mockito — mock데이터를 위한 라이브러리JUnit4 — java 기본 유닛 테스트 프레임워크JUnit5 — Java 단위 테스트 프레임워크 → 알아서 추가하시오 예제@AndroidEntryPoint class ContactsFragment : Fragment() { // Let's pretend this is a cla..
2023.11.30 -
When 조건문을 다양하게 사용하기
kotlin을 사용하는 개발자들이라면..주로 조건 필터링을 when을 사용할것이다. 왜냐면 보기 편함 when문이라는것은 …기본 구문when(x) { value -> {} value2 -> {} value3 -> {} }이런 식으로 사용을 하는 친구인데 단일 케이스 다중 값when(x) { 1,2,3 -> {} else -> {} }이런식으로, 공통된 결과를 만드는 케이스들을 모아서 사용할 수도 있다.여기까지는 다들 사용하고 있을거고…나도 익숙하다.아래부터는 조금 다양한 변형을 살펴보자 조건 분기when [ x.isOdd() -> {} x.isEven() -> {} else -> {} }이런 식으로..표현식을 포함한 조건들도 비교가 가능하다. 스마트 캐스트when(x) { is String -> {} i..
2023.11.30 -
Useful modifier
알아두면 유용한 두 개의 수정자를 소개합니다~~ Offset modifier의 offset 을 통해 x 및 y 위치를 변경할 수 있음 @Composable funOffsetModifier( modifier:Modifier = Modifier ) { Box( modifier = modifier .padding(50. dp) .ground(Color.LightGray) .fillMaxWidth() .height(100. dp), contentAlignment = Alignment.TopCenter ) { Text( text = stringResource(R.string.offset_content), modifier = Modifier.offset(x =0. dp, y = -(15. dp)), style = ..
2023.11.30 -
Kotlin testable code
모든 개발자들의 숙명여전히 테스터블한 코드 하하 (지도 못 짬) 그래서 대충 긁어와봤다 1. 인터페이스를 사용할것인터페이스란? 구현 요구 사항을 위한 빈 껍데기. 캡슐화할때 습관적으로 써야한다~~~~ 좋은 테스트 환경을 만들기 위해서는 구현 클래스가 인터페이스를 받아 구현함으로써 규칙에 맞게 개발되도록 해야한다 // interface interface LoginRepository { fun signIn(authId: String): String } // concrete implementation class class LoginRepositoryImpl: LoginRepository { overide fun signIn(authId: String): String { // implementation logi..
2023.11.30 -
Kotlin flow 병렬로 장기 작업 실행
작업 가져오기특정 날짜에 결석한 학생 테이블에서 학생 정보 가져오기물리학을 공부하는 학생 목록 가져오기 // 결석 학생 목록을 가져오는 suspension 함수를 정의합니다. stop fun getAbsentStudents (date: Date ) : List { // 결석 학생 목록을 가져오기 위해 장기 실행 작업을 수행합니다 . // 결석 학생 목록을 반환합니다 . } // 물리학을 공부하는 학생 목록을 가져오기 위해 일시 중지 함수를 정의합니다. suspens fun getPhysicsStudents () : List { // 물리학을 공부하는 학생 목록을 가져오기 위해 장기 실행 작업을 수행합니다. // 물리학 학생 목록을 반환합니다. } / / 두 가지 정지 함수의 실행을 병렬화하는 흐름을 정의..
2023.11.01 -
Compose Viewpager
주요 기능 선택한 항목이 컨테이너 중앙에 배치됩니다.호출기는 수평 또는 수직으로 스크롤할 수 있습니다.항목은 컨테이너 크기의 일부를 차지할 수 있으므로 인접한 항목이 측면에 정점에 있을 수 있습니다.사용자가 첫 번째 또는 마지막 항목을 지나 스크롤할 수 있도록 항목을 초과하는 것이 가능하지만 호출기는 항목을 다시 중앙에 배치하도록 재설정됩니다.항목 간의 구분을 지정할 수 있습니다.처음에 어떤 항목이 중앙에 배치될지 나타낼 수 있습니다. Pager@Composable fun Pager( // 1 items: List, // 2 modifier: Modifier = Modifier, // 3 orientation: Orientation = Orientation.Horizontal, // 4 initialIn..
2023.11.01