안드로이드/이론

안드로이드/이론

[ 안드로이드 ] Handler를 통한 Viewmodel 변수 상태 체크하기

기존에 안드로이드 프로젝트에 MVVM만 적용했을 땐, ViewModel을 기능 기준으로 분류를 했었다. 화면마다 ViewModel를 만들기에는 사용하는 Repository가 너무 많이 겹쳤기 때문에 클래스간 의존성이 너무 높아져서 기능별로 ViewModel-Repository 세트를 구현한다음에, 뷰에서 필요한 ViewModel을 가져다 쓰는 방식으로 개발을 진행했었다. 개발하면서도 위의 문제가 거슬렸었는데, 최근 클린 아키텍쳐를 공부하면서 해결 방안을 찾은 것 같다. 클린 아키텍쳐에선 Repository의 기능 중 필요한 기능만 Use Case로 뽑아서 쓰고, Use Case는 Repository 인터페이스를 참조하기 때문에 의존성이 높지 않다. 위의 방식을 이용하면 화면마다 ViewModel을 만들어..

안드로이드/이론

[ 안드로이드 ] 해상도 대응, 다양한 화면 크기 지원

졸업 작품을 진행하기 전 여러가지 이론이나 기술 스택들에 대해 정확히 이해하고 있어야할 것 같았다. 이번 졸업 작품은 UI/UX적으로도 꽤 신경쓰고 있기 때문에 가장 먼저 해상도 대응 방법에 대해서 정리를 해야할 것 같았다. 해당 포스트에서는 안드로이드 공식 문서에서 제공하는 해상도 대응 방법에 대해서 정리 해보고자한다. 유연한 레이아웃 만들기 먼저 다양한 기기에 대응하기 위해서는 작은 변화에도 반응하는 유연한 레이아웃을 만들어야한다. 그 방법들은 아래와 같다. 1. ConstraintLayout 사용하기 공식 문서에서 가장 먼저 제안하는 방법은 ConstraintLayout을 기본 레이아웃으로 사용하는 것이다. ConstraintLayout 특성상 절대 위치가 아닌 상대 위치(뷰끼리의 공간적 관계)를 ..

안드로이드/이론

[ 안드로이드 ] local.properties를 이용하여 API Key 안전하게 보관하기

개인적으로 서버 URL이나 API KEY 등이 외부에 노출되는 것을 꺼리는데, 서버 URL이나 API KEY를 소스 코드에 그대로 작성하고 프로젝트를 GitHub에 업로드하면 그대로 노출되기 때문에 이는 따로 관리해주는게 좋다. 해당 게시글에선 서버 URL를 예시로 사용한다. local.properties를 통해 안전하게 보관하기 1. local.properties 작성 // local.properties sdk.dir = Sdk 경로 base.url = "서버의 주소" 위와 같이 local.properties를 작성해준다. (sdk 경로는 미리 작성 되어 있을 것이므로 건드리지 않아도 된다.) 2. build.gradle 수정 2-1 Groovy인 경우 Properties properties = new..

안드로이드/이론

[ 안드로이드 ] Fragment Add시 밑의 Fragment 클릭되는 문제

https://minchanyoun.tistory.com/132 [Android] Fragment Add시 뒤에 Fragment 클릭되는 문제 해결방법 안녕하세요~ 챠니입니다! :) 예를 들어 FragmentA에서 FragmentB를 add 했을 때 FragmentA위에 FragmentB가 쌓이게 되는데 이때 FragmentA의 화면의 버튼이나 클릭할 수 있는 것들이 클릭되는 문제를 해결하는 minchanyoun.tistory.com 위에 올라온 Fragment의 최상단 레이아웃에 ``` android:clickable=true``` 작성

안드로이드/이론

[ 안드로이드 ] Livedata Observer 등록하자 마자 호출되는 경우 or 중복 호출

안드로이드의 Livedata에 Observer를 걸어 사용하던 중 Observer를 등록하자마자 호출이 되어 코드가 실행되는 경우가 있었다. https://stackoverflow.com/questions/50236778/why-livedata-observer-is-being-triggered-twice-for-a-newly-attached-observer Why LiveData observer is being triggered twice for a newly attached observer My understanding on LiveData is that, it will trigger observer on the current state change of data, and not a series of ..

안드로이드/이론

[ 안드로이드 ] BottomSheetDialog에서 Fragment로 값 전달

BottomSheetDialog에서 Fragment로 값 전달하기 안드로이드 앱 개발 중 Fragment에서 BottomSheetDialog를 띄우고, 해당 BottomSheetDialog에서 입력된 값을 가져와야하는 상황이 생겼다. 당연히 DataBinding으로는 해결이 안되므로, 인터페이스를 활용한다. 1. 데이터 전달을 위한 인터페이스 생성 AddClassFragment.kt (BottomSheetDialogFragment) class AddClassFragment : BottomSheetDialogFragment() { /** AddClassBottomSheet의 데이터를 전달하기위한 인터페이스 */ interface BottomSheedDataReciever{ fun setClassDatas(..

안드로이드/이론

[ 안드로이드 ] 외부 라이브러리 커스텀하기

https://github.com/tlaabs/TimetableView GitHub - tlaabs/TimetableView: Android Library that creates simple timetable. Android Library that creates simple timetable. Contribute to tlaabs/TimetableView development by creating an account on GitHub. github.com 시간표를 구현하기 위해 위의 라이브러리를 선택 했으나, 위의 라이브러리에는 몇 가지 지원 안되는 기능이 있었다. 테이블 헤더 높이 조절 불가 폰트 및 글자 크기 조절 불가 시간표 색상 선택 불가 (기본 컬러 조합으로 세팅 되어있음) 위의 기능들을 추가하..

dongx._.2
'안드로이드/이론' 카테고리의 글 목록 (4 Page)