본문 바로가기

IT/안드로이드 관련

[안드로이드] - 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등과 같이 메서드를 호출해서 노드를 변경하게 되는데, 뷰를 수동으로 조작하게 되면 오류가 발생할 가능성이 커지고 여러 데이터를 표시하는경우 뷰를 업데이..
[안드로이드] hilt code-lab 안녕하세요 남갯입니다. 오늘은 hilt code lab 에 대해 공부한것을 정리해보도록 하겠습니다. 힐트는 기존 Dagger(단검)가 사용하기 복잡하여 많은 사용자들이 사용을 못하고 있는부분을 Hilt(단검 손잡이) 더 쉽게 사용하도록 만들어주는 라이브러리입니다. 대부분 ServiceLocater 패턴을 통해 런타임에 생성해서 주입하거나 Koin을 이용하거나, 혹은 Dagger를 이용하겠지만 Hilt를 이용하면 Dagger를 더 쉽게 이용 가능합니다. developer.android.com/codelabs/android-hilt?hl=ko#1 Using Hilt in your Android app | Android 개발자 | Android Developers In this codelab, you'll b..
[안드로이드] Compose 발표자료 남갯입니다. [안드로이드] Compose 발표자료 확인
[안드로이드] 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..
[dagger] 대거 - 2 정리용 범위 지정하기 각각의 컴포넌트는 @Scope 어노테이션을 통해 범위 지정이 가능하다. gc가 발생하는 상황이 되기전까지 단일 인스턴스를 보유한다는 의미다. @Singleton 사용하기 일반적으로 @Singleton 어노테이션을 사용해서 범위를 지정하여 객체를 재사용 가능하다. @Singleton @Component(modules = [SingletonModule::class]) interface SingletonComponent{ fun getString() : String } @Module class SingletonModule{ @Provides @Singleton fun provideString() : String{ return "" } } @Test fun testSingleton() { val ..
[dagger] 대거 - 1 정리용 안녕하세요 남갯입니다. https://cmcmcmcm.blog/2017/07/27/didependency-injection-%ec%99%80-dagger2/ 대거의 annotation 4가지 @Compenent: 실제 의존성 주입이 구현될 인터페이스나 추상클래스에 사용되는 annotation @Module : 의존성 관계를 설정하는 클래스에 사용되는 annotation @Provides : 객체를 제공하기 위한 메서드에 달아주는 annotation @Inject : DI를 진행할 멤버변수와 생성자에 달아준다. @Module public class CoffeeMakerModule { @Provides Heater provideHeater(){ return new A_Heater(); } @Provides ..
[안드로이드] 전이 의존성 exclude transitive dependency 안녕하세요 남갯입니다 오늘은 개발경험하다가 빌드 에러가 난 전이 의존성에 대해 포스팅 해보려고 합니다. 프로젝트가 모듈화가 되어있는데, 빌드하는 버젼이 꼬이는 문제가 있었습니다. 문제점 1. A모듈에서 특정 라이브러리를 사용하고 있었는데, 해당 라이브러리에서 구글플레이 라이브러리를 사용하고 있었다. 2. 공통모듈로 뽑을수있는 코드가 있어서 구글플레이 라이브러리의 일부 기능을 공통모듈로 옮겨 사용했다. 여기서 문제가 된점은 A 모듈에서 사용한 라이브러리가 의존성전이가 된 것입니다. 즉 A모듈내의 라이브러리에서 의존성이 전이 되어 빌드버전이 꼬인것이다. 의존성확인 위와같이 dependency를 보는방법은 1. 프로젝트로 변경한뒤 external library를 확인한다. 2. 아래의 방법을 통해 그래들에서 ..