'Android' 태그의 글 목록 (2 Page) — SH's Devlog

Android

Android/Dependency Injection

[Android/DI] Dagger2 - Lazy Injection vs Provider Injection

Lazy 혹은 Provider를 사용하면 의존성 주입의 시점을 늦추거나 항상 새로운 객체를 반환 받을 수 있도록 할 수있습니다. Lazy Injection vs Provider Injection Cpu 객체는 Provider를 통해 주입해주고, Ram 객체는 Lazy를 통해 주입해주도록 해주겠습니다. ComputerComponent.kt @Component(modules = [ComputerModule::class]) interface ComputerComponent { fun inject(computer: Computer) @Component.Builder interface Builder { fun computerModule(computerModule: ComputerModule): Builder fu..

Android/Dependency Injection

[Android/DI] Dagger2 - 소개 및 Module과 Component

Dagger란? Dagger는 자바 안드로이드에서 사용 가능한 정적 컴파일타임 의존성주입 프레임워크 입니다. Annotation Proccessor를 통해 컴파일 타임에 어노테이션을 읽고 의존성 주입에 필요한 클래스들을 생성합니다. 어노테이션 처리를 컴파일 시점에 별도의 프로세서에서 처리하므로 성능이 향상되고, 클래스 Reflection을 사용하지 않으므로 Runtime Exception 발생을 막으며 Proguard 설정의 번거로움에서 벗어날 수 있습니다. Module Module에서 하는 역할은 @Provides,@Binds를 통해 주입할 클래스의 인스턴스를 생성합니다. 메소드의 반환 타입을 통해서 주입할 객체를 정하며, 반환타입이 같을 경우 @Qualifier를 통해 주입할 객체를 지정할 수 있습니..

Android/Basic

[Android] WebView 속성 정리

WebView Settings 속성 webView.apply { webChromeClient = WebChromeClient() // 크롬환경에 맞는 세팅을 해줌. 특히, 알람등을 받기위해서는 꼭 선언해주어야함 (alert같은 경우) settings.apply { javaScriptEnabled = true javaScriptCanOpenWindowsAutomatically = false // window.open() 동작 허용 loadsImagesAutomatically = true // 웹뷰에서 앱에 등록되어있는 이미지 리소스를 사용해야 할 경우 자동으로 로드 여부 cacheMode = WebSettings.LOAD_NO_CACHE // LOAD_NO_CACHE -> 캐시 사용 x 네트워크로만 호출,..

Android/Dependency Injection

[DI] Dependency Injection이란?

Dependency Injection이란? 의존성 : A클래스가 B클래스에 대한 참조가 있을 경우 A는 B에 의존한다라고 하고 B는 A에 대한 종속성이 있다(종속한다)라고 합니다. 이 의존성을 잘 관리하지 않으면, 프로젝트의 규모가 커질수록 코드변화에 유연하게 대처할 수 없어서 많은 코드 수정을 하게 될 수도 있습니다. SOLID DIP(Dependency Inversion Principle) A. HIGH LEVEL MODULES SHOULD NOT DEPEND UPON LOW LEVEL MODULES. BOTH SHOULD DEPEND UPON ABSTRACTIONS. B. ABSTRACTIONS SHOULD NOT DEPEND UPON DETAILS. DETAILS SHOULD DEPEND UPON..

Android/Basic

[Android] Dp to Px

레이아웃에서 뷰의 크기와 위치를 설정할 때는 px보다는 dp를 이용하는 것이 좋다. 왜냐하면 dp를 사용하면 큰 화면, 작은 화면에 상관 없이 동일한 비율로 나타내준다. 하지만 자바코드에서는 dp를 사용할 수 없다. 픽셀 값만 인자로 받기도 하지만 가장 큰 이유는 자바 코드에서는 실행하는 기기의 해상도를 모르므로 런타임 시에 해상도에 맞게 dp를 px로 변환하여 사용한다. val resources = resources val px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 200f, resources.displayMetrics) 200dp를 px로 변환하려면 위에 코드처럼 변환하여 setMargins()나 setWidth()등에 넣어주면 된다.

Android/Basic

[Android] 안드로이드 스튜디오에서 gradle.properties(Global)이 안보일 때 확인해야 하는 것

gradle.properties가 존재하는지 확인 home 경로에 gradle.properties가 존재하는지 확인해줍니다. 예를 들어, 제 맥북에서의 경로는 /Users/seunghwan(home)/.gradle 였습니다. Gradle user home 위치 확인 AndroidStudio -> Preferences -> Build, Execution, Deployment -> Gradle의 Gradle user home 위치를 확인해줍니다.

Android/Basic

[Android] Color ARGB Opacity 적용법

적용방법 컬러만 적용하고 싶다면 아래와 같이 hex 값 6자리를 입력해주면 됩니다. RGB -> android:textColor="#FFFFFF" 투명도를 적용하고 싶다면 맨앞 두자리에 hex값을 추가해주면 됩니다. ex) 투명도 50%의 ARGB를 적용하고자 한다면 ARGB -> android:textColor="#80FFFFFF" Opacity에 따른 hex값 100% — FF 95% — F2 90% — E6 85% — D9 80% — CC 75% — BF 70% — B3 65% — A6 60% — 99 55% — 8C 50% — 80 45% — 73 40% — 66 35% — 59 30% — 4D 25% — 40 20% — 33 15% — 26 10% — 1A 5% — 0D 0% — 00

Android/Basic

[Android] TextView의 padding 없애기

TextView를 기본적으로 생성하면 padding 때문에 제플린에서 나와있는 TextView의 크기보다 padding값 만큼 큰 크기의 TextView가 생성되어 실제 디자인과는 다르게 View들을 원하는 위치에 둘 수 없을 때가 있다. android:includeFontPadding="false" includeFontPadding 이용하면 View와 text사이의 padding을 제거할 수 있다.

Android/Basic

[Android] Animation 정리

안드로이드에서 애니메이션을 만드는 방법이 여러가지가 존재하는데, 복합적으로 사용하면 다양한 애니메이션을 연출 할 수 있습니다. Translate 애니메이션 translate 애니메이션은 X, Y축으로 이동하게 하는 효과를 줍니다. 속성 설명 예시 fromXDelta X축 시작 지점. % 단위로 설정한다. 0%p -> 현재 view의 위치 toXDelta X축 도착 지점. % 단위로 설정한다. 100%p -> 대상만큼 오른쪽 이동 fromYDelta Y축 시작 지점. % 단위로 설정한다. 0%p -> 현재 view의 위치 toYDelta X축 도착 지점. % 단위로 설정한다. 100%p -> 대상만큼 오른쪽 이동 duration 애니메이션 시간. 단위는 밀리초 2500 -> 2.5초동안 지속 repeatM..

Android/Basic

[Android] Broadcast Receiver

브로드캐스트 인텐트는 주요 시스템 이벤트에 관심 있는 애플리케이션들에게 통지하기 위해 안드로이드 시스템에 의해서 사용된다.(헤드폰 연결이 되거나, 끊어지는 등 주요 시스템 이벤트) FLAG_INCLUDE_STOPPED_PACKAGES : stopped 된 application도 target이 됨. FLAG_EXCLUDE_STOPPED_PACKAGES : stopped 된 application은 target이 되지 않음. override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val intent = Intent() intent.actio..

반응형
seunghwaan
'Android' 태그의 글 목록 (2 Page)