본문 바로가기

책 요약하기/이것이 안드로이드다

(9)
#6. 권한 2021-03-18 1.1 권한 명세와 기능 명세 설정 파일에 작성하는 명세에는 권한 명세와 기능 명세 두 가지가 있습니다. 권한 명세는 해당 데이터나 기능의 사용여부를 설정하고, 기능 명세는 해당 기능이 있는 안드로이드폰에서만 내려받을 수 있도록 플레이 스토어에서 내려받는 것을 방지합니다. 권한 명세 권한 명세를 설정하는 AndroidManifest.xml 파일은 [app] - [manifests] 디렉터리 밑에 있습니다. 예시로 와이파이 권한과 인터넷 접근 권한을 부여하는 코드입니다. 기능 명세 권한 이외에도 기능에 대한 명세가 필요할 때가 있는데 기능 명세는 AndroidManifest.xml파일에 따로 추가하지 않아도 해당 기능을 사용할 때 시스템이 자동으로 부여합니다. 이때 사용하는 태그가 태그입니다. 예를 들어 ..
#5.5 탭 메뉴로 화면 구성 ViewPager와 TabLayout 2021-03-14 5.1 ViewPager에서 프래그먼트 사용하기 ViewPager와 Adapter 뷰 페이저는 리사이클러뷰와 구현 방식이 비슷한데 한 화면에 하나의 아이템만 보여지는 리사이클러뷰라고 생각하면 됩니다. 페이저어댑터를 통해서 뷰페이저에서 보여질 화면들을 연결하는 구조도 리사이클러뷰와 동일합니다. 1. 뷰페이저 어댑터 생성 합니다. 2. 뷰페이저어댑터를 만듭니다.(뷰페이저에 프래그먼트를 보여주기 위해서) FragmentAdapter 클래스를 생성한 후에 FragmentPagerAdapter를 상속받습니다. class FragmentAdapter : FragmentPagerAdapter { } 3. FragmentPagerAdapter 뒤에서 [Alt+Enter] 클릭 한 후에 파라미터가 2개인 생성자로 선택하..
#5-3. 프래그먼트 2021-03-12 3. 액티비티의 조각 프래그먼트 다루기 화면을 분할해서 독립적인 코드로 구성할 수 있게 도와주는 것이 프래그먼트(Fragment) 입니다. 가령 프래그먼트는 서로 다른 크기의 화면을 가진 기기(태블릿, 스마트폰 등)에서 하나의 액티비티로 서로 다른 레이아웃을 구성할 수 있도록 설계되었습니다. 목록 프래그먼트와 상세 프래그먼트가 있을 때 태블릿과 같은 큰 화면에서는 두 프래그먼트를 한 화면에 표시하고, 스마트폰처럼 작은 화면에서는 먼저 목록 프래그먼트만 표시한 후 목록을 클랙하면 상세가 나타나는 구조입니다. 프래그먼트를 활용한 구조 한 번에 1개의 프래그먼트가 화면에 나타나는 형태는 프래그먼트 여러 개를 미리 만들어두고 탭 메뉴나 스와이프(Swipe)로 화면 간 이동을 할 때 사용됩니다. 한 번에 여러 개..
#5-2. 컨테이너 2021-03-12 2. 컨테이너 : 목록 만들기 위젯의 위치를 다룰 때 레이아웃을 사용해싿면 위젯이나 다른 레이아웃에 데이터를 동적으로 표현해줄 때 컨테이너를 사용합니다. 컨테이너는 데이터를 반복적으로 표시하는 용도로 사용하는데 대표적인 컨테이너로는 목록을 화면에 출력할 때 사용하는 리사이클러뷰(RecyclerView)가 있습니다. 2.1 스피너 스피너(Spinner)는 여러 개의 목록 중에 하나를 선택할 수 있는 선택 도구입니다. // 스피너에 사용할 목록 생성, 어댑터 생성, 스피너에 어댑터 등록 var data = listOf("- 선택하세요 -", "1월", "2월", "3월", "4월", "5월", "6월") var adapter = ArrayAdapter(this, android.R.layout.simple_l..
#5-1. 화면 구성하기 2021-03-12 1. 컨텍스트 1.1 컨텍스트란 컨텍스트(Context)는 시스템을 사용하기 위한 정보(프로퍼티)와 도구(메서드)가 담겨 있는 클래스입니다. 대부분의 컨텍스트는 컴포넌트 실행(Running) 시 함께 생성되고, 생성된 컴포넌트가 가지고 있는 메서드를 호출해서 각각의 도구들을 사용할 수 있습니다. 안드로이드에서의 컴텍스트는 입을 실행하기 위해 잘 짜여ㄷ진 설계도의 개념으로 앱에서 사용하는 기본 기능이 담겨있는 기본 클래스(Base Class)입니다. 액티비티는 컨텍스트를 상속받아 구현됩니다. 액티비티처럼 컨텍스트를 상속받은 컴포넌트들은 코드상에서 baseContext를 호출하는 것만으로 안드로이드의 기본 기능을 사용할 수 있습니다. 컨텍스트의 종류 1. 애플리케이션 컨텍스트(Application Conte..
#4. 위젯과 리소스 다루기 2021-03-06 - 요약 - 컨스트레인트 레이아웃 (ConstraintLayout)을 사용하면 간단한 드래그 앤드 드롭만으로 각각의 화면 요소들을 원하는 곳에 배치할 수 있습니다. 리니어 레이아웃(LinearLayout)은 위젯을 가로 또는 세로 한 줄로 배치하기 위한 레이아웃입니다. 프레임 레이아웃(FrameLayout)은 입력되는 위젯의 위치를 결정하기보다는 위젯을 중첩해서 사용하기 위한 레이아웃입니다. - 미니 퀴즈 4-1 - 1. 안드로이드 스튜디오에서 컨스트레인트 레이아웃에 5개의 버튼 요소를 배치한 후 가장 위에 있는 버튼을 이동시켰을 때 나머지 4개의 버튼도 같이 움직이도록 해보세요. 2. 다음처럼 12개의 버튼을 배치하고 화면을 회전했을 때 버튼이 동일한 모양을 유지하도록 설정해보세요. 1) (1, 4, ..
#3. 코틀린 사용을 위한 기본 문법 2021-03-04 1. 코딩 준비하기, 2. 변수와 상수, 3. 조건문 - 미니 퀴즈 3-1 - 1. 실제 에러를 출력하기 위한 로그함수의 이름은 무엇인가요? 답 : android.util.Log.x(tag, msg) 입니다. x는 v, i, d, w, e 종류가 있으며 파라미터는 테그와 메시지입니다. 함수 의미 내용 Log.v() verbose 상세한 로그 내용을 출력하기 위해 사용합니다. Log.d() debug 개발에 필요한 내용을 출력하기 위해 사용합니다. Log.i() information 정보성의 일반적인 메시지를 전달하기 위해 사용합니다. Log.w() warning 에러는 아니지만 경고성 메시지를 전달하기 위해 사용합니다. Log.e() Error 실제 에러 메시지를 출력하기 위해 사용합니다. 2. 개발자들..
#2. 개발도구 설치와 앱 실행하기 - 미니 퀴즈 2-1 - 1. 안드로이드 스튜디오의 디렉터리 구조에서 이미지와 같은 리소스를 저장하는 디렉터리의 이름은 무엇인가요? 답 : res 디렉터리 (정확하게는 보통 res/drawble/ 디렉터리에 저장) 2. 내가 만드는 앱의 빌드 정보가 들어 있는 파일 이름은 무엇인가요? 답 : Gradle Scripts 3. 에뮬레이터의 속도를 빠르게 해주는 하드웨어 가속기의 이름은 무엇인가요? 답 : Intel x86 Emulator Accelerator(HAXM installer) [여기서 잠깐] >> setContentView()메소드 의미 super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setContentView(*..