본문 바로가기

IT

[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..
[Kotlin] 코틀린 흐름제어 (if-else, .., for, while, do-while when) 안녕하세요 YTS 입니다. 흐름제어 if-else 문 코틀린에서 if-else 문은 자바의 if-else문과 비슷하게 쓰입니다. 다른점이 있다면 if-else 문을 이용하여 삼항 연산자를 만들 수 있는데요. 예제를 살펴볼까요? class Ifelse { val height: Int = 184 var heightRange: String = "" fun whatHeightRange() { if (height >= 170 && height = 180 && height = 190 && height < 200) { heightRange = ..
[Kotlin] 코틀린 자료/ 자료형의 확인 및 변환 (==, ===, is, as, 스마트 캐스트) 안녕하세요 YTS 입니다. 자료 또는 자료형의 확인 및 변환 자료의 동일성확인 ==,=== 연산자 자바에서는 자료의 동일성을 확인할때에 == 연산자를 사용하기도 합니다.하지만 일반객체에서는 값뿐 만 아니라 객체 자체가 동일한지 여부도 따지기 때문에 equals() 메서드를 사용하여 객체의 값을 확인합니다. 코틀린에서는 비교 대상이 객체, 객체 값의 동일성을 확인 하기 위해 구분할 필요 없이 모두 == 연산자를 사용하면 됩니다. 또한 ==연산자는 Null 여부도 함께 확인하기 때문에 자바처럼 널 포인트 오류를 방지 하실 필요가 없습니다. class Equlas { val a: String = "equlas" val b = a val c: String = "equlas" val aEqualsB: Boolea..
[안드로이드] 안드로이드 커스텀 달력 예제 (Android Custom CalendarView Example) 안녕하세요 YTS 입니다. 오늘은 제가 만든 Custom Calendar View에 대해 적어보려합니다. 기본적으로 Android 에서 제공하는 달력은 한계점이 많고 각 날짜에 꾸밈을 할 수없기 때문에 불편한점이 많습니다. 저의 방법은 RecyclerView를 이용하여 만든 방법입니다! 참고로 해당 방법을 이용하기위해선 RecyclerView와 RecyclerView.Adapter에 대한 사전지식이 조금 필요합니다. 1. RecyclerView에 ViewType 설정 2. StaggeredGridLayoutManager에 대한 Span 설정 ( 이 부분은 쉽습니다. ) 사전 지식을 아는 개발자라면 쉽게 따라 하실 수 있도록 가이드하겠습니다. 1. Xml에 RecyclerView를 선언한다. 저는 헤더, ..
[안드로이드] MPAndroidChart LineChart 속성 정리 (Example) 안녕하세요 YTS 입니다.오늘은 Chart 라이브러리의 끝판왕 MPAndroidChart 속성에 대해 적어보려합니다. 사실은 자꾸 할때마다 속성을 잃어버려서요.... ㅎㅎㅎㅎ 우선 https://github.com/PhilJay/MPAndroidChart 여기서 소스를 받으실수 있습니다. 사용법은 정말 간단하면서도 헷갈리네요! 1. XML2. JAVAprivate void setChart(List records) { LineChart lineChart = binding.lineChart; lineChart.invalidate(); //차트 초기화 작업 lineChart.clear(); ArrayList values = new ArrayList();//차트 데이터 셋에 담겨질 데이터 for (Record ..
[안드로이드] 안드로이드 클래스 다이어그램(Class Diagram) 만들기 안녕하세요 남갯입니다 오늘은 안드로이드 스튜디오를 통한 클래스 다이어그램을 생성하는 방법에대해 포스팅해보려고합니다. 일단 안드로이드 스튜디오 버젼은 2.2 이상이여야합니다. 그 후 https://plugins.jetbrains.com/plugin/4946-simpleumlce 에 접속해서 simpleUMLCE를 다운합니다. 다시 안드로이드 스튜디오에 접속하고 위의 setting에 들어가서 install plugin from disk 를 클릭합니다. 아까 다운한 simpleUMLCE를 클릭하고 적용한후 restart를 합니다. 그렇게 왼쪽밑에 simpleUML이 나온것을 확인하실 수 있는데요 그후에 이렇게 생성하시면 됩니다. 감사합니다