[Android] AppLink 인앱 브라우저 호환 문제 처리
·
Android
들어가며앱을 개발하다 보면 "URL을 눌렀을 때 앱이 바로 열리게 하고 싶다"는 요구를 자주 듣습니다.이를 가능하게 하는 기술이 바로 `DeepLink`입니다. 최근 진행하고 있는 `보따리`라는 프로젝트에서도 초대 링크를 눌렀을 때 앱이 열리도록 `AppLink`를 적용했지만카카오톡이나 인스타그램 등 인앱 브라우저에서는 정상적으로 동작하지 않는 문제가 있었습니다.이 글에서는 DeepLink의 개념부터 AppLink가 등장한 이유,그리고 보따리 앱에서 이 문제를 어떻게 해결했는지를 차례로 정리합니다. DeepLink란?`DeepLink`는 말 그대로 "사용자를 특정 앱으로 이동시켜서 원하는 화면을 보여주거나, 사용자 액션을 유도하는 링크"입니다.웹의 URL처럼 보이지만 브라우저 대신 앱을 직접 실행시켜 특..
Build Logic으로 멀티모듈 공통 빌드 설정 효율적으로 관리하기
·
Android
프로젝트의 기능이 확장되면서 모듈 구조의 복잡도가 급격히 높아졌다.초기에는 단일 모듈(:app)로 시작했지만 기능별 책임을 분리하기 위해 멀티모듈 구조로 리팩터링을 진행했다.그러나 시간이 지날수록 공통 빌드 설정이 여러 모듈에 중복되면서 관리 포이트가 늘어나는 문제가 발생했다. 멀티 모듈 프로젝트 구조Stacko/ ├── app/ # Entry point (Application) ├── feature/ │ ├── home/ # 홈 화면 │ ├── search/ # 검색 기능 │ ├── detail/ # 상세 화면 │ └── settings/ ..
[Comopse] Android Compose Theme 살펴보기
·
Android/Compose
왜 Theme가 필요한가?안드로이드 개발에서 UI는 앱의 첫인상을 결정합니다.하지만 화면이 많아질수록 색상, 글꼴, 모서리 둥글기 같은 스타일을 각 화면마다 직접 지정하는 방식은 유지보수가 매우 어렵습니다. 이를 해결하기 위해 Compose는 Theme 개념을 도입하여 앱 전반에 일관된 디자인을 주입합니다.일관성: 버튼, 텍스트, 카드 등 공통 UI 컴포넌트가 동일한 스타일로 표현재사용성: 여러 화면에서 동일한 색상/글꼴/모양을 공유유지보수성: 브랜드 리뉴얼, 다크 모드 대응 시 코드 수정 범위 최소화특히 Compose는 Material Design 3(M3)를 기본 권장하며, MaterialTheme를 통해 색상, 글꼴, 모양을 한 번에 관리할 수 있습니다. MaterialTheme 살펴보기Materi..
[Git] Github Labels 한 번에 적용하는 방법
·
Etc/Git
Github Repo를 생성할 때마다 수동으로 추가하던 Label을 한 번에 적용하는 방법을 알게 되어 소개하려고 합니다. 📌 준비물git-labels.json"name": "라벨 이름","color": "라벨 색상","description": "라벨 설명"[ { "name": "⚙ Setting", "color": "e3dede", "description": "개발 환경 세팅" }, { "name": "✨ Feature", "color": "a2eeef", "description": "기능 개발" }, { "name": "🚀 Deploy", "color": "C2E0C6", "description": "배포 관련" }, { "name..
[Compose] 한국 이름 입력을 위한 TextField 구현 (+천지인)
·
Android/Compose
한국에서 이름 입력 시, 천지인 키보드와 삼성 한손모아키 키보드의 호환성을 고려해야 합니다. 특히, 두 키보드에서 미들닷(ㆍᆢ)의 표현이 다르기 때문에 이를 적절히 처리하는 정규표현식을 사용해야 합니다. 정규표현식입력 필터링을 위한 정규표현식은 다음과 같습니다:val regex = Regex("^[가-힣ㆍᆞᆢㄱ-ㅎㅏ-ㅣ]*$") 이 정규표현식은 한글 문자(가-힣), 미들닷(ㆍ, ᆢ), 그리고 자음(ㄱ-ㅎ)과 모음(ㅏ-ㅣ)을 포함하여 오직 한국어만 입력받도록 설정합니다.미들닷(ㆍ)이 두 개인 이유는 삼성의 한손모아키에서 사용되는 미들닷(ㆍ)이 천지인과 다르기 때문에이를 모두 대응하기 위해 추가하였습니다. 예시 코드아래는 Compose를 사용하여 한국어 입력을 처리하는 KoreanTextField 컴포저블 ..
[Git] CHANGELOG.md Generate
·
Etc/Git
지난 포스트에서 AngularJS Commit Convention에 대해 정리했습니다.이번에는 정리한 내용 중에서 CHANGELOG.md를 직접 생성해보려 합니다.  📌 CHANGELOG.md생성하기에 앞서 CHANGELOG.md가 뭔지 설명해 보겠습니다.CHANGELOG.md는 Release 시점에 Commit Message를 및 별로 정리해 놓은Markdown 형식의 파일입니다. 따라서, 프로젝트의 feature, bug fix, refactor 등으로부터 변경된 변화를 한눈에 파악할 수 있습니다.  📌 간단한 생성 방법이전 글에서도 소개해드렸는데 Git 명령어를 통해 생성하는 방법입니다.git log --pretty="- %s" > CHANGELOG.md위와 같이 명령어를 입력 후 실행하면 ..