분류 전체보기 54

Clean Architecture에 대한 고찰 [2]

# Mapper 존재에 대한 의문 회사에서 단독으로 클린 아키텍처[로 프로젝트를 진행할때 제일 많이 했더 실수가 고귀한 Domain에 Serialzable 즉 DTO를 적용했던 것이였다. import com.google.gson.annotations.SerializedNameimport java.io.Serializabledata class UserResponse( @SerializedName("id") val id: Int, @SerializedName("name") val name: String, @SerializedName("email") val email: String) : Serializable 이걸 Domain에 넣고, 클린 아키텍쳐라고 구현하고 있으니 나중에 ..

프로젝트 2025.05.29

Clean Architecture에 대한 고찰 [1]

클린 아키텍처는 소프트웨어 시스템을 관심사 분리 (Separation of Concerns) 원칙에 따라 독립적이고 유지보수 가능하며 테스트하기 쉽게 구성하기 위한 설계 철학입니다.로버트 C. 마틴 (Uncle Bob)이 제시한 이 아키텍처는특정 프레임워크, 데이터베이스, UI에 종속되지 않는 시스템을 만드는 것을 목표로 합니다. 그렇단다...어떤 프로젝트를 하던지 하도 클린 아키텍처란 키워드가 필수적으로 등장하고글을 작성하고 있는 현 시점에서는 잘 모르겠으나,한때 Clean Architecture가 굉장히 유행처럼 번지던 시절이 있었다. 실제로 회사에서 개인 프로젝트로 클린 아키텍처를 적용하며어떤 실수가 있었고, 적용하며 느낀 점을 공유하고자 한다. # Presentation Layer에 대한 이..

프로젝트 2025.05.23

AnimatedFloatAsState로 애니메이션 구현하기[3]

3. 투명도 움직임과 크기뿐만 아니라 View의 투명도도 설정할 수 있었다.동영상을 보면 알 수 있겠지만, 버튼을 누를 경우 다음 depth 화면으로 이동하는 순간점으로 된 카테고리가 중앙에서 튀어 나오는 것을 볼 수 있다. 카테고리 같은 경우 크기는 고정되어 있지만 fade-in, out 효과가 있기에다른 요소인 크기, 움직임과 마찬가지로 State인 alpha 값을 조정해서 구현했다. var isClicked by remember { mutableStateOf(true) } val alpha: Float by animateFloatAsState( targetValue = if (isVisible) 1f else 0f, animationSpec = tween(durationMillis =..

프로젝트 2025.04.18

AnimatedFloatAsState로 애니메이션 구현하기[2]

2. 움직임움직임이 사실 제일 까다로웠다. 다행히 안드로이드 modifier에 offset이라는 함수가 존재하였고,x,y 값을 설정하면 원하는 곳에 버튼을 배치 할 수 있었다.var moved by remember { mutableStateOf(false) }val pxToMove = with(LocalDensity.current) { 100.dp.toPx().roundToInt()}val offset by animateIntOffsetAsState( targetValue = if (moved) { IntOffset(pxToMove, pxToMove) } else { IntOffset.Zero }, animationSpec = tween( ..

프로젝트 2025.04.08

AnimatedFloatAsState로 애니메이션 구현하기[1]

https://developer.android.com/develop/ui/compose/animation/quick-guide?hl=ko Compose의 애니메이션에 대한 빠른 가이드  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Compose의 애니메이션에 대한 빠른 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Compose에는 내developer.android.com 처음 회사에 들어가서 온보딩으로 애니메이션을 구현하게 되었다.의뢰업체가 당시 메인 화면의 버튼들을 나열하고 클릭한 경우,애니메이션 과정을 통해 다음 화면으로 넘어가는 것들을 의뢰하였는데,xml만..

프로젝트 2025.04.01

Android Jetpack Compose 후기 (2)

물론 xml만을 사용하다 compose를 사용하는 것은 여전히 어색했다.게다가 reference 자체도 compose 보다는 xml이 더 많았기 때문에 회사의 온보딩 과정에서애니메이션을 구현할 때도 많은 어려움이 있었다.GPT가 아니었다면 나는 벌써 잘렸을지도 모른다... 하지만 앱의 페이지에서 공통되는 부분을 미리 남겨두고 또 다른 페이지에 그 뷰를 호출하면 , 뷰를 재사용 할 수 있다는 장점이 매우 컸다.또한 xml과 Fragment를 왔다갔다 하는 목 디스크를 예방해 주고,그저 Page의 작은 단위로 안드로이드 View를 만들 수 있어 매우 효과적이었다. 제일 좋았던 점은 반복되는 view를 그리기 위한 그놈의 RecyclerView를 쓰지 않아도된다.. 이게 제일 행복했다 ㅋㅋㅋㅋㅋㅋ xml에서는..

프로젝트 2025.03.24

Android Jetpack Compose 후기(1)

https://developer.android.com/compose Jetpack Compose UI App Development Toolkit - Android DevelopersJetpack Compose is Android's recommended modern toolkit for building native UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, powerful tools, and intuitive Kotlin APIs.developer.android.com 안드로이드 메리 프로젝트를 하면서 사실 제일 많이 배우고 유용하다고느낀 라이브러리가 바로..

프로젝트 2025.03.19

2025년 글쓴이 근황

최근에 글을 쓴 게시물이 2024년 5월... 지금이 2025년 3월이니약 1년 조금 안되게 글을 쓰지 못했 않았다.여러가지 핑계와 이유가 있겠지만 24년 7월에 취업을 해서 일 하느라블로그 작성을 소홀히 여겨던 것 같다.워라벨 최고!!  필자는 현재 중소 SI 기업에서 안드로이드 개발자로근무하고 있으며, 나름 만족하며 다니고 있다.사실 퇴근 후에는 헬스장 말고는 딱히 자기 개발을 하지 않았기에25년 3월부터라도 독서, 공부, 블로그 작성 등 나 자신을 성장시키기 위한 활동들을 끊임없이 할 예정이다.블로그 작성도 적어도 주 1회에 1포스트는 할 예정.. 앞으로 쓸 글의 컨텐츠들은 다음과 같다. # xml 생성도 안하고  데이터 바인딩도 할 필요 없는 개꿀 UI 라이브러리가 있다? # 상사 몰래 클린 아키..

카테고리 없음 2025.03.17

MERY PR 되돌아보기 [1]

https://github.com/abloom-AOS/MERY_Android/pull/7 [Feat/#10] 카카오 GlobalApplication 생성 및 초기화 by leeugun123 · Pull Request #7 · abloom-AOS/MERY_Androidclose #10 ✏️ 개요 카카오 GlobalApplication 생성 및 초기화 💻 작업 사항 카카오 Developer 사이트에서 Hash Key와 package를 등록하였습니다. API 키는 리뷰가 끝나고 merge 된 후 공유해드리겠습니다.github.com [1] 카탈로그로 버전 관리 메리 프로젝트를 진행하면서 버전 카탈로그라는 개념을 처음 알게 되었다.안드로이드를 개발 할 수록 무수히 많은 라이브러리를gradle 파일에 추가하게 ..

데이터 바인딩을 통한 코드 양 감소

https://developer.android.com/topic/libraries/data-binding?hl=ko 데이터 바인딩 라이브러리  |  Android 개발자  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 데이터 결합 라이브러리 Android Jetpack의 구성요소 데이developer.android.com 평소 뷰 바인딩만 사용하여 안드로이드를 개발했는데프로젝트를 같이 진행한 팀원분이 데이터 바인딩을 통해코드를 엄청나게 줄여주셨다. 뷰 바인딩만 사용할때는 binding의 onClickListener를 구현하여액티비티나 프래그먼트의 코드의 양이 늘..