일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- git
- 컴포즈
- MVVM
- Observable
- 파이썬
- mock
- Python
- 깃
- 제한함수
- 코딩테스트
- ViewModel
- 안정성
- 안드로이드 디자인패턴
- rxjava
- 공격적 프로그래밍
- Di
- Jetpack
- 안드로이드
- Kotlin
- 테스트의 장점
- compose
- 코틀린
- Room
- 자료구조
- 유닛테스트
- Android
- UnitTest
- 디자인패턴
- dagger2
- 단위테스트
- Today
- Total
목록전체보기 (66)
세상을 바꾸는 개발자
Material Design 3 in Compose제트팩 컴포즈는 머티리얼 디자인의 차세대 진화 버전인 머티리얼 디자인 3를 구현합니다. 머티리얼 3에는 업데이트된 테마, 컴포넌트 및 동적 색상과 같은 머티리얼 유 개인화 기능이 포함되어 있으며, 안드로이드 12 이상의 새로운 비주얼 스타일 및 시스템 UI와 조화를 이루도록 설계되었습니다. 참고: "머티리얼 디자인 3", "머티리얼 3", "M3"라는 용어는 서로 바꿔서 사용할 수 있습니다. 기존 머티리얼 디자인 사양 및 해당 androidx.compose.material 라이브러리는 "머티리얼 디자인 2", "머티리얼 2" 또는 "M2"로 불립니다. 아래에서는 Reply 샘플 앱을 예로 들어 머티리얼 디자인 3 구현을 보여줍니다. 응답 샘플은 전적으로..
선언적 프로그래밍 패러다임 지금까지 안드로이드 뷰 계층 구조는 UI 위젯의 트리로 표현할 수 있었습니다. 사용자 상호작용 등으로 인해 앱의 상태가 변경되면 현재 데이터를 표시하기 위해 UI 계층구조를 업데이트해야 합니다. UI를 업데이트하는 가장 일반적인 방법은 findViewById()와 같은 함수를 사용하여 트리를 탐색하고 button.setText(String), container.addChild(View) 또는 img.setImageBitmap(Bitmap) 같은 메서드를 호출하여 노드를 변경하는 것입니다. 이러한 메서드는 위젯의 내부 상태를 변경합니다. 뷰를 수동으로 조작하면 오류가 발생할 가능성이 높아집니다. 데이터가 여러 곳에 렌더링되는 경우 데이터를 표시하는 뷰 중 하나를 업데이트하는 것을..
컴포즈 gradle 설정Compose를 사용하려면 먼저 프로젝트에 몇 가지 빌드 구성을 추가해야 합니다. 앱의 build.gradle 파일에 다음 정의를 추가합니다 android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.13" }} 몇 가지 주의해야 할 사항1. Android BuildFeatures 블록 내에서 compose 플래그를 true로 설정하면 컴파일 기능이 활성화됩니다.2. ComposeOptions 블록에 정의된 Kotlin 컴파일러 확장 버전 관리는 Kotlin 버전 관리와 연동됩니다. 호환성 맵을 참조하여 프로젝트의 Ko..
Compose를 도입해야 하는 이유Jetpack Compose는 네이티브 UI를 빌드하기 위한 Android의 최신 툴킷입니다. 더 적은 코드, 강력한 도구, 직관적인 Kotlin API로 앱에 생명을 불어넣어 Android에서 UI 개발을 간소화 및 가속화합니다. 안드로이드 UI를 더 빠르고 쉽게 빌드할 수 있습니다. Compose를 개발하는 동안 다양한 파트너와 협력하여 이러한 모든 이점을 직접 경험하고 몇 가지 핵심 사항을 공유했습니다. Less code 코드를 적게 작성하면 개발의 모든 단계에 영향을 미칩니다. 작성자는 테스트 및 디버깅할 코드가 줄어들어 당면한 문제에 집중할 수 있고 버그 발생 가능성이 줄어들며, 검토자나 관리자는 읽고, 이해하고, 검토하고, 유지 관리해야 할 코드가 줄어듭니다...
안드로이드는 자바와 코틀린 2가지 언어로 개발을 할 수 있지만 요즘 자바를 사용해서 개발하는 경우는 찾아보기 힘듬니다 저또한 코틀린을 사용합니다 하지만 사용하면서 잘 몰랐던 부분도 있고 한번도 써보지않는 편리고 좋은 기능들이 많이 존재합니다 그래서 이번에 복습할겸 이펙티브 코틀린의 내용으로 정리를 하려고 합니다. 안정성 - 단위테스트를 만들어라 코드를 안전하게 만드는 다양한 방법이 있지만 가장 궁극적인 방법은 다양한 종류를 테스트 하는 것이다 하지만 비즈니스적인 관점의 테스트는 개발자 관점에서 애플리케이션 내부적으로 올바르게 작동하는지 확인하는 것이 아니라, 사용자의 관점에서 애플리케이션 외부적으로 제대로 동작하는지 확인하는 것이 목표이다 그렇기 때문에 개발자에게 유용하지만 충분하지는 않다. 이러한 문제..
안드로이드는 자바와 코틀린 2가지 언어로 개발을 할 수 있지만 요즘 자바를 사용해서 개발하는 경우는 찾아보기 힘듬니다 저또한 코틀린을 사용합니다 하지만 사용하면서 잘 몰랐던 부분도 있고 한번도 써보지않는 편리고 좋은 기능들이 많이 존재합니다 그래서 이번에 복습할겸 이펙티브 코틀린의 내용으로 정리를 하려고 합니다. 안정성 - use 를 사용하여 리소스를 닫아라 더 이상 필요하지 않을 때 close 메서드를 사용해서 명시적으로 닫아야하는 리소스가 있다 예를 들어 - InputStream, OutputStream - java.sql.Connection - soket, Scanner 등등 이러한 리소스들은 AutoCloseable 을 상속받는 Closeable 인터페이스를 구현하고 있다 이러한 모든 리소스들은 ..
안드로이드는 자바와 코틀린 2가지 언어로 개발을 할 수 있지만 요즘 자바를 사용해서 개발하는 경우는 찾아보기 힘듬니다 저또한 코틀린을 사용합니다 하지만 사용하면서 잘 몰랐던 부분도 있고 한번도 써보지않는 편리고 좋은 기능들이 많이 존재합니다 그래서 이번에 복습할겸 이펙티브 코틀린의 내용으로 정리를 하려고 합니다. 안정성 - 적절하게 null 을 처리하라 기본적으로 nullable 타입은 세 가지 방법으로 처리한다 ?., 스마트 캐스팅, Elvis 연산자 등을 활용해서 안전하게 처리한다. 오류를 throw 한다 함수 또는 프로퍼티를 리펙터링해서 nullable 타입이 나오지 않게 바꾼다 null 을 처리할때 가장 좋은 방법은 스마트캐스팅이나 elvis 연산자를 사용해서 처리하는게 가장 좋지만 requir..
방어적 프로그래밍 모든 가능성을 올바른 방식으로 처리하는 것(예를 들어 null일때는 출력하지 않기 등) 방어적 프로그래밍은 코드가 프로덕션 환경으로 들어갔을때 발생할 수 있는 수많은 것들로부터 프로그램을 방어해서 안정성을 높히는 방법을 나타내는 굉장히 포괄적인 용어 상황을 처리할 수 있는 올바른 방법이 있을때 굉장히 좋다 공격적 프로그래밍 모든 상황을 안전하게 처리하는 것은 불가능하기 때문에 등장 예상하지 못한 상황이 발생했을때, 이러한 문제를 개발자에게 알려서 수정하게 만드는 것 require, check, assert 가 공격적 프로그래밍을 하기 위한 도구 --> 둘은 충돌되는 것처럼 보이지만, 둘다 안전을 위해 모두 필요하기 때문에 적절하게 사용해야한다 참고 : 이펙티브 코틀린 https://ww..