안드로이드(Kotlin)

    Kotlin 코틀린의 RecyclerView

    Kotlin 코틀린의 RecyclerView

    더보기 이글은 냉동코더님의 유투브 내용을 보며 혼자 학습한 내용을 포스터 한것입니다. RecyclerView 1. 정의 및 특징 RecyclerView는 이미지나 텍스트를 리스트화해서 볼 수 있게 해주는 컨테이너로써 ListView의 확장판 개념이다. 기존 ListView보다 향상된 성능을 제공하는데 어떤식으로 성능이 향상된것인지 알아보자. 오른쪽에 보여지는 이미지가 RecyclerView의 모습인데 리스트뷰는 전체 데이터의 수 만큼 ViewHolder를 만들어야하지만 recyclerView는 이전에 사용했던 ViewHolder를 재사용함으로써 전체 데이터의 수 만큼 ViewHolder를 만들필요 없기 때문에 자원을 세이브할 수 있다는 점에서 기존 ListView보다 향상된 성능을 발휘한다. Recycl..

    Kotlin 코틀린의 SharedPreferences

    Kotlin 코틀린의 SharedPreferences

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

    Kotlin 코틀린의 Context

    Kotlin 코틀린의 Context

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

    Kotlin 코틀린의 Handler 와 Looper

    Kotlin 코틀린의 Handler 와 Looper

    Handler 메인 액티비티는 앱이 실행될 때 하나의 프로세스에서 처리된다 하지만 같은 프로세스 안에서 여러 기능들이 순서대로 실행될 때 대기 시간이 길어지는 네트워크 요청 등의 기능을 수행할 때는 화면에 보이는 UI도 멈춰져 있는 상태로 보이는 문제가 존재합니다. 이러한 문제를 해결하기 위해서 하나의 프로세스 안에서 여러 개의 작업이 수행되는 멀티 스레드 방식이 존재한다. 하지만 여러 스레드들이 동시에 리소스를 접근하려고 할때는 데드락이 발생할 수 있다. 데드락이 발생하면 시스템이 비정상적으로 동작하게 된다. 따라서 네트워크 요청 등과 같은 지연 시간이 길어질 수 있는 작업들은 따로 분리하여 UI에 응답을 보내는 방식을 사용할수 있게 해주는것이 Handler 이다. 안드로이드에서 UI 작업은 별도의 스..

    Kotlin 코틀린의 Intent와 Inflate

    Kotlin 코틀린의 Intent와 Inflate

    Intent 와 Inflate 1. Intent 란? Intent란 어떤 메시지를 담고 있는 하나의 객체이다. 이 메세지는 어떤 액티비티로 이동할지, 어떤 서비스를 시작할지 등 목적지 정보를 갖고 있거나 옮겨야 하는 데이터를 갖고 있을 수도 있다. 기본 사용 사례는 크게 3개로 나눌 수 있다. 1. 1 Intent 기본 사용 사례 액티비티 시작 : 액티비티의 새 인스턴스를 시작하려면 인텐트를 startActivity()로 전달하면된다. 인텐트는 시작할 액티비티를 설명하고 모든 필수 데이터를 담는다. 서비스 시작 : 서비스를 시작해 1회성 작업(파일 다운로드 등)을 수행하게 하려면 인텐트를 startService()에 전달하면 된다. 인텐트는 시작할 서비스를 설명하고 모든 필수 데이터를 담고 있다. 서비스..

    Kotlin 코틀린의 Layout

    Kotlin 코틀린의 Layout

    Layout 안드로이드 앱에서 화면에 보이는 요소(Button, TextView 등)을 뷰(View)라고 하고, 여러 뷰들을 포함하고 배치하는 역할을 하는 것을 레이아웃이라고 부른다. 안드로이드가 기본적으로 제공하는 레이아웃들은 종류별로 기능이 다르기 때문에 용도에 맞게 사용해야한다. 😊 안드로이드에서 제공하는 5가지 대표적인 레이아웃은 다음과 같다. 제약 레이아웃(ConstraintLayout) : 제약 조건을 사용하여 화면을 구성. 안드로이드에서 자동으로 설정하는 디폴트 레이아웃이다. 리니어 레이아웃(LinearLayout) : 한 쪽 방향으로 차례대로 뷰를 추가하여 화면을 구성 상대 레이아웃(RelativeLayout) : 부모 컨테이너나 다른 뷰와의 상대적 위치로 화면을 구성 테이블 레이아웃(Ta..

    Kotlin 코틀린의 Lifecycle

    Kotlin 코틀린의 Lifecycle

    Lifecycle 1. 생명주기 (Lifecycle) 안드로이드에는 리소스 제한이 존재하여 Activity가 항상 살아있지 못한다. Activity는 Activity가 보여주는 화면(View)이 화면 상에서 뒤로 가거나, 사라지게 될 경우에 특정한 메서드들을 호출하게 되는데, Activity의 Lifecycle은 Activity가 각각의 상황에서 어떠한 메서드를 호출하는지 알려준다. 위 그림은 구글 공식문서에 있는 Activity의 Lifecycle이다. 생명주기를 정확히 이해하고 때에 맞는 적절한 작업을 해야만 안정적인 앱을 만들 수 있다. 그렇다면 하나씩 무슨 역할을 하는 메소드인지 알아보자. 1.1. onCreate class MainActivity : AppCompatActivity() { ove..

    Kotlin 코틀린의 ViewModel

    Kotlin 코틀린의 ViewModel

    ViewModel 1. 정의 ViewModel 이란 Android Jetpack의 구성 요소 중 하나로, MVVM(Model - View - ViewModel) 디자인 패턴으로부터 파생된 단어이다. ViewModel의 정의를 내리자면 아래와 같다. 더보기 👍 Activity와 Fragment와 같은 UI 컨트롤러의 로직에서 데이터를 다루는 로직을 분리하기 위해서 등장한 Android JetPack 라이브러리 그렇다면 이러한 ViewModel이 필요한 이유가 무엇일까? 2. 필요성 안드로이드는 모바일 OS 특성상 리소스에 대한 많은 제약들이 존재한다. 그에 따라 리소스 제거가 요구되는 이벤트가 발생하게 되는데 그러한 이벤트가 발생했을 때 Activity와 Fragment 같은 UI 컨트롤러에 대한 제거와 ..