본문 바로가기
728x90

전체 글86

[Jetpack Compose] Compose로 Calendar, Horizontal Calendar 예쁘게 직접 만들기 (주간 캘린더, 월간 캘린더) 이전에 xml로 개발할 때에는 캘린더 관련 라이브러리나 레퍼런스가 많았는데 컴포즈는 아직까지는 참고할 레퍼런스가 많지 않은 것 같습니다.안드로이드에서 제공하는 기본 캘린더는 너무 못생겼고, 다른 사람들이 만들어놓은 라이브러리를 사용하는 경우 100% 입맛대로 커스텀하기에는 제한적인 부분들이 있기 때문에 욕심이 생겨 외부 라이브러리를 사용하지 않고 직접 캘린더를 만들어봤습니다. Jetpack Compose를 사용하며 캘린더 개발로 고통받는 다른 안드로이드 개발자들에게 조금이나마 도움이 되었으면 좋겠습니다 :)포스팅에 모든 내용과 코드를 담을 수 없어 레포지토리 링크를 첨부합니다. GitHub - Ojongseok/Compose_Calendar_PracticeContribute to Ojongseok/Com.. 2024. 5. 12.
[TellingMe/Android] 텔링미 안드로이드 개발 🔥4차 스프린트🔥 4차 스프린트 리뷰는 살짝 늦었습니다. 개인적으로 이런저런 이유로 바쁜 기간이었고, 팀에서도 백엔드 인수인계 이슈로 서버가 오랜 기간 내려가 있어서 작업을 할 수가 없었어요..흑 이번 스프린트에서 진행한 내용은 화면 전환에 사용되는 Navigation 설계를 개선했고, 소셜로그인 이후 사용자의 상세정보를 기입하는 화면의 UI를 구성하는 작업을 했습니다. 상제정보를 기입하는 화면은 아직 배포되지 않은 관계로 온전히 보여드릴 수는 없지만 대략적인 UI는 다음과 같습니다. 크게 복잡한 화면은 아니지만 Compose로 UI를 구성하면서 xml과는 다른 방식으로 Graph에 접근하기 때문에 조금 까다로웠던 부분들이 있었는데 마지막에서 좀 더 작성하겠습니다. NavGraphBuilder 패턴으로 분리 NavHost.. 2024. 3. 13.
[Jetpack Compose] Material3. BottomNavigationBar 배경 제거하기 Jetpack Compose의 Material Design1에서 지원하는 BottomNavigation에 대한 레퍼런스는 꽤나 찾아볼 수 있었지만 Material Design3에서 제공하는 NavigationBar와 관련된 레퍼런스는 정말 찾아보기 힘들었다. 특히 NavigationBarItem의 배경(?), 백그라운드(?)를 제거하고 싶은데 제거하는 방법을 찾기 힘들었다.. 분명 제거하는 속성이 있을거라 생각했고, 관련 속성을 발견하게 되어 공유합니다. NavigationBarItem( ... colors = NavigationBarItemDefaults.colors(indicatorColor = Color.Transparent) ) colors의 매개변수인 indicatorColor의 컬러를 투명한 .. 2024. 3. 10.
[TellingMe/Android] 텔링미 안드로이드 개발 🔥3차 스프린트🔥 이번 3차 스프린트 기간에는 Compose 기반의 UI 구성에서 벗어나 카카오 소셜로그인과 관련된 API 연동 및 로그인 관련 비즈니스 로직을 작성하는 작업을 했습니다. 카카오에서 제공하는 로그인 API만 연결하면 마치 앱의 로그인 과정이 모두 끝난 것 같은(?) 것처럼 보이지만 전혀 그렇지 않습니다. 클라이언트에서 시도한 카카오 로그인이 정상임이 확인되면 이제부터 많은 부분들을 신경 써줘야 합니다. 프로젝트마다 로그인 로직이 조금씩 다를 수 있겠지만 저희는 카카오에서 발급해 준 사용자 고유의 인가코드를 서버로 전달해 자체적인 AccessToken/RefreshToken을 발급받아 사용자를 관리하고 있습니다. 그리고 최초 로그인인지 아닌지를 구분해 최초 로그인 이후로는 당연히 자동 로그인이 되어야 하고,.. 2024. 2. 7.
[Android/Kotlin] Retrofit을 이용한 https통신에서 SSL 인증서 오류 해결방법 문제상황 안드로이드에서는 버전 9부터 네트워크 통신 과정에서 http 접근을 허용하고 있지 않습니다. 하지만 Manifest에 usesCleartextTraffic 속성을 true로 설정해주는 것만으로도 우회해서 http 접근이 가능하기 때문에 그동안 https://xxxx로 적용된 API 주소를 단순히 http://xxxx로 바꿔 요청하는 방식으로 개발했습니다. 하지만 이번 프로젝트에서는 서버에서 어떤 보안(?) 처리가 되어있는지 http 접근이 도저히 되지 않았습니다. javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found. .. 2024. 1. 30.
[TellingMe/Android] 텔링미 안드로이드 개발 🔥2차 스프린트🔥 지난주까지 1차 스프린트에 이어 2차 스프린트를 진행했습니다. 1차 스프린트에서는 본격적인 개발을 시작하기 전 주요 컴포넌트와 디자인시스템을 구축하는 작업을 했다면 2차 스프린트에서는 일부 컴포넌트를 활용해 Screen을 Jetpack Compose로 구현하는 작업을 했습니다. 변경된 UI는 아직 배포가 되지 않아 공개가 어렵지만 1일 1회 사용자에게 주어지는 질문에 대한 본인의 답변을 작성하는 화면입니다. Compose로 제대로 된 화면은 처음 만들어 보는지라 스프린트를 기간 동안 고민도 많이 하고, 공부도 많이 했던 화면입니다. TopAppBar는 어떤 기준으로 컴포넌트화 할 수 있을지, 흐릿하게 보이는 BottomSheet와 Dialog가 Compose에서는 xml과 다르게 어떤 방식으로 띄워지고 .. 2024. 1. 23.
728x90
반응형