'Android' 카테고리의 글 목록 (5 Page) — SH's Devlog

Android

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/Kotlin(Java)

[Kotlin] isAssignableFrom 와 is (Java instanceOf)

class UserViewModel @Inject constructor(): ViewModel() val userViewModel = UserViewModel() Log.d(TAG, "${ViewModel::class.java.isAssignableFrom(UserViewModel::class.java)}") // true Log.d(TAG, "${userViewModel is ViewModel}") // true instanceof (Kotlin에서 is) -> Class가 어떤 클래스 or 인터페이스를 상속했는지를 체크합니다. Class.isAssignableFrom() -> Class가 어떤 클래스 or 인터페이스에게 상속되었는지 체크합니다.

Android/Kotlin(Java)

[Kotlin] Collections API - fold(), reduce()

안녕하세요. 오늘은 fold()와 reduce()에 대해 정리하겠습니다. 1. fold() fold() 함수의 구현 public inline fun IntArray.fold(initial: R, operation: (acc: R, Int) -> R): R { var accumulator = initial for (element in this) accumulator = operation(accumulator, element) return accumulator } fold()함수는 내부 요소들을 모두 돌아가며 operation을 수행한 결과를 반환합니다. reduce()와의 차이점은 초기값을 설정할 수 있고, emptyList여도 Exception을 던지지 않습니다. import org.assertj.cor..

Android/Kotlin(Java)

[Kotlin] 가변 인자(vararg) 사용법(Spread Operator)

코틀린의 Spread Operator *는 배열을 단순 나열할 때 사용합니다. *list의 의미 -> list의 요소들을 단순 나열하겠다. 라는 의미입니다. 사용 예시 array에 담겨있는 데이터들을 array2에 추가를 해 넣는다고 생각을 해봅시다. 아래 주석처리된 코드처럼 array에 저장되어있는 데이터들을 일일히 넣어주는 방법도 있겠지만 나중에 데이터가 100개, 1000개 이상 쌓인다면 어떻게 해야할까요? 이런 경우를 위해서 코틀린에서는 Spread Operator를 제공합니다. val array = arrayOf("aa", "bb", "cc") //val array2 = arrayOf(array[0], array[1], array[2], "dd", "cc") val array2 = arrayOf..

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% — FF95% — F290% — E685% — D980% — CC75% — BF70% — B365% — A660% — 9955% — 8C50% — 8045% — 7340% — 6635% — 5930% — 4D25% — 4020% — 3315% — 2610% — 1A5% — 0D0% — 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' 카테고리의 글 목록 (5 Page)