Android (86) 썸네일형 리스트형 플레이스토어 안드로이드 개발자 인증, 패키지 이름 등록하기 동기KMP, CMP 를 활용하여 사내 출입 관리 서비스를 새롭게 개발하였습니다. 개발을 완료하고 이를 출시하기 위한 과정에서 발생한 이슈를 공유합니다.이슈플레이스토어의 Android 개발자 인증과 관련된 이슈이며, 2026년 3월 중순 이후부터는 해당 이슈를 해결하지 않으면 앱 출시가 불가능합니다. 이와 관련한 슈팅이 없었다면, 플레이스토어 개발자 계정 접근 시 아래와 같은 배너가 표출됩니다. 배너의 'Android 개발자 인증으로 이동' CTA 버튼을 클릭하면 다음 화면으로 진행됩니다. 쉽게 말하자면, 지금까지 업로드 했던 앱의 패키지에 대한 소유권을 획득해야 합니다. xxx.yyy.zzz 형식으로 앱 패키지 명칭을 작성할 수 있기에 xxx.yyy 만 다른 개발자나 조직이 사용하는 이름 그대로 설정하.. 이미지 최적화로 다양한 지표 개선하기 동기운영 중인 사이드 프로젝트 앱 에는 BM 이 없습니다. 이는 곧, 발생하는 운영 비용을 프로젝트 참여 인원들의 사비로 충당해야 한다는 것을 의미합니다. 현재로서는 실사용자가 그다지 많지 않아 비용이 크다고 할 수는 없으나, 최근 마케터 분이 새로 합류하셔서, 유의미한 사용자 수 증대를 기대하고 있습니다. 이에 따라 추후에 발생하게 될 비용 증가를 사전에 방지하는 것이 중요해 보였습니다. 현재 의 운영 비용은 대부분 EC2, RDS, VPC 와 같은 인프라 고정비에서 발생하고 있습니다. 하지만 사용자 수가 증가한다면 서비스의 핵심 기능인 '이미지 인증' 관련 비용이 향후 운영에 적잖은 부담이 될 것으로 판단했습니다. 사용자 증가가 곧 운영 비용의 증가로 직결되는 구조이기 때문에, 서비스 확장 이전에.. MVVM 과 MVI 의 범위에 대한 견해 MVVM 과 MVI 에 대한 원론적 이해를 다루는 포스트가 아닙니다. 개인적 고찰의 기록이며, 관점에 따라 받아들여질 수 없는 내용이 많을 수 있습니다.또한, 유보적 어조를 사용하지 않았습니다.동기후임자가 생겨 교육 중에 있습니다. 졸업 프로젝트로 안드로이드 앱을 만들어 제출했다고 해서 코드를 봤는데, 이렇다 할 아키텍처 없이 구현된 프로젝트였습니다. 그래도 기능은 잘 동작했고요. 기본적인 Lifecycle 이나 문법 등에 대한 지식은 있는 것 같아서 아키텍처에 대한 이야기를 해주려 합니다. 재직 중인 회사는 다양한 프로젝트를 진행하는데요. 직접 개발한 프로젝트는 Jetpack Compose 를 사용하고, 타사에서 개발한 프로젝트를 유지보수하는 경우, 또는 Jetpack Compose 로 마이그레이션을 .. Android Platform Architecture 의 계층 간 통신에 대한 고찰 동기실무와 사이드 프로젝트에서 다양한 문제를 해결하고 있습니다. 저는 그 과정에서 동작 원리에 대한 이해와 문제 발생 사전 차단을 위해 내부 코드를 자주 들여다보는 편입니다. 이 작업은 안드로이드 개발에 대한 저변을 확장하는 데에 큰 도움이 되는데요. 최근에는 최적화와 관련된 문제들을 마주하고 있는데, 내부를 살펴볼수록 안드로이드 플랫폼 자체에 대한 해박한 지식이 전제되어야 해결할 수 있는 경우가 많았습니다. Five-Layered-Architecture 안드로이드 플랫폼은 총 5계층으로 이루어져있습니다. 로우 레벨부터 순서대로 Linux Kernel - Hardware Abstraction Layer - Native Libraries + ART - Java API Framework(Android Fra.. 3D 모델링으로 앱에 입체감 불어넣기 (feat.SceneView) 안드로이드에서의 그래픽 렌더링 원리와는 거리가 먼, 3D 렌더링 작업에 대한 제 나름의 이해를 거침없이 써내려간 포스트입니다. SceneView 에 대한 설명 및 코드는 포스트 후반부에 있으니, 해당 키워드를 통해 접근하신 분께서는 과감하게 스크롤을 내려주셔도 좋습니다.동기재직 중인 회사에서 전자 지갑 서비스를 구축하게 되었습니다. 관련하여 다양한 기술적 시도들이 진행되고 있는데, 모바일 팀 회의에서는 3D 모델을 앱 내에 탑재하여 트렌디함을 갖추자는 의견이 주요 목표로 설정되어, 이번 기회에 늘 생각만 해왔던 3D 모델링에 도전할 수 있게 되었습니다. 접근어떤 방식을 통해 3D 모델을 구현해야 할지 결정해야 했습니다. 가장 먼저 떠오른 것은 OpenGL 이었습니다. OpenGL 은 2D 및 3D 그래픽.. [Jetpack Compose] 동적 스켈레톤 적용기 동기여름에 시작했던 사이드 프로젝트가 끝을 향해 달려가고 있습니다. 비록 1차 개발 마무리이긴 하지만요. 아무튼, 이후로는 추가 기능 구현과 유지보수만 하면 돼서, 투입해야 하는 시간이 많이 줄어들 것 같아 다행입니다. 얼마 전, 대부분의 기능 구현이 끝나고 정리만 하던 시점에, 갑작스런 스켈레톤 추가 논의가 이루어졌습니다. 로딩과 관련된 다양한 UI 가 있는데, 화면 전체를 감싸는 형식의 UI 들이 대부분이라 사용자 입장에서 피로도가 있다는 것이 주된 근거였습니다. 이후 추가 구현이 확정되었고, 이에 대해 구현하여야 했습니다. 나이브 어프로치로서 if-else 구문 사용을 고려했으나, 기존 코드에 if-else 구문을 적용해야 하다 보니, 코드 깊이도 깊어지고 새로운 UI 코드도 작성해야 해서, 코드 .. [Jetpack Compose] SubcomposeLayout 으로 UI 배치 문제 해결하기 동기확실히 사이드 프로젝트를 하니, 다양한 문제에 부딪히고 이를 해결할 수 있는 기회가 자꾸 생겨서 좋습니다. 이번에 맞닥뜨린 문제 역시 진행 중인 사이드 프로젝트에서 발생했고, 별 고민 없이 해결할 수 있을 줄 알았으나, 또 다른 기술에 대한 이해가 있어야 우아하게 해결할 수 있는 문제였습니다. HorizontalPager 가 하나 있고, 각 페이지는 텍스트와 이미지가 포함된 Column 이 존재합니다. HorizontalPager 의 바로 아래에는 HorizontalPager 의 Indicator 가 있고요. 각 페이지에서 보여져야 하는 이미지는 비율이 각기 다르고, 그 위에 표시되는 텍스트가 차지하는 영역도 모두 다릅니다. 단순 고정 크기 Column 에 이미지의 weight() 를 설정하여 해결.. [Jetpack Compose] 커스텀 TooltipState 로 UX 개선하기 동기Jetpack Compose 에서는 툴팁을 사용해본 적이 없었는데요. 진행 중인 사이드 프로젝트에서 구현할 일이 생겨 사용해보게 되었습니다. UX 요구 사항은 해당 툴팁이 자연히 사라져서도 안 되고, 툴팁이 떠 있다고 해서 다른 컴포넌트와 상호 작용이 불가해서도 안 됩니다. 모바일 환경에는 Hover 기능이 없다보니, 대부분 버튼을 짧게 터치하거나 길게 터치했을 때 툴팁이 표시 되었다가 이후 다시 툴팁을 터치하거나 손을 떼었을 때 사라지게 되는 형태가 대부분인데요. 제가 구현해야 했던 것은 특정 상황에서 자동으로 표시되어야 했습니다. 사라지는 것도 해당 툴팁 내의 버튼을 터치했을 때에만 사라져야 하고요. 이와 같이, 보통의 툴팁과는 조금 다른 방식으로의 구현이 필요해 보였습니다.Jetpack Comp.. 이전 1 2 3 4 ··· 11 다음