본문 바로가기

android

(47)
기존 레이아웃을 데이터바인딩 레이아웃으로, 한방에 자동 변환하기! 기존 레이아웃을 데이터 바인딩으로 변환하려면, 최상단 루트(Root)를 태그로 감싸야합니다. 또한, 네임 스페이스 정의 (xmlns:로 시작하는 속성 예) xmlns:android, xmlns:app...)도 루트로 이동해야 합니다. 수동으로, 잘라내기(복사)+붙여넣기 해도 그리 복잡한 작업은 아니지만, 여러 xml파일들을 일일이 작업한다면 상당히 번거로운 작업이 될 수 있습니다. 그래서, 안드로이드 스튜디오는 이런 작업을 자동으로 수행해주는 편리한 기능을 제공해줍니다! 방법 1. 변환하기 전의 기존 레이아웃 루트에 커서를 위치시키고 2. ⌥(option) + Enter 키 (Alt + Enter for Win/Linux) 입력 후, "Convert to data binding layout" 선택 3. ..
코틀린(Kotlin) - 컬렉션 만들기 코틀린에서는 단순하게 컬렉션을 만들 수가 있습니다. val set = hashSetOf(1, 2, 3) val list = arrayListOf(1, 2, 3) val map = hashMapOf(1 to "one", 2 to "two", 3 to "three") 코틀린은 자신만의 컬렉션 기능을 제공하지 않는다는 것이 특징인데, 이유는 표준 자바 컬렉션을 활용하면 자바 코드와 상호작용 하기가 훨씬 더 쉽기 때문에, 서로 변환할 필요가 없어서 코틀린 컬렉션은 자바 컬렉션과 똑같은 동일 클래스를 사용합니다. 하지만, 코틀린에서는 자바보다 더 많은 기능을 쓸 수 있습니다. 예를 들어, 리스트의 마지막 원소(last)를 가져오거나, 수로 이뤄진 컬렉션에서 최댓값(max)을 찾을 수 있습니다. val list =..
AndroidX 로 마이그레이션 하기 개요 구글에서는 Android Support Library의 28.0.0 버전을 마지막으로, 더 이상 android.support 라이브러리의 릴리즈는 없을 것이라고 하며, 새로운 기능 개발은 모두 AndroidX 에서 이루어질 것이라고 하였습니다. AndroidX는 기존 Support 라이브러리를 완전히 대체하면서, 새롭게 추가되는 라이브러리들 까지 포함하고 있습니다. 이에 따라, 저희도 기존 support 라이브러리를 AndroidX로 마이그레이션하는 작업을 해야 합니다. 다행스럽게도, 안드로이드 스튜디오의 Refactor 기능을 사용하면, 간편하게 마이그레이션 작업을 진행 할 수 있습니다. 그렇다면, 지금부터 AndroidX로 마이그레이션하는 방법과 더불어, 이전하는 과정에서 겪을수있는 에러의 해결..
안드로이드 MVVM 아키텍처 (Android Apps Using MVVM Architecture) "아키텍처" 라는 주제는 사실 쉽게 이해하기도 힘들며, 완벽한 답안이 있는 게 아니다 보니 어떤 원칙대로 설계를 해야 하는지에 대한 모호함과 어려움이 있어서 쉽게 놓치곤 합니다. 하지만, 안드로이드 프로젝트에 적합한 아키텍처를 정의하지 않으면 코드 베이스가 커지고 팀이 확장됨에 따라 유지보수가 어려워집니다. (유지보수 : 유지하고 보수하는 것뿐만이 아니라, 가독성, 테스트, 기능 추가, 변경, 삭제, 버그 수정, 인수인계...) 그렇기 때문에, 괜찮은 방식의 아키텍처를 정하는 것에 대해 고민할 수밖에 없고 좋은 아키텍처는 개발자에게 명확한 프로젝트 가독성과 더 큰 효율과 생산성을 가져다준다고 생각합니다. 여기서 설명드릴 MVVM 아키텍처는 우리에게 가장 좋은 래퍼런스가 되는 Google Android A..
코틀린 전환과 같이하면 좋은 선행작업! 코틀린 전환의 선행작업 코틀린 전환을 시작하면서, 코틀린 전환에 효과적인 선행작업은 무엇이 있을까? 라는 생각을 해보았습니다. 단순히 자바를 코틀린으로 바꾼다면 그저 문법 변환에 그치고, 결과적으론 기존 래거시와 동일한 프로젝트 구조에 문법만 코틀린인채로 남을 것 같다는 생각이 들었습니다. 그렇기 때문에, 코틀린 전환을 하기에 앞서, 아키텍처를 선정하여 잡아놓고 시작한다면, 구조적으로 유리할뿐만 아니라, 유지보수와 테스트에도 용이하며, 코틀린 언어의 특성을 최대한 활용할 수 있고, 결과적으로는, 앱의 구조가 튼튼해져서 훨씬 더 성공적인 코틀린 전환이 될 수 있을것 같다고 생각하였습니다. 그럼 아키텍처 정의에 앞서, 코틀린 전환과 아키텍처 선정에 큰 도움이 될 수 있는 AndroidX 라이브러리를 먼저 살..
코틀린(Kotlin) - 예외 처리 코틀린의 예외처리(exception)는 자바의 예외처리와 비슷합니다. 함수는 정상적으로 종료할 수 있지만, 오류가 발생하면 예외를 던질 수(throw) 있고, 함수를 호출하는 쪽에서는 그 예외를 잡아 처리할 수 있습니다. 발생한 예외를 함수 호출 단에서 처리(catch)하지 않으면, 함수 호출 스택을 거슬러 올라가면서 예외를 처리하는 부분이 나올 때까지 예외를 다시 던지게(rethrow) 됩니다. if (number in 0..100) { number } else { throw IllegalArgumentException("0~100사이의 숫자가 아닙니다.") } >> number = 200 java.lang.IllegalArgumentException: 0~100사이의 숫자가 아닙니다. try, cat..
Expiring Daemon because JVM heap space is exhausted. 안드로이드 스튜디오 빌드 에러 해결방법 문제 발생 최근에 Android Gradle 플러그인 버전을 3.0.1 -> 3.5.1로 업데이트하면서, 아래와 같이 "JVM 힙 메모리 부족" 빌드 에러가 발생하였습니다. Expiring Daemon because JVM heap space is exhausted Daemon will be stopped at the end of the build after running out of JVM memory Expiring Daemon because JVM heap space is exhausted Expiring Daemon because JVM heap space is exhausted Expiring Daemon because JVM heap space is exhausted.... Exception ..