일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- Android
- 자료구조
- IT도서
- 프로그래머스
- 코틀린
- 알고리즘
- Jetpack Compose
- 코딩
- 백준
- DP
- compose
- algorithm
- Coding
- kotlin
- 프로그래밍
- 씨쁠쁠
- data class
- 안드로이드스튜디오
- 비전공자를위한이해할수있는IT지식
- 리액트네이티브
- androidstudio
- C++
- 앱개발
- PS
- 코딩테스트
- 안드로이드
- 동적계획법
- java
- 개발자
- Today
- Total
목록Android (8)
한 발짜국
Android Weekly #684의 'Compose stability tips and tricks (Compose 안정성을 위한 팁과 트릭)' 를 읽고 작성하는 글이다. Compose stability tips and tricksJetpack Compose uses stability to decide whether it can skip a composable during recomposition. If your app uses too many unstable types, you might run into performance issues. That’s why it helps to understand what stability means in Compose, how to cheleedwon.github...
이번 글은 Android Weekly #686의 "Understanding Kotlin Coroutines: A Deep Dive into Blocking vs Non-blocking and Concurrent vs Asynchronous Execution"을 이해하며 적는 글이다. Understanding Kotlin Coroutines: A Deep Dive into Blocking vs Non-blocking and Concurrent vs…If you’ve ever felt confused about when coroutines actually run concurrently versus asynchronously, or why some operations seem to block…proandro..
캡슐화를 위해 항상 asStateFlow()를 사용해야 할까?Android Weekly #687 "Hot take : When Encapsulation Becomes Ceremony (캡슐화가 형식적인 절차로 전락할 때)" 를 읽고 작성하는 글이다.글의 내용과 함께 캡슐화, StateFlow 타입 캐스팅과 asStateFlow()의 차이에 대해서도 간단하게 정리해봤다.캡슐화 (Encapsulation)?객체 지향 프로그래밍에서 외부에 필요한 기능만 공개하고 내부 구현은 숨겨 외부에서 접근하거나 확인할 수 없도록 하는 것을 말한다. 이를 통해 외부로부터 내부 상태가 예상치 못하게 변경되는 것을 막고, 내부 구현의 변화에도 외부에 미치는 영향을 최소화할 수 있다.asStateFlow() vs StateFlo..

안드로이드 앱을 개발할 때, 디자인의 요구에 따라 기본 버튼의 크기를 조정해야하는 경우가 있다. 크기를 키워야 하는 경우에는 문제가 없지만, 크기를 줄여야 하는 경우, 줄일 수 있는 크기의 제한이 있음이 느껴질 것이다. 그 이유는 Android가 접근성을 고려하여 Material Design의 접근성 가이드라인에 따라 터치 영역의 최소 크기(48dp*48dp)를 준수하기 때문인데, 이 내용은 Android 공식 문서에서 확인할 수 있다. API 기본값 | Jetpack Compose | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. API 기본값 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Materia..
데이터를 표현하기 위한 클래스, 데이터 클래스(Data Class)를 왜 사용하는지에 대해 정리해본 내용을 간략하게 적어볼까 한다.간단한 이해를 위주로 했으니, 가볍게 읽어보기를 추천한다.먼저 데이터 클래스(Data Class)는 어떤식으로 정의하나?data class Sample(val data1: String, val data2: Int)정의하는걸 봐서는 일반 클래스와 다를바가 없어보인다.하지만, data class는 class와 달리 필수적으로 주 생성자에서 하나 이상의 `val` 이나 `var` 프로퍼티를 포함해야한다. 그렇지 않으면, 컴파일 오류가 발생한다. 즉, 다음과 같이 주 생성자에 `val`이나 `var` 프로퍼티가 없는 data class는 정의할 수 없다는 것이다. (class로는 가..

lateinit var recyclerView: RecyclerView lateinit (늦은 초기화) 전역변수로 선언 후 null 값을 지정하지 않고 초기화하는 방법 일반적으로, null 타입이 아닌 프로퍼티는 반드시 생성자에서 초기화되어야 한다. 하지만 프로퍼티가 의존성 주입을 통해 혹은 단위 테스트 셋업 함수에서 초기화 되어야 하는 경우 이러한 방식은 편리하지 않다. 이러한 경우 생성자에 null이 아닌 초기화를 제공할 수 없지만, 클래스 본문 내에서 속성을 참조할 때 null 검사를 피하고 싶을 때 lateinit를 사용한다. 계속해서 값이 변경될 수 있다는 속성을 위해 무조건 var을 사용해야 하며, String을 제외한 Primitive Type (Int, Float, Double, Long ..

안드로이드 프로젝트에서 항상 마음에 걸린 건 왜 이 코드를 쓰는지 모르고 구글링에 의존해 개발하는 것 같다는 점이었다. 그래서 한 번 그 갈증을 해결해보고자.. 앞으로 코드를 한 줄씩이라도 공부해보려고 한다. 조금이라도 헷갈리거나 아는 것 같아도 설명이 안되는 부분도 최대한 적어봐야겠다. 그리고 누굴 알려주기 위함이 아닌 메모 정리와 같은 형식으로 기록만 남길 예정이다. 대부분 구글링과 안드로이드 공식 문서를 참고했다. val binding by lazy { ActivityArchiveAddBinding.inflate(layoutInflater) } binding (뷰 결합) 뷰와 상호작용하는 코드를 쉽게 작성 가능 모듈에서 사용 설정된 뷰 결합은 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스를 생..
최근 오징어게임을 보고 간단한 아이디어가 떠올라 안드로이드 연습 겸 어플을 만들어봤다. 사용된 이미지, 배경 이미지는 아래 사이트에서 .png 파일로 만들었다. 편집하기 쉽고 편하게 되어있다! https://pixlr.com/kr/editor/ 온라인 사진 에디터 - Pixlr.com 무료 & 프리미엄 온라인 사진 에디터를 만나보세요. 효과, 필터, 오버레이, 간단한 기능부터 고급형 기능까지 모두 담았어요. 대부분의 파일 형식 (PSD, PXD, JPeg, PNG - 투명, webP, SVG 등)을 지원해요. pixlr.com 결과물은 다음에 시간나면 완전 간단하긴 하지만 코드도 올려야겠다ㅋㅋ