728x90 분류 전체보기87 [TellingMe/Android] 텔링미 안드로이드 개발 🔥2차 스프린트🔥 지난주까지 1차 스프린트에 이어 2차 스프린트를 진행했습니다. 1차 스프린트에서는 본격적인 개발을 시작하기 전 주요 컴포넌트와 디자인시스템을 구축하는 작업을 했다면 2차 스프린트에서는 일부 컴포넌트를 활용해 Screen을 Jetpack Compose로 구현하는 작업을 했습니다. 변경된 UI는 아직 배포가 되지 않아 공개가 어렵지만 1일 1회 사용자에게 주어지는 질문에 대한 본인의 답변을 작성하는 화면입니다. Compose로 제대로 된 화면은 처음 만들어 보는지라 스프린트를 기간 동안 고민도 많이 하고, 공부도 많이 했던 화면입니다. TopAppBar는 어떤 기준으로 컴포넌트화 할 수 있을지, 흐릿하게 보이는 BottomSheet와 Dialog가 Compose에서는 xml과 다르게 어떤 방식으로 띄워지고 .. 2024. 1. 23. [Jetpack Compose] Compose로 BottomSheet 구성하기 feat. Material 3 Jetpack Compose로 BottomSheet를 구성하는 방법을 찾아보면서 효과적이라고 생각되는 두 가지 방법을 공유합니다 :) MaterialDesign3 환경에서 작성되었습니다. 1. ModalBottomSheetLayout ModalBottomSheetLayout은 BottomSheet의 UI를 구성하는 sheetContent 컴포저블 함수와 BottomSheet를 포함하는(?), BottomSheet가 띄워질(?) 상위 스크린을 구성하는 content 컴포저블 함수로 구성할 수 있습니다. 그 외에 속성들을 생성자로 설정하지 않으면 기본값으로 지정된 BottomSheet 속성으로 적용되지만 여러 속성들을 통해 BottomSheet의 배경색, 모양, 최초 상태 등을 정의할 수 있습니다. Moda.. 2024. 1. 16. [TellingMe/Android] 텔링미 안드로이드 개발 🔥1차 스프린트🔥 최근 TellingMe(텔링미) 서비스를 개발하고 운영하고 있는 TellingUs(텔링어스)팀에 안드로이드 개발자로 합류하게 되었다. TellingUs에서는 텔링미 iOS를 주력으로 개발하며 운영 중에 있고, 약 1,000명 정도의 사용자들을 대상으로 서비스하고 있다. iOS 앱을 주력으로 먼저 서비스하며 안드로이드 앱에 대한 수요도 확인했고 당시 팀에는 안드로이드 개발자가 없어 간단하게 웹뷰로 만들어 안드로이드 앱은 비교적 가볍게 서비스되고 있었다. 그리고 이번에 기존 앱을 전체적으로 고도화&리팩토링하는 과정을 거치기로 했고, 다른 안드로이드 개발자 한 분과 같이 텔링미 안드로이드 개발을 함께 하기로 했다. 내가 TellingUs팀에 합류하기로 결정했던 이유로는 크게 두 가지가 있다. 1. 실제 사용자.. 2024. 1. 8. 2023년 회고 포스팅을 작성하는 오늘은 2024년 1월 1일이다. 올해는 본격적으로 개발자가 되기 위해 취업을 목표하고 있어 작년을 되돌아보는 회고를 작성해보려 한다. 먼저 회고를 작성하고 있는 현재 개발블로그를 시작한지 정확히 1년이 되었다. 작년 이맘때쯤 본격적으로 개발을 공부하기 위한 동기부여 겸, 공부하는 내용을 틈틈이 정리하려는 목적으로 티스토리 개발블로그를 시작했다. 다른 개발자분들에게 잘못된 정보를 제공하는게 포스팅을 작성하지 않는 것만 못하다는 생각이 들어서 코드 한 줄을 작성하거나 단어를 선택할 때에도 많이 고민하면서 공부하는 내용을 다시 한 번 정리하는 시간을 가질 수 있었다. 부족한 글솜씨지만 감사하게도 많은 분들이 방문해주셔 1년 만에 1만 명이 넘는 방문자수를 기록했다. 올해 초 겨울방학 기간에.. 2024. 1. 1. [Jetpack Compose] 단방향 데이터 흐름 UDF(Unidirectional Data Flow) 살펴보기 Jetpack Compose에서 기본적으로 UI는 수정될 수 없습니다. UI는 상태(State)에 따라서 존재하고, 상태가 변경되는 경우에 변경된 UI 트리에 맞춰 다시 UI를 그리게 됩니다. Compose에서 UI를 다시 그리는 과정을 Recomposition이라고 하고, compose에서 UI 갱신은 오직 Recomposition에 의해서만 이루어집니다. @Composable fun OutlinedTextFieldEx() { var name by remember { mutableStateOf("") } OutlinedTextField( value = name, onValueChange = { name = it } ) } 위의 예시에서 OutlinedTextField는 내부에서 상태를 가지고 있지 않습.. 2023. 12. 29. [Jetpack Compose] Compose에서 폰트시스템(Typography) 구축하기 최근 Compose로 신규 안드로이드 앱을 개발하는 프로젝트에 참여하게 되었습니다. 본격적인 개발을 시작하기 전 앱 전체에서 사용하게 될 Text의 Style을 지정하기 위해 어떤 방법들이 있나 찾아보았고, 기존에 공부하던 xml 개발 방식과는 다소 차이가 있는 것 같아 공유합니다! 우선 앱에서 사용할 폰트를 다운받아 res → font 폴더에 저장합니다. 폰트는 구글에 검색하면 쉽게 다운로드받을 수 있고, .ttf확장자의 대문자를 포함하지 않아야 합니다. Type.kt private val nanumSquareRoundStyle = FontFamily( Font(R.font.nanum_square_round_regular, weight = FontWeight.Normal), Font(R.font.nan.. 2023. 12. 27. 이전 1 2 3 4 5 ··· 15 다음 728x90 반응형