본문 바로가기

IT

[안드로이드]Android Bottom App Bar 사용하기 안녕하세요 남갯입니다 오늘은 안드로이드 Material Components 2.0 중 하나로 소개된 BottomAppBar 에 대해 소개해보려고합니다. -Bottom App Bar 란한손으로 사용이 용이하게끔 네비게이션 메뉴와 다양한 옵션들을 하단으로 내린 스타일을 말합니다. 네비게이션 바와 플로팅 버튼이 밑에 존재합니다. - Bottom App Bar를 구현하기위한 사전조건 Bottom App Bar를 사용하기 위해선 두가지의 조건중에 하나를 만족시켜야합니다 1. Manifest에 Widget.MaterialComponents의 스타일을 만들어 적용 2. Bottom App Bar 내에 아래의 스타일을 적용 style=”@style/Widget.MaterialComponents.BottomAppBar”..
[RxJava, RxKotlin,RxAndroid] concat , merge, zip 알아보기 안녕하세요 남갯입니다 오늘은 concat 과 merge 와 zip를 알아보도록 하겠습니다. -concat concat은 두개의 Observable을 합쳐 첫번째 Observable을 발행 한 뒤 두번째 Observable을 발행합니다. 위쪽의 Timestamp와 아래쪽의 Timestamp는 동일한 시기에 각각 데이터를 발행했지만 concat 이후에 보면 위쪽 데이터 이후에 아래쪽 데이터가 발행되는것을 볼 수 있습니다. 즉 요즘은 해당 api를 부르기위해 auth를 요청받는 api가 있는데, 그때 이용하게 되면 좋을것 같습니다. 해당 세션이 유효한지 판단 한 후원하는 api를 요청할 때 이용하면 좋을것 같습니다. val test1 = Observable.just("1", "2", "3").delay(2, ..
[코틀린] Higher order function 정리 안녕하세요 남갯입니다 오늘은 코틀린의 higher order function에 대해 포스팅해보려고합니다. - higher order function 이란? higher order function은 간단하게 두개를 만족하는 함수를 일컫습니다. 1. 함수에 파라미터로 전달하는 함수2. 함수를 반환(리턴)하는 함수 higher order function이 되기위해선 일급객체(first class citizen)가 되어야합니다. - 일급객체(firstclass citiezen) 이란? 일급객체란 아래의 조건을 만족하는것을 말합니다. 1. 변수나 데이터 할당 할 수 있어야한다. val test1: () -> Unit = { println("firstCitizen") } // firstCitizen 2. 객체의 인..
[fold 함수] fold 함수 알아보기 안녕하세요 남갯입니다 오늘은 fold 함수에 대해 간단히 포스팅 해보려고합니다. fold 함수는 inline fun Array.fold( initial: R, operation: (acc: R, T) -> R ): R ........ Accumulates value starting with initial value and applying operation from left to right to current accumulator value and each element. -출처 https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold.html 초기값을 설정해주고 왼쪽부터 오른쪽까지 현재의 계산값에 각각을 적용하는 함수입니다. val sum..
[안드로이드] 안드로이드 지문인식 변경점 안녕하세요 남갯입니다 블로그를 처음 글쓰면서 의미있는 글을 써보겠다 다짐하면서 지문인식이란 구글샘플의 fingerprintCompat으로 타겟을 변경하고 제공하는 앱을 선보였는데요? 오랜만에 앱을 개발하면서 다시 예전에 만든 소스를 검토하면서 이용하다보니 api 28에서는 fingerprint가 deprecated되고 biomatric으로 통합되었다는 정보를 알게되어 글을 쓰게 되었습니다. - fingerPrint의 변경점 Android 9 only includes fingerprint integration for BiometricPrompt. However, integrated support for other biometric modalities are forthcoming. In Android 9 a..
[Kotlin] 코틀린 스트림 함수 (map, flatMap, groupBy, filter, take, drop, first, distinct, zip, joinToString, count, any, none, max, min, average) 안녕하세요 YTS 입니다. 오늘은 코틀린의 스트림 함수에 대해 적어보려합니다. 스트림 함수 map() : 변환 map()은 컬랙션 내 인자를 변환하여 반환할 때 사용됩니다. class Map { val animals = listOf("사자", "호랑이", "코끼리") fun map() { animals.map { animal -> "동물의 이름은 ? = " + animal }.forEach { println(it) } } } mapIndexed() : 변환 mapIndexed()는 컬랙션에 포함된 인자의 인덱스 값을 변환하여 사용할 수 있습니다. class MapIndexed { val numbers = 0..10 fun mapIndexed() { numbers.mapIndexed { index, num..
[안드로이드] ROOM 라이브러리 사용하기 , 코루틴 안녕하세요 남갯입니다 오늘은 구글 JetPack componet에 포함된 ROOM에 대해 포스팅해보려고합니다. 스스로 정리해서 작성하는것이기때문에 틀린점이나 비판은 댓글에 달아주시면 달게받겠습니다. - JetPack component란? 구글 IO에서 62개정도의 작은 세션들을 공개했습니다 그 세션들의 집합을 Jetpack 이라하는데 , Android앱을 손쉽게 개발하도록 지원하는 android 소프트웨어 구성요소 컬렉션입니다이런 컴포넌트로 상용구코드를 작성하지않고, 복잡한 작업을 간소화 시킵니다. -출처https://developer.android.com/jetpack/, https://developers-kr.googleblog.com/2018/05/use-android-jetpack-to-accel..
[Kotlin] 코틀린 클래스 (Data Class)와 한정 클래스 (Sealed Class), Getter / Setter 안녕하세요 YTS 입니다. 오늘은 코틀린의 클래스에 대해 적어보려합니다. 클래스 데이터 클래스 코틀린에서는 데이터 클래스라를 제공합니다. 여기선 프로퍼티들만 선언하면 hashCode(), equals(), toString() 함수를 자동으로 생성해줍니다. 각 예제들은 String template를 이용하여 출력 해보도록 하겠습니다. *String template = $필드명/변수명 or ${표현식} 형태로 우리가 원하는 값이 대입된 문자열을 얻을 수 있습니다. data class Animal(val name: String, val age: String) { fun print() { val elephant = Animal("Elephant", "10") val elephant2 = Animal("Eleph..