코틀린(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 =..
안드로이드 MVVM 아키텍처 (Android Apps Using MVVM Architecture)
"아키텍처" 라는 주제는 사실 쉽게 이해하기도 힘들며, 완벽한 답안이 있는 게 아니다 보니 어떤 원칙대로 설계를 해야 하는지에 대한 모호함과 어려움이 있어서 쉽게 놓치곤 합니다. 하지만, 안드로이드 프로젝트에 적합한 아키텍처를 정의하지 않으면 코드 베이스가 커지고 팀이 확장됨에 따라 유지보수가 어려워집니다. (유지보수 : 유지하고 보수하는 것뿐만이 아니라, 가독성, 테스트, 기능 추가, 변경, 삭제, 버그 수정, 인수인계...) 그렇기 때문에, 괜찮은 방식의 아키텍처를 정하는 것에 대해 고민할 수밖에 없고 좋은 아키텍처는 개발자에게 명확한 프로젝트 가독성과 더 큰 효율과 생산성을 가져다준다고 생각합니다. 여기서 설명드릴 MVVM 아키텍처는 우리에게 가장 좋은 래퍼런스가 되는 Google Android A..
코틀린 전환과 같이하면 좋은 선행작업!
코틀린 전환의 선행작업 코틀린 전환을 시작하면서, 코틀린 전환에 효과적인 선행작업은 무엇이 있을까? 라는 생각을 해보았습니다. 단순히 자바를 코틀린으로 바꾼다면 그저 문법 변환에 그치고, 결과적으론 기존 래거시와 동일한 프로젝트 구조에 문법만 코틀린인채로 남을 것 같다는 생각이 들었습니다. 그렇기 때문에, 코틀린 전환을 하기에 앞서, 아키텍처를 선정하여 잡아놓고 시작한다면, 구조적으로 유리할뿐만 아니라, 유지보수와 테스트에도 용이하며, 코틀린 언어의 특성을 최대한 활용할 수 있고, 결과적으로는, 앱의 구조가 튼튼해져서 훨씬 더 성공적인 코틀린 전환이 될 수 있을것 같다고 생각하였습니다. 그럼 아키텍처 정의에 앞서, 코틀린 전환과 아키텍처 선정에 큰 도움이 될 수 있는 AndroidX 라이브러리를 먼저 살..
기기 및 네트워크 악용 정책 위반 : 구글 플레이 스토어 앱 거부 해결 방법
문제 발생 구글 플레이 스토어에 앱을 업데이트하는 과정에서, 아래와 같은 리젝(reject) 메일을 받았습니다. 게시 상태: 거부됨 앱이 정책 위반으로 거부되어 게시되지 않았습니다. 기존 앱의 업데이트를 제출하신 것이라면 이전에 게시된 버전은 Google Play에서 사용자에게 계속 제공됩니다. 문제: 기기 및 네트워크 악용 정책 위반 사용자의 기기, 기타 기기 또는 컴퓨터, 서버, 네트워크, 애플리케이션 프로그래밍 인터페이스(API), 서비스(기기에 설치된 기타 앱, Google 서비스, 승인된 이동통신사 네트워크를 포함하나 이에 국한되지 않음)를 방해하거나, 작동에 지장을 주거나, 손상시키거나, 무단으로 액세스하는 앱은 허용되지 않습니다. 앱이 서비스 약관을 위반하는 방식으로 서비스 또는 API에 액..