Mobile
[Kotlin] 카메라 사용하기
사실 이전에 권한에 관한 내용을 살펴보면서 카메라를 사용하는 방법에 대해 간단히 살펴본 적이 있습니다. 그래서 이번에는 카메라 앱을 호출하는 것 이외에 카메라로 사진을 찍은 뒤 찍은 사진을 가져오는 방법에 대해서도 알아보려고 합니다. 먼저 화면을 아래와 같이 디자인합니다. 버튼을 가운데 배치하고 id를 btnCamera로 하였습니다. app -> manifests -> AndroidManifest.xml 파일을 수정해 App에서 카메라로의 접근권한이 필요함을 선언합니다. MainActivity 안에서 2개의 변수를 추가합니다. 하나는 권한을 확인할때의 권한 확인을 위한 것이고 다른 하나는 권한 요청을 위한 권한 자체를 정의하는 변수입니다. val CAMERA = arrayOf(Manifest.permis..
[kotlin] ORM라이브러리 Room
ORM(Object Relational Mapping)는 객체(Class) 자체를 하나의 테이블로 매핑하여 객체를 조작하는 것으로 테이블의 데이터를 처리할 수 있도록 해주는 기술입니다. DB를 조작하는 쿼리를 잘 모르더라도 객체를 대상으로 한 추가, 수정, 삭제동작을 그대로 DB의 테이블에 적용할 수 있으며 Android에서는 이런 ORM을 사용할 수 있도록 Room이라고 하는 라이브러리를 제공하고 있습니다. 우선 Room을 사용해 보기 위해 이전에 만들어봤던 전화번호앱을 다시 사용해 보겠습니다. 코드는 필요하지 않고 디자인만 가져올 것입니다. [Mobile/Kotlin] - [kotlin] SQLite - 연결 및 사용하기 프로젝트에 ROOM라이브러리를 추가하기 위해 Gradle Scripts -> b..
[kotlin] SQLite - 연결및 사용하기
이전 아래 글에서 SQLite Open Helper클래스를 상속받아 SQLite를 사용하기 위한 Helper클래스를 만들어 보았습니다. 2020/10/09 - [Mobile/Kotlin] - [kotlin] SQLite - SQLite Open Helper 구현하기 이번에는 위에서 만든 이 Helper클래스를 이용해 간단한 전화번호부 앱을 만들면서 직접 연결하고 사용하는 방법을 알가 보고자 합니다. 우선 Activity Main에서 화면을 다음과 같이 디자인합니다. 가장 상단에는 RecyclerView를 배치하고 그 아래 2개의 Plain Text 그리고 Button하나를 순서대로 배치합니다. 예제에서 RecyclerView의 ID는 rccList, Plain Text는 txtName과 txtPhone,..
[kotlin] SQLite - SQLite Open Helper 구현하기
Android에서 내부적으로 사용하는 가장 대표적인 DB로 SQLite가 있습니다. 경량화된 DB이기도 하고 성능도 꽤나 잘 나오기 때문에 모바일뿐만이 아니라 여러 가지 용도의 앱이나 프로그램 등에서 내부 데이터 저장용으로 많이 사용되는 DB입니다. 이 SQLite를 다루기 위한 헬퍼 클래스를 작성해 볼 텐데 우선 어떤 사람의 이름과 전화번호를 기록하는 앱을 만들어야 한다고 가정해 보겠습니다. 앱 입장에서는 이름, 전화번호를 기억하는 용도로 SQLite를 사용하기로 했는데 그러려면 우선 DB에 접속하는 단계가 필요하고 이후에 정보를 담아둘 최소 단위인 테이블을 생성해야 합니다. 물론 테이블은 한번 만들어 두면 다시 생성하지 않아도 됩니다. 이후에 필요한 정보를 가져오거나 추가 또는 변경, 삭제하는 동작을..
[kotlin] androidx.preference
androidx.preference는 이전에 알아본 Preferences의 구조를 차용해 앱에서 필요한 설정값을 손쉽게 관리할 수 있도록 해주는 API를 제공합니다. 이 API를 사용하면 XML을 구성하는 것만으로도 사용자로부터 설정값을 저장하고 저장된 값을 읽을 수 있습니다. 우선 androidx.preference를 사용하기 위해서는 의존성 라이브러리를 추가해야 합니다. 우선 Gradle Scripts -> build.gradle (Module:app) 파일을 열고 오른쪽 상단에 Open(Ctrl+Alt+Shift+S)를 클릭합니다. 이어지는 화면의 왼쪽 메뉴에서 Dependencies를 클릭하고 + 버튼을 눌러 Library Dependency를 선택합니다. 그리고 step1에서 preperence..
[kotlin] Preferences
키와 값을 쌍으로 내부 저장소에 데이터를 저장시켜주는 Preferences는 앱에서 사용하는 간단한 설정 내용이나 기타 필요한 값을 쉽게 저장하고 가져올 수 있도록 합니다. 참고로 설정값은 내부 저장소에 XML형태로 데이터를 보관합니다. Preferences를 알아보기 전에 우선 Activity화면에서 아래와 같이 버튼 하나를 추가합니다. 그리고 버튼 클릭에 대한 리스너를 작성해 주세요. 아래부터 생성되는 코드는 이 리스너안에서 작성할 것입니다. Preferences를 사용하려면 당연히 Preference 파일을 생성해야 하는데 사용하고자 하는 범위에 따라 2가지 생성 방법이 존재합니다. 첫 번째로는 여러 Activity에서 공유할 수 있도록 생성하는 방법이며 아래와 같습니다. val myPF = get..
[kotlin] 저장소및 파일처리
Android(안드로이드)는 Linux(리눅스)를 기반으로 합니다. 그래서 Filesystem(파일 시스템)도 리눅스와 파일 시스템과 동일한데 리눅스 파일 시스템의 특징은 System(시스템)을 사용하는 계정별로 권한을 다루게 부여할 수 있다는 것입니다. 이러한 특징을 통해 Android에서는 앱하나당 하나의 내부저장소인 디렉터리를 마련해 두고 앱에 해당하는 계정 하나를 생성해 해당 저장소에 접근하도록 권한을 부여해 줍니다. 당연히 앱의 계정으로는 자신의 저장소에 자유롭게 접근할 수 있지만 다른 앱의 저장소에는 권한이 제한되어 있으므로 접근이 불가능하게 됩니다. 반면 모든앱이 접근할 수 있는 저장공간이 있는데 이를 외부 저장소라고 합니다. 위에서 언급한 내부 저장소는 만약 앱이 삭제되면 함께 삭제되어 안..
[kotlin] 권한 처리하기
사용자 기기의 특정 영역에 접근하려면 그에 해당하는 권한을 얻어야 합니다. 이번 예제에서는 카메라에 접근하는 앱을 만들어 권한을 어떻게 처리할 수 있을지를 알아보도록 하겠습니다. 우선 다음과 같이 app -> manifests에 있는 AndroidManifest.xml파일을 열어 다음과 같이 user-permission태그를 추가해 카메라 사용자 권한을 추가합니다. 그리고 임의의 버튼 하나를 만들어 둡니다. MainActivity에서 카메라에 접근하기 전에 이미 해당 권한이 부여되어 있는지를 확인하도록 하는 함수를 작성합니다. 권한이 부여되어 있는데 계속 권한 요청을 하면 문제가 되겠죠. 예제에서는 checkPermission으로 이 부분을 구현하였으며 checkSelfPermission의 결과가 PER..