일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- ANR이란
- 서비스 vs 쓰레드
- Rxjava Observable
- 자바 다형성
- jvm 작동 원리
- ar vr 차이
- android retrofit login
- 객체
- 2022 플러터 설치
- 안드로이드 os 구조
- 스택 큐 차이
- 안드로이드 유닛 테스트
- 안드로이드 레트로핏 crud
- 서비스 쓰레드 차이
- 안드로이드 레트로핏 사용법
- 안드로이드 유닛 테스트 예시
- 큐 자바 코드
- rxjava cold observable
- rxjava disposable
- 플러터 설치 2022
- 멤버변수
- android ar 개발
- 스택 자바 코드
- 안드로이드 라이선스
- rxjava hot observable
- 안드로이드 유닛테스트란
- 안드로이드 라이선스 종류
- 2022 플러터 안드로이드 스튜디오
- 클래스
- jvm이란
- Today
- Total
목록전체 글 (1090)
나만을 위한 블로그
코틀린의 @JvmOverloads는 함수 or 클래스에서 오버로드된 여러 메서드, 생성자를 자동 생성해서 코틀린, 자바 간 상호 운용성을 단순화하는 기능이다. 자바가 기본 인수를 기본적으로 지원하지 않아서 코틀린의 기본 인수가 관련된 경우 유용하다.@JvmOverloads를 사용하면 코틀린 컴파일러는 컴파일된 바이트코드에서 기본값을 가진 매개변수의 모든 가능한 조합을 나타내기 위해 여러 메서드 또는 생성자 시그니처를 컴파일 타임에 자동적으로 생성한다.하지만 커스텀 뷰를 구현할 때 @JvmOverloads를 신중하게 사용하지 않으면 의도치 않게 기본 뷰 스타일을 재정의해서 커스텀 뷰에서 의도했던 스타일이 손실될 수 있다. Button, TextView 같이 미리 정의된 스타일이 있는 안드로이드 뷰를 상속한..
커스텀 뷰 클래스 생성 기본 뷰 클래스(View, ImageView, TextView 등)를 확장하는 새 클래스를 정의한다. 그 후 구현할 커스텀 동작에 따라 onDraw(), onMeasure(), onLayout() 같은 필요한 메서드, 생성자를 재정의한다.아래는 onDraw()를 오버라이드하여 캔버스에 적접 빨간색 원을 그리는 커스텀 뷰다. class CustomCircleView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyle: Int = 0) : View(context, attrs, defStyle) { private val paint = Paint(Paint.ANTI_ALI..
ViewStub은 명시적으로 필요할 때까지 레이아웃 인플레이션을 지연시킬 때 쓰는 가볍고 안 보이는 플레이스홀더 뷰다.앱 생명주기 동안 지금 당장 필요하지 않은 뷰를 필요한 시기에 적절하게 인플레이션하여 오버헤드를 피함으로써 성능을 개선하는 데 사용된다. 주요 특징 가벼움 : ViewStub은 인플레이션될 때까지 레이아웃 공간을 차지하거나 리소스를 소비하지 않아서 메모리 공간이 최소화된 매우 가벼운 뷰다인플레이션 지연 : ViewStub에 설정된 실제 레이아웃은 inflate()가 호출되거나 ViewStub이 보일 때만 인플레이션된다일회성 : 한번 인플레이션되면 ViewStub은 뷰 계층 구조에서 인플레이션된 레이아웃으로 대체되고 재사용할 수 없다 사용 사례 조건부 레이아웃 : 오류 메시지, 진행률 표시..
View는 화면에 표시되는 직사각형 형태의 UI를 구현하는 최소 단위의 단일 컴포넌트다. Button, TextView 등 모든 UI 컴포넌트의 기본 클래스다. 각 뷰는 화면에 렌더링되면 터치 or 키 이벤트 같이 앱 사용자와의 상호작용을 처리한다.View 시스템은 전체 UI 프레임워크의 중추 역할을 하는 안드로이드 개발의 핵심 기반 중 하나다. 렌더링, UI 컴포넌트 업데이트, 사용자 상호작용을 가능하게 하는 콜백 시스템 관리를 담당한다. 기본 버튼부터 복잡한 레이아웃까지 모든 UI 요소는 View 클래스 위에 구축된다.AOSP의 View.java 내부 구현은 34,000줄 이상의 코드로 구현돼 있다. 이게 의미하는 건 View 인스턴스를 만들고 관리하는 게 상당한 오버헤드가 수반됨을 뜻한다. 결과적으..
findViewTreeLifecycleOwner()는 View 클래스의 확장 함수다. 뷰 트리 계층을 거슬러 올라가 뷰 트리에 연결된 가장 가까운 LifecycleOwner를 찾아서 리턴한다.LifecycleOwner는 일반적으로 액티비티 / 프래그먼트 또는 LifecycleOwner를 구현하는 커스텀 컴포넌트 같은 호스팅 컴포넌트의 생명주기 범위를 나타낸다. LifecycleOwner를 못 찾으면 함수는 null을 리턴한다. 쓰는 이유 LiveData, 뷰모델, LifecycleObserver 같은 생명주기 인식 요소와 상호작용해야 하는 커스텀 뷰, 서드파티 컴포넌트로 작업 시 유용하다. 이를 통해 뷰는 호스팅 액티비티 / 프래그먼트에 대한 명시적 의존성 없이 연관된 생명주기에 접근 가능하다findVi..

이 포스팅에선 Compose의 Text에서 사용할 수 있는 옵션들을 확인한다.먼저 Text의 구현은 이렇다. @Composablefun Text( text: AnnotatedString, modifier: Modifier = Modifier, color: Color = Color.Unspecified, fontSize: TextUnit = TextUnit.Unspecified, fontStyle: FontStyle? = null, fontWeight: FontWeight? = null, fontFamily: FontFamily? = null, letterSpacing: TextUnit = TextUnit.Unspecified, textDecoration: ..