개발을 하다 보면 이미지 업로드를 위해 갤러리 사진 선택 기능을 사용하는 경우가 있다. 내가 구현하고자 했던 기능은 이미지를 최대 N장 선택 및 리사이클러뷰에 추가, 이후 서버에 업로드하는 기능이였는데, Tiramisu 이상에서 추가된 MediaStore.ACTION_PICK_IMAGES의 MediaStore.EXTRA_PICK_IMAGES_MAX라는 Intent extra를 설정하다 문제에 직면했다. 트러블 val maxPhotoCount = MAX_PHOTO_COUNT - currPhotoCount val intent = Intent(MediaStore.ACTION_PICK_IMAGES).apply { putExtra(MediaStore.EXTRA_PICK_IMAGES_MAX, maxNumPhotos..
안드로이드 프로젝트 설정을 하다 보면 gradle에서 jvmTarget, javaversion 설정을 해줘야한다. 그럴 때마다 1.8과 8버전에 대해 접하는데, 정작 이에 대해 궁금해서 자세히 알아본 적이 없는 것 같아 조사해봤다. Java 버전 네이밍 방식Java se는 1.0부터 1.8까지 1.x 방식의 버전 표기법을 사용했다고 한다. 지금으로 치면 1, 2, 3, 4, 5이나 그때는 1.1, 1.2, 1.3, 1.4, 1.5로 표기했다는 얘기이다. 그러다 Java se 9 버전에 이르러서는 1.x 방식의 네이밍 기법을 버리고 한자릿수 버전 표기법으로 선회하게 된다. 개인적인 생각으로는 1.9 다음 10버전은 2.0/10.0 이런식으로 표기해야하는데, 이런 혼란스러운 네이밍을 피하기 위함이 아닐까....
xml과 같은 dsl은 숙련도가 아무리 올라도 복잡한 구조의 ui에 대해서는 개선의 한계가 있다. 볼수록 어질어질 그래서 gpl인 kotlin 기반의 compose를 사용하는 것이 훨씬 개발이나 유지보수 측면에서 큰 이점을 가지는 것 같다. 재사용적인 측면이 특히! 오늘은 Jetpack compose를 시작하는 사람들이 dependency 설정하는 데에 조금이나마 도움이 될 수 있는 gradle 설정에 대한 포스팅이다. jdk / gradle / androidx activity / compose compiler / material3 -> 이 5개가 오늘의 핵심 멤버이다. 1. jvmTarget / compileOptions는 jdk 버전이랑 맞추자! 예전에 jdk11버전을 사용하면서 jvm/compile..
6월에 3주간 매주 스크랩 글을 적어봤는데, 미디움에서 Daily digest 메일이 매일 오전 07:40에 와서 일주일에만 해도 40개를 읽어야하고 이걸 또 정리해서 글로 적기에는 퀄리티가 점점 낮아질 것 같아서 앞으로는 한달에 1-2개 정도 포스팅하려고 한다. 대신 정말 도움이 되는 포스팅들로만 추렸다. 🎈 UI/UX 버튼 스타일 가이드 여러 플랫폼들을 예시로 들어 버튼 스타일 케이스 스터디를 하는 느낌으로 작성된 글이다. 버튼 스타일도 스타일인데, 각 유명 플랫폼들이 간단하게 색만 이용해서 어떻게 사용자들의 반응을 이끌어내는지 보여서 좋았다. User interface — button styles The style of UI buttons is the result of a careful balanc..
앞선 포스팅에서는 테스트 코드란 무엇이며 왜 작성하고, 그 종류는 어떤 것들이 있는지 간단히 알아보았다. [Kotlin] 테스트 코드 (1) - 테스트 코드란? 오늘 포스팅할 내용은 "테스트 코드 작성"에 관한 이야기이다. 안드로이드 단톡방에서 사람들이 메서드 하나 추가될 때마다 적는다던 테스트 코드, 정보처리기사 공부하다 봤던 TDD, 여러 채용 work2type.tistory.com 하지만 기본적인 내용들만으로 효율적이고 생산적인 테스트 코드를 작성할 수 있다면 좋겠지만, 테스트 코드는 작성부터 유지보수까지 적지 않은 비용이 들어가는 중요한 요소이다. 그렇다면 우리가 테스트 코드 작성에 대해서 더 공부할 수 있는 것들은 어떤 것들이 있을까? 개발방법론 - TDD와 BDD TDD "테스트가 개발을 주도..
오늘 포스팅할 내용은 "테스트 코드 작성"에 관한 이야기이다. 안드로이드 단톡방에서 사람들이 메서드 하나 추가될 때마다 적는다던 테스트 코드, 정보처리기사 공부하다 봤던 TDD, 여러 채용 공고들에 숱하게 적혀있던 "테스트 코드 작성 경험이 있으신 분" 등 안드로이드 진영에서의 테스트 코드 작성의 중요성은 날이 갈수록 커지고 있다. "테스트 코드"를 실무에서 작성해 본 경험이 없어 이에 대한 지식이 전무한 사람들도 꽤 많을 것이라 생각되는데, 이번 "테스트 코드" 시리즈 포스팅을 읽은 뒤에는 테스트 코드 작성의 중요성과 작성 방법, 다른 여러 정보들을 알고 갈 수 있었으면 좋겠다. 테스트 코드란? 소프트웨어의 기능과 동작을 테스트하는데 사용되는 코드 테스트 코드는 비단 spring, android에서만 ..
신발을 좋아해서 크림을 자주 보는데, 요즘 유독 끌리는 신발이 있었다. 이름도 묘하게 깊어보이고 쉐입도 이뻐서인데, 그건 바로 나이키의 "제너럴 퍼포스 슈(General purpose shoe)"이다. 갑분 나이키 - 제너럴 퍼포스 슈구글식 번역이 자연스럽지 않지만, 나름 느낌있는 설명이다. https://www.nike.com/kr/launch/t/nikecraft-general-purpose-shoe-brown 나이키크래프트 제너럴 퍼포스 슈 '브라운'(DA6672-201) 출시일. 나이키 SNKRS KR나이키크래프트 제너럴 퍼포스 슈 '브라운'을 살펴보고 구매하세요. 새롭게 출시되는 최신 스니커즈를 발 빠르게 만나보세요.www.nike.com 럭키드로우의 해석Nike 공식 사이트와 럭키드로우의 설명..
우리가 작성해야 하는 테스트 코드 비단 성공하는 케이스뿐만이 아니다. 실패하는 케이스와 발생할 수 있는 여러 예외들에 대한 처리 또한 테스트가 분명 중요한 부분인데, 오늘은 JUnit와 Mockito를 사용한 테스트 코드 작성 시에 사용 가능한 예외 처리 기법에 대해 비교해보고자 한다. ✔️ @Test @Test(expected = NumberFormatException.class) public void CalculateValues_test() { . . . } Test 어노테이션의 expected를 사용한 예외 처리는 JUnit 프레임워크 자체에서 지원하는 예외 테스트 방법이다. 어노테이션에 미리 지정해둔 예외가 해당 테스트 메서드에서 발생하면 테스트가 성공한 것으로 간주하는데, 여기서 문제가 발생한다..
원래 하던 방식이 아니라 새로운 방식으로 주말에 읽지 못해서 밀린 포스팅들까지 올리려고 정리해뒀는데, 좋은 것 같고 이러면 다른 잉여 내용을 줄여야겠다 생각해서 앞으로 스크랩 포스팅의 초입부는 짧게, 이후 내용들은 짧고 간결하게 적기로 결정하였습니다. 🎈 UI/UX 관련 0) UI 디자인에서의 황금 비율 오늘 스크랩한 포스팅들 중에서 가장 유익하다고 생각하는 포스팅이다. 황금 비율은 익히 들어 알고 있겠지만, 의외로 굉장히 많은 소프트웨어 회사의 디자인 팀에서도 황금 비율을 적재적소에 사용하고 있다는 사실을 알게 되었다. Golden Ratio in UI design In the world of design, aesthetics and visual appeal play a crucial role in c..