Guideline Guideline은 레이아웃 작성 시에 가이드라인을 잡아주는 역할을 합니다. 한 화면 내에서 가상의 선을 하나 그어, 해당 선에 view들의 constraint를 주는 역할을 합니다. android:id : 해당 Guideline의 id android:orientation : Guideline의 방향 설정 (vertical / horizontal) app:layout_constraintGuide_xxx : Guideline의 위치 지정 app:layout_constraintGuide_begin : 화면의 시작으로부터 얼마만큼 떨어져 있을지 지정 app:layout_constraintGuide_end : 화면의 끝으로부터 얼마만큼 떨어져 있을지 지정 app:layout_constraint..
명시적 인텐트 명시적 인텐트는 인텐트를 충족하는 애플리케이션이 무엇인지 지정합니다. 이를 위해 대상 앱의 패키지 이름 또는 완전히 자격을 갖춘 구성 요소 클래스 이름을 제공합니다. 명시적 인텐트는 일반적으로 앱 안에서 구성 요소를 시작할 때 씁니다. 시작하고자 하는 액티비티 또는 서비스의 클래스 이름을 알고 있기 때문입니다. 예를 들어, 사용자 작업에 응답하여 새로운 액티비티를 시작하거나 백그라운드에서 파일을 다운로드하기 위해 서비스를 시작하는 것 등이 여기에 해당됩니다. // 액티비티 val intent = Intent(this, InputActivity::class.java) startActivity(intent) // 서비스 val downloadIntent = Intent(this, Downloa..
활동 상태 변경 처리 활동 상태 변경 처리 | Android 개발자 | Android Developers 활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페 developer.android.com 사용자가 Activity를 벗어났다가 다시 돌아왔을 때 Activity가 작동하는 방식을 수명 주기 콜백 메서드에서 선언할 수 있습니다. 1. Configuration 변경 발생 구성 변경을 트리거할 수 있는 여러 이벤트가 있습니다. 아마도 가장 눈에 잘 띄는 예는 세로 모드와 가로 모드 간 방향 변경일 것입니다. 구성 변경을 일으킬 수 있는 다른 사례로는 언어 또는 입력 기기..
1. Activity 생명주기 활동 수명 주기에 관한 이해 | Android 개발자 | Android Developers 활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페 developer.android.com 앱의 완성도와 안정성을 높이기 위해 반드시 알아야 함 다른 앱으로 전환 시, 비정상 종료 되는 문제 사용자가 앱을 사용하지 않는데, 시스템 리소스가 소비되는 문제 사용자가 앱을 나갔다가 돌아왔을 때, 진행상태가 저장되지 않는 문제 화면이 가로 ↔ 세로 전환 될 때, 비정상 종료되거나, 진행상태가 저장되지 않는 문제 콜백 onCreate 필수적으로 구현해야함 Ac..
1. Lambda (람다) Kotlin에서 함수 유형 및 람다 표현식 사용 | Android Developers Kotlin에서 람다 표현식과 고차 함수의 사용 방법을 알아봅니다. developer.android.com 2. Extension Function (확장 함수) Extensions | Kotlin kotlinlang.org 3. Scope Function (범위 지정 함수) Scope functions | Kotlin kotlinlang.org 코틀린 표준 라이브러리에서 제공하는 확장 함수 목적 : 간결성, 명료성, 유지보수 용이성 정의 : 객체의 컨텍스트 내에서, 실행 가능한 코드 블럭을 만드는 함수 호출 시, 임시 범위가 생성되며, 이 범위 안에서는 이름 없이 객체에 접근가능 context..
문제 https://www.acmicpc.net/problem/1854 1854번: K번째 최단경로 찾기 첫째 줄에 n, m, k가 주어진다. (1 ≤ n ≤ 1000, 0 ≤ m ≤ 2000000, 1 ≤ k ≤ 100) n과 m은 각각 김 조교가 여행을 고려하고 있는 도시들의 개수와, 도시 간에 존재하는 도로의 수이다. 이어지는 m개의 줄에 www.acmicpc.net 설명 i번 도시에서 i번 도시로 가는 최단경로는 0이지만, 일반적인 k번째 최단경로는 0이 아닐 수 있음에 유의한다. 또, k번째 최단경로가 존재하지 않으면 -1을 출력한다. 최단경로에 같은 정점이 여러 번 포함되어도 된다. 도로의 정보를 저장하기 위한 Road 클래스를 만들고 리스트를 만들어 연결관계를 저장한다. 이때, 소요 시간이 ..
문제 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 설명 모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최솟값을 구해야 한다. 모든 도시 쌍들 사이의 최단 경로를 구하는 방법으로는 플로이드-워셜 알고리즘이 있다. i번째 도시에서 j번째 도시까지의 최소 비용을 저장할 costs[i][j] 배열을 만든다. 자기 자신은 0으로 채우고 나머지는 Integer.MAX_VALUE로 채운다. // 자기 자신은 0으로 채우고 ..
문제 https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 설명 1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구해야 한다. 시간 C가 양수가 아닌 경우가 있다. C = 0인 경우는 순간 이동을 하는 경우, C < 0인 경우는 타임머신으로 시간을 되돌아가는 경우이다. 만약 어떤 도시로 가는 과정에서 시간을 무한히 오래 전으로 되돌릴 수 있다면 첫째 줄에 -1을 출력한다. 음의..