본문 바로가기

전체 글

(103)
compose / Column Scrollable 하게 만들기 (Column + verticalScroll) 항목 목록을 표시하기 위해선 Column에 verticalScroll 보다 LazyColumn 이나 LazyRow가 더 효율적이다. verticalScroll은 스크롤할 수 있는 간단한 방법을 제공한다. scrollState를 사용하면 스크롤 위치를 변경하거나 현재 상태를 가져올 수 있다. @Composable private fun ScrollBoxesSmooth() { // Smoothly scroll 100px on first composition val state = rememberScrollState() LaunchedEffect(Unit) { state.animateScrollTo(100) } Column( modifier = Modifier .background(Color.LightGray) ..
Kotlin / 클래스 관계 등 추가사항 알아보기 1. 클래스 연관관계 알아보기 클래스 관계 상속관계 (is a) : 클래스를 상속해서 하나의 클래스처럼 사용한다. 연관관계 (has a) : 클래스를 상속하지 않고 내부적인 속성에 객체를 만들어서 사용한다. 결합관계 (약한 has a) : 연관관계를 구성하는 방식 중에 클래스 간의 주종관계 없이 단순하게 사용하는 관계를 말한다. 조합관계 (강한 has a) : 연관관계를 구성하는 방식 중에 클래스 간의 주종관계가 있어서 따로 분해해서 사용할 수 없는 관계를 말한다. 의존관계 (사용 has a) : 필요한 클래스를 매개변수 등으로 받아 필요한 시점에 사용하는 관계를 말한다. 결합(Aggregation) 관계 단순하게 사용하는 클래스에서 사용된 클래스의 객체를 속성으로 만들어서 사용 보통 주 생성자에 객체를..
Kotlin / 내장 자료형 알아보기 1. 내장 자료형 알아보기 클래스를 만들 때는 항상 기본적인 최상위 클래스가 필요하다. 코틀린에서는 최상위 클래스로 Any 클래스를 제공한다. 이렇게 코틀린이 기본으로 제공하는 클래스를 내장 자료형이라고 한다. 숫자 클래스 코틀린에서 숫자클래스의 상위클래스를 Number로 정의했다. - NaN (not a number) 실수는 숫자를 정확히 모를 때는 무한대를 사용하고, 숫자가 아닌 경우에는 NaN을 사용한다. NaN은 계산도 비교도 안된다. 어떤 숫자와 계산해도 항상 NaN이다. (자기 자신과도 비교 x) // NaN과의 연산은 항상 NaN println(Double.NaN + 100.0) // NaN // NaN은 비교할 수 없다 println(Double.NaN == Double.NaN) // fa..
Kotlin / 클래스 알아보기 1. 클래스 알아보기 클래스 정의 지시자는 클래스의 상속이나 클래스 멤버들의 외부에서 접근 범위를 제한한다. - 상속지시자 open : 상속할 수 있는 클래스를 만들 때는 반드시 지정해야 한다. final : 코틀린은 상속을 못 하는 클래스가 기본이라서 표시하지 않으면 상속할 수 없는 클래스이다. - 사용 가시성 지시자 : 클래스를 사용할 수 있는 범위를 지정하는 지시자 비공개 (private) : 파일에 지정하면 그 파일 내부에서만 사용할 수 있다. 상속만 허용 (protected) : 파일 내부나 상속한 경우에만 사용할 수 있다. 모듈만 허용 (internal) : 프로젝트 내의 컴파일 단위의 모듈에서만 사용할 수 있다. 모듈의단위는 maven, Gradle 등에서 지정한 범위에 따른다. 공개 (pu..
IntelliJ / git code author, usage 없애기 안드로이드 스튜디오 돌핀부터 봤는데, IntelliJ에서 기본으로git 의 code author나 ,usage 가 나타난다. 코드를 많이 치다보면.. 은근 거슬린다 이를 없애기 위해서는 바로 클릭해서 설정 페이지에 갈 수도 있고, Preferences > Editor > Inlay Hints > Code vision 에 가서 Usages, Code author 체크를 해제해주면 된다. 또ㅑ란~
Kotlin / 함수 알아보기 함수는 재사용하는 가장 작은 단위의 구성요소이다. 객체지향 프로그래밍 기법이 도입되면서 모든 것을 객체로 관리 -> 함수도 1급 객체로 처리됨 => 함수도 정수처럼 변수, 매개변수, 반환값 등 사용할 수 있다 1. 함수 메모리에 있는 함수를 참조해서 가져와야 함수를 실행할 수 있다. -> 함수 이름 등으로 함수를 식별해야 한다. - 함수 머리부 (Function Header) : 함수 이름과 매개변수 개수에 맞게 자료형과 반환 자료형으로 구성 - 함수 몸체부 (Function Body) : 실제 실행되는 코드 영역 fun 함수명(매개변수명1: String, 매개변수명2: String): Pair { // 반환타입 : 튜플처리 val 지역변수1 = 100 var 지역변수2 = 300 fun 지역함수명(매개..
Compose / HorizontalPager swipe/drag/scroll 막기 HorizontalPager 를 사용하는데, swipe 기능을 막고 싶었다. modifier.scrollable(enabled=false) 가 작동하지 않아.. 일시적으로 막는 방법을 따로 구현하였다. (찾았다) @ExperimentalPagerApi fun PagerState.disableScrolling(scope: CoroutineScope) { scope.launch { scroll(scrollPriority = MutatePriority.PreventUserInput) { // Await indefinitely, blocking scrolls awaitCancellation() } } } @ExperimentalPagerApi fun PagerState.enableScrolling(scope: ..
Google io Extended 2023 Seoul (구글GDG) 후기 - 기념품 티셔츠 ​ 이번 주말에 구글 io에 참석을 했다. 올해부터 개발자 컨퍼런스에 열심히 다니는중🙆‍♀️​​ ​ ​ 올해는 코엑스에 있는 컨퍼런스룸에서 했다. 인원대비 복도 자리가 좀 협소해서 아쉽ㅠㅠ​​ ​ 이벤트부스에서 손가락펀치, 다트 등등을 할 수가 있었다. (Dart언어라고 진짜 다트하는 개발자 유ㅋ머ㅋ) 좀 일찍도착해서 체험만 해봤다. 행사시작전에는 이벤트 상품은 안줘서 넘 아쉬웠다.​​ ​ 데브오션에서 헤엄도 쳐보고ㅋㅋㅋㅋㅋ 이벤트 상품으로 책을 많이 뿌렸는데, 그저 개발자 스티커만 잔뜩 받고 돌아온...^-^​​ ​ ​ 안드로이드위주인 Track1에서 계속 있었다.​​ ​ ​ 의자와 책상이 노트북피기엔 좀 불편했지만,, 꿋꿋이 노트북에 메모를 남겼다.​​ ​ ​ pluu님의 안드로이드스튜디오 툴 소개!..

반응형