| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 선언형ui
- 안드로이드스튜디오
- 애드센스
- 수성구맛집
- 코딩
- compose
- 안드로이드
- 코딩공부
- 안드로이드앱개발
- 동성로핫플
- 어플개발
- 안드로이드앱
- 대구맛집
- 안드로이드개발
- 감성카페
- 개발자
- androidstudio
- 대구인스타핫플
- 범물동카페
- 대구핫플
- 지산동카페
- 동성로카페
- 의무경찰
- Android
- 수성구카페
- 앱개발
- 동성로맛집
- 파이썬
- 대구카페
- 인스타핫플
- Today
- Total
목록전체 글 (148)
Glacier's Daily Log
나는 현업 2년 차, 프리랜서 경험까지 합치면 6년 차에 접어드는 안드로이드 개발자다.“안드로이드 개발자”라 불리지만, 앱의 UI/UX를 구현하는 프론트엔드 개발자에 가깝다. 영화 속 천재 해커처럼 코드 치는 게 멋져 보여서 개발을 시작했냐고? 사실 내 이야기는 조금 다르다.처음 개발을 배우기 시작했을 때부터 나는 언어나 알고리즘보다 UI 디자인에 훨씬 더 관심이 있었다. 다른 초심 개발자들이 알고리즘이나 서버 아키텍처에 열정을 쏟을 때,나는 앱이 ‘어떻게 보여지고, 어떻게 느껴지는가’ 에 집중했다. 아이패드로 와이어프레임을 그리고, 색상 팔레트를 고민하며,하나의 화면이 몇 없을 내 앱의 사용자에게 어떤 감정을 줄 수 있을지를 생각하곤 했다. 그렇게 지금까지 내가 직접 디자인하고 개발한 앱은 40여 개가..
SubcomposeLayout이란?SubcomposeLayout은 Jetpack Compose의 레이아웃 API.컴포저블을 순차적으로 측정하고, 측정 결과를 바탕으로 다른 컴포저블의 크기를 결정할 수 있다.일반적인 Compose의 문제점(?)일반적으로 Compose는 모든 컴포저블을 동시에 측정함. 예를 들어:배경 Box와 텍스트가 동시에 측정됨텍스트 높이를 모르는 상태에서 배경 높이를 결정해야 함onSizeChanged는 측정 후에 호출되어 리컴포지션이 필요함SubcomposeLayout을 통한 해결법SubcomposeLayout은 측정 순서를 제어할 수 있음:먼저 텍스트를 측정해 높이를 얻음그 높이로 배경 높이를 계산계산된 높이로 배경을 측정최종적으로 배치현업에서 SubcomposeLayout으로 문..
Monkey Test란?앱을 무작위 이벤트로 스트레스 테스트하는 도구.“원숭이가 아무 버튼이나 마구 누른다”는 의미에서 이름이 Monkey.앱 실행 중에 터치, 드래그, 버튼 입력, 시스템 이벤트 등을 무작위로 발생시켜 앱의 안정성을 검증하는 용도로 사용.QA, 자동화 테스트, 크래시 탐지에 자주 활용됨.adb shell monkey로 할 수 있는 것특정 앱만 테스트: -p 옵션으로 패키지를 지정.이벤트 개수 지정: 실행 시 몇 번의 이벤트를 발생시킬지 숫자로 지정.이벤트 유형 비율 조정: 터치, 드래그, 앱 전환, 시스템 키 이벤트 등 비율을 세밀하게 제어.앱 전환 방지: 앱 내부만 눌리게 제한 가능.화이트리스트 적용: 허용할 패키지만 지정 가능.크래시/타임아웃 무시: 크래시가 발생해도 테스트 이어가게..
오랜만에 또 하나 만들었다.이번엔 음식 타이머 앱.그냥 초시계처럼 시간만 재는 게 아니라, 라면, 하이볼, 삼겹살, 소주 주량까지 전부 도와주는 앱이다. 아이디어는 단순했다.라면 끓일 때 매번 검색해서 시간 확인하고, 하이볼 만들 때 비율 계산하고, 소주 마실 때 몇 잔째인지 세는 게 귀찮았다. 라는 친구의 의견.그걸 다 한 번에 해결하는 앱이 있으면 재밌겠다 싶었다.그래서 하루 만에 디자인, 개발, 배포까지 싹 끝냈다. 📌 앱에 들어간 기능🍜 라면 타이머브랜드별로 전부 최적 시간 넣었다.신라면 4분 30초, 진라면 4분 20초, 너구리 5분…그냥 ‘대충 4분’이 아니라, 제조사 기준 공식 시간을 전부 적용했다.라면 종류 고르고 ‘시작’만 누르면 끝.중간에 “물이 끓으면 스프를 넣으세요” 같은 안내..
Android Studio ↔ Cursor IDE 단축키 연동 가이드 (⌥⇧S)Android 개발 시, Cursor IDE의 AI 코딩 보조 기능과 Android Studio의 기능을 유연하게 오갈 수 있도록 단축키를 연동합니다.1. Android Studio → Cursor IDE 단축키 설정현재 Android Studio에서 열려 있는 파일을 Cursor에서 그대로 열리게 하는 Shortcut 생성1-1. 외부 툴 등록Android Studio → Preferences (Cmd + ,)→ Tools > External Tools → + 버튼 클릭아래와 같이 설정 후 저장:NameOpen in CursorProgram/usr/bin/openArguments-a Cursor $FilePath$Workin..
회사에서 Compose를 최초 도입하는 프로젝트를 리딩하고, 팀원들이 Compose를 도입하기 편하게 초기 작업들을 많이 진행하고 있다.Compose는 Recomposition과 상태관리 관점에서 많은 이점을 얻을 수 있는 MVI 아키텍처와 잘 어울리는데, 따라서 상용 운영중인 앱에 Compose를 도입할때는 MVI아키텍처로 리팩토링도 함께 진행하고 있다. Android Compose + MVI 아키텍처를 도입할 때 주의해야 할 점을 그라운드 룰로 정리해본다.Jetpack Compose에서 MVI(Model–View–Intent) 아키텍처를 준수하며 개발할 때, 구조적 일관성과 유지보수성을 높이기 위한 Ground Rule1. 단방향 데이터 흐름 (Unidirectional Data Flow)상태 직접 ..
Compose Preview에서 다양한 옵션 한번에 지원하기Jetpack Compose는 빌드 없이 @Preview 기능을 통해 UI를 빠르게 확인할 수 있는 장점이 있습니다.개발 중 컴포넌트의 다양한 옵션을 테스트하거나, 여러 화면 크기에서 어떻게 보이는지 확인하고 싶을 때가 있습니다.기존 방식 (비효율적인 코드)예를 들어, BannerView를 다양한 화면 크기에서 테스트하고 싶다면 다음과 같이 각각의 @Preview를 지정해야 했습니다.@Preview(widthDp = 180)@Composableprivate fun BannerPreview180() {BannerView(onClick = {})}@Preview(widthDp = 240)@Composableprivate fun BannerPrevie..
최근에 리액트 네이티브로 개발할 일이 있어서 난생 처음으로 리액트 네이티브 개발환경을 구축해보았다. 해당 프로젝트에서 내 임무는, Android SDK31 (안드로이드11) 기준으로 targetSdk 된 소스를, 플레이스토어에 다시 올리기 위해 SDK34 이상으로 올려야하는 것이였다. 말로는 간단해보이지만, 사실 이런 크로스플랫폼 언어로는 굉장히 까다로운 작업이다. 1. android 의존성 폴더 내 gradle과 모든 config를 SDK34 기준으로 업데이트 (gradle, agp 버전 업 등이 있겠다)2. 안드로이드 버전 업데이트에 따른 react-native 라이브러리 업데이트 (내 기준 0.71.5에서 0.74.0으로 업데이트 해야 빌드가 되는 상황이였다.)3. react-native 라이브러리..