Activity Stack • 액티비티를 여러 개 호출 시 스택이 쌓임. • 스택에서 맨 위에 있는 액티비티가 화면에 보임. • 액티비티 스택을 관리하는 법이 여러 개 있음. * 액티비티 스택은 되도록이면 건들지 않는 것이 좋다. - 복잡한 부분이기 때문에 꼬일 수 있다. - 사용자들도 스마트 폰에 익숙해지면서 예상하는 동작이 있는데, 예상을 벗어나면 불편하다. - 안드로이드 공식 문서에서도 강조하고 있다. -> 액티비티 스택은 분명한 의도를 가지고 적용해야 한다. Activity Stack 관리 1. AndroidManifest의 launchMode 이용 • • standard - 기본 값 - 후입선출(LIFO, Last In First Out) - 호출하는 모든 액티비티가 위에 쌓인다. • singl..
Intent • 의도, 의사가 담긴 메시징 객체 • 다른 컴포넌트에게 작업을 요청할 때, 어떠한 작업을 요청하는지, 누구에게 요청하는지 등에 대한 정보를 인텐트 객체에 담아 전달한다. • 데이터를 담아 전달할 수 있다. ex) 010-0000-0000(데이터)로 전화해줘. • 요청한 작업의 결과를 받을 수 있다. Intent 종류 1. 명시적 인텐트 (Explicit Intent) • 호출 대상을 명시하는 경우 ex) ㅇㅇ앱으로 사진 찍을거야 -> ㅇㅇ앱 호출 및 실행 2. 암시적 인텐트 (Implicit Intent) • 호출 대상을 명시하지 않는 경우 ex) 사진 찍을거야 -> 사진 찍을 수 있는 모든 앱 호출 • 인텐트 필터 (Intent-filter) - 매니페스트 파일에 인텐트 필터를 등록할 수..
Context • 사전적으로는 문맥, 맥락, 전후사정을 의미한다. - 안드로이드에서는 앱의 흐름을 의미 • 애플리케이션나 액티비티의 현재 상태를 나타낸다. • 정보를 얻기 위해 사용한다. • Activity, Application 클래스는 전부 Context를 상속받아 구체화된 것이다. -> Context 타입이 필요한 자리에 Activity, Application 클래스를 넣어도 된다. 1. Application Context • 애플리케이션에 하나만 존재 • 애플리케이션이 살아있는 동안 유지 • 애플리케이션의 현재 상태나 정보를 담고있다. • 애플리케이션 전체에서 사용할 정보나 함수를 저장해두기 좋다. ex) 애플리케이션의 현재 액티비티 라이프사이클 상태 확인 - Application Context를..
App Component • 앱 컴포넌트는 Android 앱의 필수적인 기본 구성 요소를 뜻함. • 각 컴포넌트는 시스템이나 사용자가 앱으로 들어갈 수 있는 진입점. • 앱 컴포넌트에는 Activities, Services, Broadcast Receivers, Content Providers가 있다. 1. Activities(액티비티) • 사용자와 상호작용하기 위한 진입점. • 사용자 인터페이스를 포함한 화면 하나를 나타냄. • 한 앱에는 여러 액티비티가 존재할 수 있음. ex) 이메일 앱 -> 받은 이메일 목록, 메일 쓰기, 메일 읽기 • 액티비티는 서로 독립적임. -> 한 액티비티 안에서 다른 액티비티를 만들고 이런 것이 아닌, 독립적인 액티비티를 서로 호출하는 방식 2. Services(서비스) ..
뷰 컨트롤 • 사용자와의 상호작용으로 인해서 뷰를 조작하는 방법 • 뷰에 이벤트가 발생했을 때 처리하는 방법 • xml에 존재하는 뷰를 kotlin으로 가져와서 처리할 수 있다. 1. findViewById • xml에 존재하는 뷰를 kotlin으로 가져오는 방법. • findViewById(R.id.아이디) : 해당 아이디의 view를 가져온다. - Id -> xml에서 부여한 view의 id • 그 외에도 view를 가져오는 방법에는 kotlinx, databinding 등이 있다. - kotlinx : 번거로운 findViewById 과정을 생략 가능. 하지만 deprecated -> 가급적으로 사용을 피해야 한다. - databinding : 뷰와 데이터를 묶는 방법. 심화 내용이다. packag..
Activity • 화면을 구성하는 가장 기본이 되는 요소 • 자동으로 activity와 매칭되는 xml을 생성 + manifest에 등록 • 화면을 그리는 기능 + 화면에서 발생할 수 있는 일들을 처리할 수 있는 기능이 내장 • 앱이 실행될 때 최초로 실행되는 activity를 main activity 또는 launcher activity라고 한다. 1. Activity의 Lifecycle(생명주기) • onCreate(savedInstanceState) - 필수적으로 구현해야 한다. - 생명주기 중에서 단 한 번만 발생한다. -> 단 한 번만 하면 되는 일들을 여기 구현한다. - 초기 화면 그리기, 데이터 준비 등의 일을 한다. * savedInstanceState : 사용자가 액티비티에서 바꾸었던 ..
Log 1. Log의 의미 • Log는 기록이란 의미로, 시스템이 남기는 로그와 개발자가 남기는 로그가 있다. - 시스템이 남기는 로그는 시스템의 정상 작동 여부나, 발생한 오류, 접속한 기록 등 시스템의 상태를 파악할 수 있도록 한다. - 개발자가 남기는 로그는 변수에 담긴 값이나 작성한 코드가 제대로 잘 작동하는 지 등 개발자가 앱을 개발할 때 필요한 것들을 확인하기 위해 원하는 값 등을 담아 개발자가 직접 남긴다. 2. 로그 레벨 • 안드로이드에서 로그는 종류와 우선 순위에 따라 다음과 같이 나눠진다. • 우선 순위는 Verbose가 가장 낮고 Assert가 가장 높다. - Verbose : 상세하고 모든 것을 출력하는 로그 - Debug : 값 확인 등 개발 단계에서 필요한 것을 출력하는 로그 -..
* 프로젝트 뷰 • 안드로이드 스튜디오에서 프로젝트의 구조를 보기 위해서는 프로젝트 뷰를 이용한다. • 안드로이드 스튜디오의 프로젝트 뷰는 사용자가 설정한 것에 따라 구조를 다르게 볼 수 있다. • 개발자들이 보통 개발할 때 주로 사용하는 Android 설정을 기준으로 구조를 파악할 것이다. • 자세한 것은 아래의 포스팅을 참고 [📱Android/📘기타] - 안드로이드 스튜디오 프로젝트 뷰 [Android/기타] 안드로이드 스튜디오 프로젝트 뷰 안드로이드 스튜디오 프로젝트 뷰 • 안드로이드 스튜디오에서 프로젝트의 구조는 프로젝트 뷰에서 볼 수 있다. • 안드로이드 스튜디오의 프로젝트 뷰는 설정에 따라 프로젝트 구조를 다르 apro-developer.tistory.com 프로젝트 • 소스 코드, 이미지 등..