Android
💡 개요 오늘은 사각의 ImageView가 아닌 둥근 ImageView를 사용하는 법에 대해 공부하고자 한다. ImageView를 둥글게 만드는 법은 다양하지만, 오늘은 CircleImageView 라이브러리로 만드는 법을 알아볼 것이다. 💡 STEP 1 : 라이브러리 추가 우선 CircleImageView를 사용하기 위해선 build.gradle(Module)에 다음을 추가해야 한다. // Circle ImageView implementation 'de.hdodenhof:circleimageview:3.1.0' 이 라이브러리는 아래에서 자세히 확인할 수 있다. https://github.com/hdodenhof/CircleImageView GitHub - hdodenhof/CircleImageView:..
💡 개요 오늘은 Zxing(Zebra Crossing) 라이브러리를 이용하여 QR코드 스캔을 가능하게 하는 것을 공부하려고 한다. Zxing 라이브러리는 구글에서 제공하는 오픈소스로 다양한 바코드를 생성하거나 인식할 수 있다. 더 자세한 내용은 아래의 Github에서 확인할 수 있다. https://github.com/journeyapps/zxing-android-embedded GitHub - journeyapps/zxing-android-embedded: Barcode scanner library for Android, based on the ZXing decoder Barcode scanner library for Android, based on the ZXing decoder - GitHub - ..
💡 개요 오늘은 Android에서 Fragment를 어떻게 사용할 수 있는지에 대해 예제를 통해 공부해보려 한다. 우리는 Activity를 통해서 화면을 전환할 수 있다. 하지만 Activity 전체를 전환하는 것은 Fragment를 사용해 화면을 교체하는 것보다 상대적으로 많은 리소스를 사용한다. 그렇기 때문에 효율적인 App을 만들기 위해선 Fragment를 사용하는 것이 좋다. 💡 STEP 1 : Layout에 추가하기 가장 처음으로 Fragment를 사용해 화면을 교체하고자 하는 Layout에 FrameLayout을 추가해줘야 한다. 나는 activity_main에서 사용하기 위해 다음과 같이 추가했다. 아래 2개의 Button은 Fragment를 교체하기 위해 추가했다. [activity_mai..
💡 개요 어떤 권한을 얻기 위해서는 우선 AndroidManifets.xml에 필요한 권한을 선언해줘야 한다. [AndroidManifest.xml] 그리고 기존에 권한을 얻기 위해서는 아래와 같은 과정을 작성해줘야 했다. 1. 권한이 얻어졌는지 확인 2. 권한이 얻어지지 않았다면 권한을 요청 3. 권한은 얻어졌다면 필요한 과정을 수행 [MainActivity.kt] package com.example.tedpermission import android.content.pm.PackageManager import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widg..
💡 View Binding이란? 우리는 기존에 Layout에 있는 View에 접근하기 위해서는 아래와 같이 사용해야 했었다. // TextView 변수 선언 private lateinit var tvOne: TextView // TextView 변수와 activity_main의 tvOne id를 가지는 View와 연결 tvOne = findViewById(R.id.tvOne) Layout에 View과 많지 않다면 그렇게 귀찮은 일은 아니지만, View가 많을 경우 일일이 작성해야 하는 불편함이 있었다. 그래서 나온 것이 View Binding이다. View Binding은 XML Layout 파일에 대한 Binding Class를 자동으로 생성해 View와 상호작용한다. 그렇기 때문에 별도의 연결과정 없..
💡 개요 이전 포스팅에서 RecyclerView를 사용할 Layout에 추가하고, RecyclerView에 들어가는 Item을 만들었다. 또한, Data를 하나로 묶어서 관리하기 위한 DTO를 만들었다. 이어서 Adapter를 만들고 실제 Activity에 적용시켜보고자 한다. 💡 STEP 4 : Adapter 만들기 이제 본격적으로 Adapter를 만들어야 한다. Adapter는 간단하게 아이템을 RecyclerView에 바인딩시켜주기 위한 사전 작업이 이루어지는 객체이다. Adapter에 속한 각 함수에 대해 설명하자면 onCreateViewHolder는 ViewHolder 객체를 만들어주는 역할을 한다. onBindViewHolder는 생성된 ViewHolder에 Data를 Binding 해주는 역..
💡 개요 오늘은 Android에서 RecyclerView를 어떻게 사용할 수 있는지에 대해 예제를 통해 공부해보려 한다. RecyclerView는 ListView에 비해 가로/세로/그리드 등 다양하게 리스트를 구현할 수 있고, 아이템을 생성할 때 바인딩된 뷰 객체를 재활용하기 때문에 Performance 측면에서 이점이 있다. 그렇기 때문에 다양하게 사용되고 있어 사용법을 익히고 넘어가고자 한다. 💡 STEP 1 : Layout에 추가하기 가장 처음으로 RecyclerView를 사용하고자 하는 Layout에 RecyclerView를 추가해줘야 한다. 나는 activity_main에서 사용하기 위해 다음과 같이 추가했다. [activity_main.xml] 💡 STEP 2 : RecyclerView에 들어..
💡 개요 Android 앱을 제작하다 보면 Activity를 이동할 때 값을 전달해줘야 하는 경우가 있다. 그럴 경우 어떻게 하면 값을 전달할 수 있는지 예제를 통해 알아보고자 한다. 💡 방법 일단은 보내고자 하는 Activity에서 Intent를 먼저 생성해야 한다. 그 후 putExtra()를 통해 해당하는 Intent로 데이터를 전달할 수 있다. // Intent 생성 val intent = Intent(this, SubActivity::class.java) // "str"은 key값, str은 value intent.putExtra("str", str) 데이터를 받는 Activity에선 별도의 Intent를 생성하지 않아도 getStringExtra()를 이용해 데이터를 받을 수 있다. // In..
💡 Android 구조 Linux Kernel 보안, 메모리 관리, 프로세스 관리, 파일 시스템 관리, 파워 관리, 네트워크 스택, 하드웨어 드라이브 등 하드웨어를 지원한다. HAL(Hardware Abstraction Layer, 하드웨어 추상화 계층) 상위 수준의 Java API 프레임워크에 기기 하드웨어 기능을 노출하는 표준 인터페이스를 제공한다. HAL은 여러 라이브러리 모듈로 구성되어 있으며, 카메라 또는 블루투스 모듈과 같은 특정 유형의 하드웨어 구성 요소를 위한 인터페이스를 구현한다. 프레임워크 API가 기기 하드웨어에 액세스 하기 위해 호출을 수행하면 Android 시스템이 해당 하드웨어 구성 요소에 대한 라이브러리 모듈을 로드한다. Native C/C++ Libraries 안드로이드 프레..