분류 전체보기87 [Jetpack Compose] Top, Bottom 에만 Border 주는 Modifier 생성하기 개인적으로 사용하고 있던 코드인데, 혹시나 필요한 사람들이 있을까봐 공유한다. /** * 컴포넌트의 하단부에만 Border를 설정 * */fun Modifier.bottomBorder(strokeWidth: Dp, color: Color) = composed { val density = LocalDensity.current val strokeWidthPx = with(density) { strokeWidth.toPx() } this.drawBehind { val width = size.width val height = size.height drawLine( color = color, start = Offset(x.. 2024. 12. 14. [Jetpack Compose] KSP 를 활용하여 자동으로 NavHost Composable 코드 생성하기 (2/2) 2024.12.13 - [프로그래밍/Jetpack Compose] - [Jetpack Compose] KSP 를 활용하여 자동으로 NavHost Composable 코드 생성하기 (1/2) [Jetpack Compose] KSP 를 활용하여 자동으로 NavHost Composable 코드 생성하기 (1/2)Jetpack Compose 환경을 사용중인 안드로이드 앱 개발자라면 Navigation 을 통해 화면 이동하는 방식을 사용하고 있을 것이다.이 Navigation 을 사용할 때는 위와 같이 유저와의 상호작용이 발생하였을 때dev-gyu.tistory.com 내용은 윗 글에서 이어집니다.# 7. NavGraphComposable 생성하기Processor 모듈에서 파일들을 모두 생성하였다면, 다시 Nav.. 2024. 12. 14. [Jetpack Compose] KSP 를 활용하여 자동으로 NavHost Composable 코드 생성하기 (1/2) Jetpack Compose 환경을 사용중인 안드로이드 앱 개발자라면 Navigation 을 통해 화면 이동하는 방식을 사용하고 있을 것이다.이 Navigation 을 사용할 때는 위와 같이 유저와의 상호작용이 발생하였을 때 NavController 를 통해서 스택을 Pop 하여 화면을 뒤로가기 하거나 스택에 Push 하여 새로운 화면으로 이동하는데, 이러한 작업들을 진행하기 위해서 가장 먼저 필요한 것은 NavHost 에 Composable 함수를 통해 앱 내 화면들을 등록하는 것이다. @Composablefun TestScreen( val controller = rememberNavController()) { ... NavHost(navController = controller, startDes.. 2024. 12. 13. [Android] 깃허브 액션을 통해 자동으로 릴리즈 태그 생성하기 (커밋 기록 포함) 내가 자주 사용하는 CICD 툴인 Bitrise 에서는 배포를 위한 트리거 방식이 여러 가지가 존재한다.Branch PR 이 올라오는 경우Branch Push 가 되는 경우특정 Tag 가 생성되는 경우내 프로젝트의 경우 CI/CD 를 위한 Branch 명이 자주 바뀌는 관계로 Branch 명에는 정규표현식을 사용하여 특정 문자열로 시작하는 브랜치인 경우 무조건 CI/CD 가 실행되게 하였었으나, 이러는 경우 정규표현식에 포함되는 다른 브랜치도 트리거 해버려서 의도치 않게 배포를 해버리는 경우가 종종 있었다. 이를 해결하기 위해 나는 3번. 즉, 특정 Tag 를 통해 배포를 하기로 마음을 먹었다. 우선 나는 테드팍님 (박상권) 님의 블로그 를 참고하였는데, 이곳에서는 Branch 가 Push 되었을때 해당.. 2024. 12. 7. [Android] 안드로이드 스튜디오에서 제공하는 앱링크의 문제점 기존에는 Firebase 를 통해 Dynamic Link 를 구현하고 이를 통해 유저의 앱을 열지, 스토어로 랜딩시킬지 결정하였지만 이것이 2025년부로 지원을 종료하게 되면서 다른 방법을 사용해야했다.다른 방법으로는 URI스킴 방식, 앱링크 방식, Defferd DeepLink 방식이 있는데 이 중에서 내가 선택한 것은 앱링크 방식이다. 앱링크를 선택한 이유는 다음과 같다.URI 스킴의 경우 다른 앱과의 충돌 우려, Defferd DeepLink 의 경우 타 서비스를 이용해야하고 대부분 유료인 점을 생각하였다. # 앱링크란?사용자가 웹 URL을 클릭할 때 해당 URL과 연결된 앱이 자동으로 열리도록 하는 기능이며, Android 에서 제공한다. (IOS 에서 이와 비슷한 기능으로는 유니버셜 링크가 존재.. 2024. 11. 5. [Android Studio] Annotation Processor -> KSP 로 마이그레이션 작업하기 이전에는 AnnoationProcessor, 이후에는 KAPT 라는 것을 이용하더니 이제는 KSP 라는 것을 사용한다고 한다.KSP 의 장점은 이러하다.**kapt**에 비해 최대 두 배 빠른 어노테이션 프로세싱 속도를 제공하여 빌드 속도가 개선된다.어노테이션을 활용하여 앱 전체에 코드 생성 기능을 추가할 수 있다. ( 추후 확인해보자 )사용법은 간단하다, 프로젝트 build gradle에 id(”com.google.devtools.ksp”) version 버전 apply false 입력해주고 앱 부분 build gradle 에 id("com.google.devtools.ksp") 를 선언 후 annotationProcessor, kapt 를 쓰던 라이브러리들을 ksp 로 바꿔주면 된다. (호환되는지 확.. 2024. 11. 4. 이전 1 ··· 3 4 5 6 7 8 9 ··· 15 다음