Android

Compose Multiplatform - shadow open source contribute 도전기https://github.com/adamglin0/compose-shadow GitHub - adamglin0/compose-shadow: a kotlin library for draw shadow in compose multiplatforma kotlin library for draw shadow in compose multiplatform - adamglin0/compose-shadowgithub.com내 게시글 중 조회수가 가장 높은 게시글이 부분은 사람들이 필요로 하고 다른 기술 블로그에는 잘 없는 정보라고 생각해서 이를 라이브러리화 시키는 곳에 contribute를 통해 제공한다면 더 나은 생..
Orbit 없이 MVI 패턴 적용기사이드 프로젝트를 진행하면서 단방향 데이터 흐름을 구현하기 위해 sealed class를 사용하다 보니 nav에서 back을 할 경우 이전 viewmodel에 존재하는 상태 값 때문에 자동으로 navigation 되는 현상을 발견하였다. 이를 해결해보고자 한다.MVVM 적용 시@HiltViewModelclass ExampleViewModel@Injectconstructor( // inject value) : ViewModel() { private val _state = MutableStateFlow(ExampleState.Init) val state = _state.asStateFlow() // ...}Compose에서 해당 방식을 이용하면 nav..
아이나비 맵 SDK Compose로 사용해보기아이나비 맵 SDK는 컴포즈 버전이 따로 존재하지 않고 xml로 되어있는 layout을 이용하거나 Fragment 인스턴스를 이용해서 사용해야한다.해당 작업을 진행하고 나면 아이나비 맵뿐만 아니라 다른 지도 sdk도 compose를 이용하여 작성할 수 있을 것이라고 생각한다.1안 xml layout을 이용하여 AndroidView로 Wrapping@Composablefun InaviMapUsingXmlView( modifier: Modifier = Modifier,) { val context = LocalContext.current AndroidView( modifier = modifier.fillMaxSize(), f..
[잡담] 사이드 프로젝트 6월달 회고사이드 프로젝트를 진행하면서 팀원이 중간에 바뀌게 되었습니다. 현재 재직중이신 회사와 사이드 프로젝트를 양립하지 못할 것 같다고 하셔서 나가시고 새로운 분이 들어와서 프로젝트를 같이 진행하게 되었습니다. 회원가입 UI 등을 새로 작업하느라 바빴던 한달인거 같네요Shadow를 구현하다https://citytexi.tistory.com/87 [안드로이드] Inner Shadow, Drop Shadow 처리하는 방법[안드로이드] Inner Shadow, Drop Shadow 처리하는 방법사이드 프로젝트를 진행하면서 figma를 확인하여 UI 작업을 하고 있었다. figma에 그려진 UI 중에 Effect란에 Inner Shadow, Drop Shadow가 포함되어 있는cit..
[안드로이드] Inner Shadow, Drop Shadow 처리하는 방법사이드 프로젝트를 진행하면서 figma를 확인하여 UI 작업을 하고 있었다. figma에 그려진 UI 중에 Effect란에 Inner Shadow, Drop Shadow가 포함되어 있는 부분이 존재해서 이를 처리할 방법을 궁리해보거나 자료를 찾아보았다.Modifier.shadow그림자를 처리하기 위해 Modifier에서 기본적으로 제공하는 함수@Stablefun Modifier.shadow( elevation: Dp, shape: Shape = RectangleShape, clip: Boolean = elevation > 0.dp, ambientColor: Color = DefaultShadowColor, ..
구글 One tap 로그인 구현 중 "16: Cannot find a matching credential"사이드 프로젝트 진행 중  web client id에 아무런 문제가 없는데 해당 오류가 계속 발생하여 확인하실 수 있는 방법 공유드립니다.Case 1 - Web Client Id가 잘못 되었을 때, Sha-1이 등록이 되지 않았을 때Google Cloud Platform의 OAuth 2.0 Client Id를 잘 확인해주시면 됩니다.그리고 만약 Sha-1이 등록되지 않았다면 위의 클라이언트 아이디를 눌러서 등록해주시면 됩니다.Case 2 - BeginSignInRequest의 setFilterByAuthorizedAccountBeginSignInRequest.GoogleIdTokenRequestOp..
[잡담] 사이드 프로젝트 1주차 회고이번 주는 기초 아키텍처랑 sign 스크린 작업을 진행했다. 퇴사 이후에 오랜만에 진행한 안드로이드 작업이라서 그런지는 모르겠지만 안드로이드 개발을 할 때 사람한테 활기가 도는 느낌이었다. 그리고 기초 모듈을 잡으면서 새로운 것을 써보고 하니까 머리가 아프기도 하는 것 같다.기초 모듈 구성해보다!거창하게 말하긴 좀 그런 부분이긴 한데 gradle version catalog랑 Convention Plugin을 써서 구현했다. 기존에 buildSrc 같은 경우에 각 라이브러리의 dependency version이 업그레이드 되더라도 안드로이드 스튜디오가 자동으로 업그레이드를 추천하는 기능이 없었는데 gradle version catalog로 변환을 하니 최신 버전으로 업..
[잡담] 사이드 프로젝트 0주차 회고캠퍼스 픽을 통해서 사이드 프로젝트를 진행하기 시작한지 일주일이 지났다. 다시 사이드를 진행하기까지 한 6개월이 지난거 같긴한데 퇴사와 겹치다보니 꽤 오랜 시간이 지난거 같다. 1주차에 진행한 것을 대략적으로 정리해보고자한다. 캠퍼스픽을 통하여 이미 구성되어 있던 프로젝트에 참여하게 되었다!프로젝트 협업 방향 정하기처음에는 organization의 repo를 private upstream 두고 fork해서 하는 방법을 주장했으나 같이 안드로이드 개발하는 분과 의견 조율을 통하여 upstream의 브랜치를 pull 받아서 진행하는 방식으로 진행하고 이후 Pull Request를 통하여 작업을 merge하는 방식으로 진행하기로 결정했다.깃 허브 issue 템플릿 정하기기존..
[안드로이드] Jetpack Compose UI Test 맛보기사이드 프로젝트를 진행하면서 UI Preview가 존재하지만 Test 코드는 어떻게 짜야할지 찾아보았습니다.https://developer.android.com/codelabs/jetpack-compose-testing?hl=ko#0 Jetpack Compose에서 테스트  |  Android Developers이 Codelab에서는 Jetpack Compose로 만든 UI를 테스트하는 방법을 알아봅니다. 격리 테스트, 디버깅 테스트, 시맨틱 트리, 동기화를 알아보면서 첫 번째 테스트를 작성합니다.developer.android.com의존성 추가// libs.versions.tomiui-test-manifest = { group = "andr..
Compose 밑줄 텍스트와 클릭 가능하게 만들기사이드 프로젝트를 진행하면서 아래 사진과 같은 UI 기능을 개발해야 하는 상황에 봉착했습니다.텍스트는 유지하면서 이용약관 과 개인보호 정책에 underline이 들어가야 하고, 두 가지 글자는 다른 onclick을 부여해야 했습니다.AnnotatedStringThe basic data structure of text with multiple styles하나의 텍스트 안에 다양한 스타일을 적용할 수 있는 객체getStringAnnotations 을 이용하여 클릭 범위 필터링 가능코드@Composableinternal fun TermsText( onClickTermsOfUse: () -> Unit, onClickPrivacyPolicy: () -> ..
citytexi
'Android' 카테고리의 글 목록