권한 • 애플리케이션이 안드로이드의 특정 기능을 사용하려면 허락을 받아야 한다. 1. 일반 권한 • manifest에 등록만 하면 사용자에게 따로 물어보지 않아도 기능을 사용할 수 있다. 2. 위험 권한 • 사용자에게 직접 권한을 요청한다. • 주로 개인 정보에 관련된 권한은 위험 권한이 많다. * API 버전에 따라 권한의 등급이 다르다. • AndroidManifest.xml - 태그로 권한을 받는다. ...생략... • activity_permission27.xml - 권한을 요청할 버튼 생성 • Permission_27.kt package com.example.fastcampus import android.content.pm.PackageManager import androidx.appcompat..
Network • 두 대 이상의 컴퓨터를 연결하고 통신하는 것. • 각 단체마다 자신들의 네트워크를 구성하여 정보 교환, 자원 공유 등을 한다. • 방식 - P2P(Peer-to-Peer) 방식 - 통신할 기기끼리 직접 연결 - 통신할 기기가 여러 개라면 여러 개의 기기를 모두 연결해야 한다. - 서버-클라이언트(Server-Client) 방식 - 연결의 중심이 되는 서버가 존재 - 모든 기기들이 서버에 연결되어 있어, 한 기기에서 다른 기기와 통신하려면 서버를 거쳐서 통신 Internet • 전 세계를 연결한 네트워크를 인터넷이라고 한다. • 많은 양의 컴퓨터들 간의 원활한 통신을 위해 지키기로 한 규약을 프로토콜이라고 한다. • 인터넷은 TCP(Transmission Control Protocol) ..
Room * 안드로이드에서 제공하는 데이터베이스 API • 키-벨류 데이터베이스 : SharedPreferences • 관계형 데이터베이스 : SQLite - but 공식문서에서는 SQLite API를 직접 사용하는 것이 아닌, Room 라이브러리를 이용하여 SQLite를 다루라고 권장한다. * 서버 쪽에서만이 아닌 앱 쪽에서도 데이터를 저장할 수 있어야 하는 이유 • 캐싱이 가능하기 때문 - 캐싱 : 캐시를 남기는 작업 - 캐시 : 나중에 빠르게 다시 사용할 수 있도록 남기는 임시 데이터 - 전에 사용했던 데이터를 다시 서버에 요청할 필요없이 빠르게 다시 사용할 수 있다. - 서버에만 데이터를 저장한다면 간단한 데이터라도 서버와 통신해야하기 때문에 효율이 떨어지고, 무겁다. - 네트워크 연결이 잠시 끊..
SharedPreferences • 안드로이드에서 제공하는 데이터베이스 - 데이터베이스에 관한 이전 글 참고 : [📱Android/💡개념] 20. Database(데이터베이스) [Android/개념] 20. Database(데이터베이스) Database • 데이터를 여러 사람이 공유하고 사용할 수 있도록 체계화, 통합, 관리해놓은 데이터의 집합. * 데이터 : 디지털화되어있는 자료 • 데이터를 저장하고 관리하는 이유는 나중에 다시 사 apro-developer.tistory.com • 서버 쪽이 아닌 앱 쪽에서 데이터를 저장할 수 있다. • 키-벨류(NO_SQL) 방식 • 사용자 기기에 데이터를 담은 파일 저장. - 앱 폴더 밑에 파일 형태로 저장하기 때문에 앱을 삭제하면 데이터도 같이 삭제된다. - A..
Database • 데이터를 여러 사람이 공유하고 사용할 수 있도록 체계화, 통합, 관리해놓은 데이터의 집합. * 데이터 : 디지털화되어있는 자료 • 데이터를 저장하고 관리하는 이유는 나중에 다시 사용하기 쉽도록 하기 위해서이다. -> 데이터를 어떻게 사용할 건지에 따라 저장 방식이 달라질 수 있다. • 저장 방식에 따른 종류 1. 계층형 데이터베이스 - 트리 구조 방식으로 데이터를 저장한다. ex) OS에서 폴더와 파일들이 저장되는 구조 2. 관계형 데이터베이스 - 행과 열을 가지는 표 형식으로 데이터를 저장한다. - 가장 보편적인 방식 * SQL : 관계형 데이터베이스를 조작하기 위한 언어 3. 객체형 데이터베이스 - 객체를 저장하는 방식 4. 키-밸류 방식 ( = NO-SQL 방식) - 키와 밸류를..
ViewPager & TabLayout 1. ViewPager • 화면을 가로로 넘겨 전환할 수 있게 하는 뷰 - 손가락을 가로로 스와이프하여 화면을 넘길 수 있다. - 탭을 만들어 이동하고 싶은 탭을 누르면 해당 화면으로 이동하게 할 수 있다. 2. TabLayout • 탭을 가로로 표시하는 레이아웃 3. ViewPager + TabLayout • 같이 사용하는 경우가 많다. • Adapter로 연결 * Adapter : 서로 다른 두 개를 연결시켜주는 도구 1. FragmentStatePagerAdapter - Deprecated 됨. -> 더 이상 사용하지 않음. - 각 Fragment가 화면들을 구성하여 화면 전환. - ViewPager 클래스 사용. 2. FragmentStateAdapter -..
RecyclerView • 컨테이너 뷰에 자식 뷰들을 동적으로 넣는 방법. • 같은 틀(배치, 속성)에 내용물만 다른 형태 뷰들을 반복적으로 넣을 때 사용 * addView -> ListView -> RecyclerView 순으로 편하고 성능이 좋다. • addView - 아이템 뷰의 재사용 없이 늘 모든 아이템 뷰를 만든다. -> 성능 저하 - 데이터의 변화에 대한 갱신이 힘들다. - [📱Android/💡개념] 16. AddView [Android/개념] 16. AddView AddView • 컨테이너 뷰에 자식 뷰들을 동적으로 넣는 방법. • 같은 틀(배치, 속성)에 내용물만 다른 형태 뷰들을 반복적으로 넣을 때 사용 ex) 리스트 • item_add_view16.xml - 아이템으로 쓸 뷰를 생성 ..
ListView • 컨테이너 뷰에 자식 뷰들을 동적으로 넣는 방법. • 같은 틀(배치, 속성)에 내용물만 다른 형태 뷰들을 반복적으로 넣을 때 사용 • Adapter를 사용한다. • addView의 단점을 보완한 뷰 - addView는 앱 사용 도중 변경되는 데이터에 대한 갱신이 어렵다. -> ListView는 Adapter.notifyDataSetChanged()를 통해 쉽게 갱신 가능 - addView는 100개의 아이템이 있으면 100개의 아이템을 모두 생성하여 출력해야 한다. -> ListView는 ViewHolder를 통해 아이템의 재사용 가능. * addView 참고 : [📱Android/💡개념] 16. AddView [Android/개념] 16. AddView AddView • 컨테이너 뷰에..