안드로이드

Kotlin 코틀린의 Sealed Class
Kotlin sealed class 란? 코틀린에서 sealed class는 다른 클래스가 상속을 받지 못하도록 제한하는 클래스이다. 이 클래스는 클래스 계층 구조에서 제한된 개수의 클래스를 나타낼때 사용하게 된다. sealed class Result { data class Success(val data: T) : Result() data class Error(val exception: Exception) : Result() } sealed class의 특징을 정리하면 다음과 같다. sealed class의 특징 1. 상속을 제한한다. sealed class는 다른 클래스에서 상속을 받지 못하도록 제한합니다. 그렇기 떄문에 sealed class의 하위 클래스는 sealed class의 내부에서 정의되어..

Kotlin 코틀린의 Flow
최근 회사에서 안드로이드 개발을 하면서 Flow와 stateflow를 많이 사용하면서 개발을 진행하고있다. 오늘은 Flow와 Stateflow에 대해서 내가 알고있는것을 자세히 정리하려고한다. 기존에는 코틀린의 LiveData, RxJava, coroutine과 flow, stateflow 사용하기 전까지는 콜백과 리스너를 통해 이벤트 발생 시 특정 동작을 수행하는 역할을 개발해왔다 하지만 리스너를 사용하게 되면 코드가 복잡해지고 가독성이 떨어지며 메모리 누수와 같은 문제가 발생할 수 있었다 이후 LiveData , RxJava와 같은 반응형 프로그래밍 라이브러리들이 나오게 되었고 더 나아가 코루틴과 Flow가 나오게 되면서 이러한 문제들을 해결할 수 있었다. 최근 나같은 경우는 데이터의 변화에 따른 ..

Kotlin 코틀린의 Coroutine
* Coroutine의 개념 코루틴은 1958년 멜빈 콘웨이가 처음 제창했다고 하는 개념으로 현재 여러 프로그래밍 언어에 구현되어 있으며 코틀리만의 고유한 개념은 아니다. 프로그래밍에서 루틴이란 프로그램의 흐름을 추상적으로 일컫는 말이다. 루틴은 크게 메인루틴과 서브루틴으로 나눌수있는데, 예를들어 main함수에 의해 수행되는 프로그램의 흐름을 메인루틴이라고 한다면, main함수 안에서 실행되는 개별 함수들에 의해 수행되는 흐름을 서브루틴이라 비유할 수 있다. 루틴의 한 종류인 함수는 호출을 함으로써 그 내부에 진입하여 내부에서 처리를 수행하고, 처리가 끝나면 함수도 종료되는 구조를 가지고 있기 때문에 보통은 루틴이 일직선적인 흐름을 가지고 있다고 할 수 있다. 그런데 코루틴의 특징은 이 일직선적인 흐름을..

Kotlin 코틀린의 기본 문법
기본 문법 1. 알고 넘어가기 클래스 이름 => 파스칼 표기법 (모든 단어를 대문자로 시작한다) ex) ClassName 함수 , 변수 => 카멜 표기법 (첫 단어만 소문자로 시작한다.) ex) functionName 2. 변수의 선언 1. var 일반적으로 통용되는 변수로써 언제든지 읽기 , 쓰기가 가능하다 2. val 선언시에만 초기화가 가능하고, 중간에 값을 변경할 수 없다. val a:Char = 'a' val name:String = "홍길동" val age:Int = 20 val score3:Long = 10L val score:Double = 10.0 val score2:Float = 10.0f 3. Null값을 허용하는 변수와 허용하지 않는 변수 val age:Int = 20 val mon..

Kotlin 코틀린의 object VS companion object
object VS companion object 코틀린은 싱글톤 클래스를 생성하기 위해 object declaration이라는 것을 사용한다. 싱글톤 클래스로 선언해야 할 경우에 클래스 명 앞에 class 대신 object를 사용함으로써 싱글톤 클래스를 생성하게 된다. 하지만 공부를 하다보면 companio object라는 것을 볼 수 있다. object와 companion object는 무엇이 다른지 알아보자. 1. object object는 크게 2가지로 사용된다. 1. object expression (객체 표현식) 2. object declaration (객체 선언) - 동반 객체(객체 선언을 클래스 내부에 사용한 것) 여기서 싱글톤 클래스를 생성하기 위해 사용되는 object의 쓰임은 2번째인 ..

Kotlin 코틀린의 Retrofit
더보기 본 포스팅은 FastCampus - 30개 프로젝트로 배우는 Android 앱 개발 with Kotlin 초격차 패키지 를 바탕으로 학습된 내용을 요약 및 정리한 글입니다. Retrofit 1. Retrofit 이란? Retrofit 이란 간단하게 말하면 서버와 클라이언트 간 HTTP 통신을 할 수 있도록 도와주는 녀석이다. 우리들이 흔히 어플을 만들때 오픈API을 이용하여 데이터 정보를 가져오게 되는데 그때 Retrofit을 이용하면 편하게 코드를 작성할 수 있다. 물론 Retrofit을 사용하지 않더라도 HttpClient, Volley, OKhttp 등 통신을 편하게 할 수 있도록 도와주는 라이브러리 들이 존재 했었지만 요즘은 전부 Retrofit을 이용하는 추세이므로, HTTP 통신을 할때..

Kotlin 코틀린의 SharedPreferences
SharedPreferences 정의 간단한 데이터를 저장하고 불러올 수 있다. 어플을 꺼도 데이터가 유지된다는 점에서 간편한 데이터베이스 역할을 할 수 있다. ShardPreferences는 어플리케이션에서 파일 형태로 데이터를 저장한다. 데이터는 (key, value) 형태로 shared_prefs 폴더 안에 xml 파일로 저장된다. 해당 파일은 어플리케이션이 삭제되기 전까지 보존된다. SharedPreferences 사용방법 SharedPreferences는 app에서 전역적으로 사용한다. 따라서 싱글톤 패턴을 사용하여 앱 어디든 접근이 가능하게 만드는 것이 좋다. SharedPreferences 클래스는 앱에 있는 다른 액티비티보다 먼저 생성되어야 다른 곳에 데이터를 넘겨줄 수 있다. 따라서 Ap..

Kotlin 코틀린의 Context
Context 우선 공식문서에 따른 Context의 정의는 이렇게 정의되어있다. 영어로 정의되어있는 내용을 한국어로 해석하여 이해할때 여러 어려움이 존재한다. 그에 따라 지금부터 Context의 대한 내용을 조금더 찾아보며 정리하겠다. Context 란? Context 는 뜻 그대로 해석한다면 애플리케이션 현재 상태의 맥락(Context)를 뜻한다. 새롭게 생성된 객체가 지금 무슨일이 일어나고 잇는지를 알 수 있도록 한다. 그에 따라 애플리케이션과 액티비티에 대한 정보를 얻기 위해서는 Context를 사용하면 된다. Context는 크게 두가지의 역할을 하고 있는 추상 클래이이다. 앱에 관하여 시스템이 관리하고 있는 정보에 접근한다. (resource , class , 애플리케이션 환경 정보) 안드로이드..