본문 바로가기

반응형

Android

Turbine 없이 kotest에서 StateFlow, SharedFlow 테스트 하기, Unit Test 바쁜 분들 // state flow viewModel.emitStateFlow() viewModel.someStateFlow.first() shouldBe expected // shared flow launch { viewModel.emitSharedFlow() } viewModel.someSharedFlow.first() shouldBe expected 작성 사유(= 푸념) 새 프로젝트에서 LiveData의 대체제로 Flow를 쓰는데 (사유: Clean Architecture) 테스트 하기 까다롭다고 느꼈다. 기존 LiveData는 테스트 시 바로바로 값을 가져올 수 없어 구글에서 getOrAwaitValue라는 Work Around를 제공했다. fun LiveData.getOrAwaitValue( t.. 더보기
[22.07.04 수정] 유용한 Intellij, Android Studio 단축키 단축키 운영체제는 macOS, Keymap은 Intellij IDEA Classic 기준으로, 다른 환경에서는 단축키가 다를 수 있음. ctrl + ctrl: 쉘 스크립트 실행. Run 탭에서 확인이 가능하다. 보통 Gradle 명령어를 실행. (Unit Test, Lint 등) shift + shift: 클래스, 파일, 심볼, 안드로이드 스튜디오 기능 검색. 파일을 빠르게 검색할 수 있다. cmd + shift + a: 안드로이드 스튜디오 기능 검색. 단축키를 몰라도 어느 정도 해결이 가능하다! ctrl + shift + f: 전체 파일에서 내용 검색. 보통 정규 표현식 기능을 켜고, File Mask로 *.kt, *.xml, *.gradle을 걸어놓는 편. F1: 도움말 웹페이지 이동. 맨날 F2 누.. 더보기
[후기] 안드로이드를 위한 Gradle - 안드로이드 스튜디오를 이용한 빌드 자동화 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=87852130 안드로이드를 위한 Gradle 한빛 리얼타임 132권. 이 책은 안드로이드 개발 경험이 있는 개발자 중에서 안드로이드 스튜디오와 Gradle의 기본적인 내용을 빠르게 학습하고자 하는 독자를 대상으로 한다. 간단한 안드로이드 www.aladin.co.kr Gradle과 안드로이드 스튜디오, 멀티 프로젝트에 대한 기초를 닦을 수 있는 책. 달리 말하면 심화 내용이 별로 없다. 책이 꽤나 얇은데 Gradle 내용으로 채워지지 않고 안드로이드 스튜디오 기초 명령어나 유닛 테스트 방법 등 사족이 붙어있다. 2016년에 발간된 책으로, 당시에는 개발 환경이 이클립스에서 안드로이드 스튜디오로 옮겨가는 추세인지라.. 더보기
ktlint와 AndroidStudio의 Import Order가 다를 때 어느 시점부터 린트 두 개가 싸웁니다. AndroidStudio는 ABC 순서로 import를 정리하고, ktlint는 특정 라이브러리를 밑으로 옮겨놓습니다. ktlint는 git hooks pre-commit으로 적용하고 있어 코드를 작성할 때와 커밋한 이후 모양이 달라지고... rebase 하고나면 또 안드로이드 쪽 따라서 달라지고... 이걸 리모트에 올리면 CI가 Import 순서 틀렸다고 때리고... TL;DR 안드로이드 스튜디오 설정을 통해 해결할 수 있습니다. ktlint 설정을 통해서도 해결할 수 있지만, 모든 팀원이 적용해야 하는 터라 그냥 제가 바꾸려고 합니다. Preferences > Editor > Code Style > Kotlin 메뉴에 진입합니다. import 탭의 맨 아래에 존.. 더보기
안드로이드 문자열 리소스 <small> 태그 적용 문자열 리소스를 getString()으로 가져올 경우 HTML 요소가 적용되지 않습니다. getText()를 사용하여 CharSequence 타입으로 가져와야 합니다. 지원되는 HTML 요소:. 굵은꼴: , 기울임꼴: , , 텍스트 25% 확대: 텍스트 20% 축소: 글꼴 속성 설정: . 사용 가능한 글꼴 집합은 monospace, serif, sans_serif 등이 있습니다. 고정 폭 글꼴 집합: 취소선: , , 밑줄: 위첨자: 아래첨자: 글 머리꼴: , 줄바꿈: 분할: CSS 스타일: 문단: https://developer.android.com/guide/topics/resources/string-resource?hl=ko#StylingWithHTML 문자열 리소스 | Android 개발자 | An.. 더보기
안드로이드 스튜디오 Changelist 2022.03.01 - [Android] - 맥북 M1 이슈) ANTER Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1 저번 포스트에서 Room/sqlite 관련 이슈를 의존성을 추가하여 해결했었는데요. M1 빌드에서만 필요한 의존성인데 다른 사람들에게 노출되는 것은 조금 아닌 것 같아 항상 코드를 커밋할 때 이를 제외하고 커밋하고 있습니다. 그런데 app/build.gradle 파일을 수정할 때마다 저 라이브러리 관련 변경사항을 제외하고 커밋하는 것도 번거로우니, 오늘은 안드로이드 스튜디오 Changelist 기능을 활용하여 이를 쉽게 관리하는 방법에 대해 알아보았습니다. 먼저 위 포.. 더보기
맥북 M1 이슈) ANTER Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1 작업용 컴퓨터를 맥북 M1 칩으로 변경하였더니 빌드가 안 됩니다. ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1 ANTLR Runtime version 4.5.3 used for parser compilation does not match the current runtime version 4.7.1 ANTLR Tool version 4.5.3 used for code generation does not match the current runtime version 4.7.1 ANTLR Runtime version 4.5.3 used for parser compilation do.. 더보기
로버트 C. 마틴 TDD 3원칙 - TDD(Test Driven Development) TDD의 필요성 프로덕션 코드를 먼저 생성하고 이후 테스트 코드를 작성하는 방식에는 다음과 같은 문제점이 존재합니다. 요구사항을 명확히 규정하기 어렵습니다. 스스로 작성한 코드가 편향적일 수 있습니다. 모든 요구사항이 테스트 되었는지 확인할 수 없습니다. 지루합니다. 이러한 단점을 극복하기 위한 개발 방식이 테스트 주도 개발입니다. 테스트 주도 개발은 이름에서 느껴지는 것처럼, 테스트 코드를 먼저 작성하고 이를 만족하기 위한 프로덕션 코드를 생성하는 개발 과정을 의미하며, 이전 포스팅까지 우리는 입력을 여러 대표군으로 나누고, 이를 만족할 수 있는 테스트를 나열한 후, 모든 테스트를 만족하는 최소한의 코드를 작성하는 방식으로 TDD를 연습해왔습니다. 이러한 방식은 요구사항을 명확히 하고, 편향성을 극복할.. 더보기

반응형