본문 바로가기

안드로이드

[안드로이드] - Compose 문서 읽어보기 - 2 안녕하세요 남갯입니다 오늘은 컴포즈 2번째 문서 부분 정리입니다. 컴포지션의 생명주기 컴포지션은 초기 컴포지션을 통해서만 생성되고 리컴포지션을 통해서만 업데이트될 수 있습니다. 컴포지션을 수정하는 유일한 방법은 리컴포지션을 통하는 것입니다. 컴포저블이 여러 번 호출되면 컴포지션에 여러 인스턴스가 배치됩니다. 컴퍼지션의 각 호출에는 자체 수명 주기가 있습니다. @Composable fun MyComposable() { Column { Text("Hello") Text("World") } } 컴포지션 내 컴포저블 리컴포지션 시 컴포저블이 이전 컴포지션 시 호출한 것과 다른 컴포저블을 호출하는 경우 Compose는 호출되거나 호출되지 않은 컴포저블을 식별하며 두 컴포지션 모두에서 호출된 컴포저블의 경우 입력이..
[안드로이드] - Compose 문서 읽어보기 -1 안녕하세요 남갯입니다 오늘은 Compose 문서 읽어보면서 내용을 정리 해보려고 합니다. https://developer.android.com/jetpack/compose/state?hl=ko 명령형 선언형의 차이 선언형 ViewB( color : red, child: viewC() ) 명령형 View = b = new View() b.setColor(Red) b.clearChildren() ViewC c3 = new ViewC() b.add(c3) 명령형에서 findViewById를 통해 트리를 탐색하고 뷰를 가져와서 setText() , addChild등과 같이 메서드를 호출해서 노드를 변경하게 되는데, 뷰를 수동으로 조작하게 되면 오류가 발생할 가능성이 커지고 여러 데이터를 표시하는경우 뷰를 업데이..
[안드로이드] Clean Architecture 소개 안녕하세요 YTS 입니다. 오늘은 많이 부족하지만 Clean Architecture라는 주제를 가지고 글을 한번 적으려고 합니다. Clean Code! 우선 Clean Code란 무엇일까? 결국 원작자의 의도가 무엇이며 코드를 볼 때 얼마나 가독성이 좋은지에 대한 여부가 가장 중요하다고 생각합니다. 즉 같이 협업하는 팀원들이 이해하기 쉽게 작성하는 코드인 것 이죠. Clean Code에 정리는 아래의 주소로 이동하시면 남갯이 잘 정리해놨습니다. 순서대로 잘 참고하시면 될것같아요! https://namget.tistory.com/entry/%ED%81%B4%EB%A6%B0%EC%BD%94%EB%93%9C-2%EC%9E%A5-%EC%9D%98%EB%AF%B8-%EC%9E%88%EB%8A%94-%EC%9..
[안드로이드] 파일과 MediaStore 싱크 맞추기 이미지를 삭제시에 해당 파일 경로와 미디어 스토어 간에 싱크가 안맞는 경우가 있을 수 있다. 따라서 미디어 스토어에 싱크를 맞추기 위해 해당 파일에 대한 경로를 일일이 확인하는 방법을 통해 확인이 가능하다. if (!File(path).exists()) { contentResolver.delete(deleteUri2, null, null) } 또한 아래와 같이 동작시킬경우 섬네일 폴더의 모든 이미지가 삭제된다. contentResolver.delete(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, null, null)
[안드로이드] getContext와 requireContext 차이 안녕하세요 남갯입니다 오늘은 getContext와 requireContext의 차이에 대해 포스팅 해보려고 합니다. 참고링크 : https://medium.com/@shafran/fragment-getcontext-vs-requirecontext-ffc9157d6bbe getContext & requireContext 의 차이 @Nullable public Context getContext() { return mHost == null ? null : mHost.getContext(); } @NonNull public final Context requireContext() { Context context = getContext(); if (context == null) { throw new IllegalS..
[Android] App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter 에러 해결방법 안녕하세요 YTS 입니다. 요즘 Android를 개발하면서 Manifest에 App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter 이라는 에러를 보실수 있을텐데요!자세한 에러내용은 아래와 같습니다. App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter. See issue explanation for more details.Inspection info:Adds URLs to get your app into the Goog..
[안드로이드] 안드로이드 Release에서 Log 찍는법 안녕하세요 YTS 입니다. 오늘은 Android App에서 Release를 추출하고도 Log가 찍히는법을 알아보겠습니다! 정말정말 간단합니다! app gradle에 buildTypes { release { debuggable true } } 요렇게 buildTypes안에 release안에 dubuggable true 하나 입력하면 끝입니다! 이상입니다 : )
[안드로이드] ripple effect 적용하기 안녕하세요 남갯입니다. 오늘은 Ripple Effect라는 것에대해 포스팅 해보려고합니다. Ripple Effect는 처음 안드로이드 5.0에서 소개되었습니다. 각자 버튼에 적용하는 default의 방법으로는 아래와같이 적용하고 난 후에 android:background="?android:attr/selectableItemBackground" min sdk api가 21이 넘는다면 아래와같이 적용함으로써 가능합니다. 21이상이 되면서 혹은 원하는형태로 custom을 하기위해서는 drawable에 ripple_custom xml을 만듭니다. 위와 같이 커스텀을해서 위쪽에는 클릭을 적용후에 동작할 클릭을 적용하면 됩니다.아래에는 클릭을 안했을대의 기본적인 색상을 적용하면 됩니다. 그후 버튼에 아래와 같이 적..