본문 바로가기

분류 전체보기

(25)
[공식문서] 첫 번째 앱 빌드하기 * 해당 글은 안드로이드 디벨로퍼의 공식 문서를 개인적으로 정리하는 용도입니다. 첫 앱 빌드 | Android 기본 사항 | Android Developers 첫 앱 빌드 이 섹션에서는 간단한 Android 앱의 빌드 방법을 설명합니다. 먼저 Android 스튜디오로 'Hello, World!' 프로젝트를 만들어 실행하는 방법을 알아봅니다. 그런 다음, 사용자 입력을 가져와 앱 developer.android.com 안드로이드 앱 개발을 시작하기 앞서, 안드로이드 앱에 대해 이해해야 하는 두 가지 컨셉이 있습니다. 여러 진입점(Entry points) 제공 안드로이드 앱은 개별 호출이 가능한 컴포넌트의 조합입니다. 컴포넌트의 예로는 UI를 제공하는 Activity가 있습니다. "Main" Activity..
[Programmers/Level 3/Python] 입국심사 Programmers(프로그래머스) 레벨 3 입국심사 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 � programmers.co.kr 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 ..
[Android/Tip] API 29에서 BottomSheet의 peek_height가 다르게 보이는 문제 해결하기(How to make same peek_height of BottomSheet on API 29) 문제 상황 peek_height를 설정한 BottomSheet가 AVD 상에서 잘 작동하는 것을 확인했으나, 실제 기기인 갤럭시 노트10(안드로이드 Q)에서는 BottomSheet가 다 보이는, 즉 peek_height 속성의 값이 적용되지 않는 문제가 있었다. 심지어 숨겨지지도 않았다. 해결 방법 안드로이드 Q에서부터 BottomSheet 제스처와 시스템 네비게이션 제스처와의 충돌을 방지하기 위해 GestureBottomInserts가 default behavior로 설정했기 때문이라고 한다. API29에서도 BottomSheet가 동일하게 동작하기 윈한다면 이를 무시하는 속성인 "gestureInsetBottomIgnored"를 trure로 설정하면 된다. XML과 프로그래밍 코드 상에서 모두 가능하..
[Android/Tip] Elevation으로 생긴 그림자 없애기(Remove elevation shadow) 문제 상황 어떤 View 위에 버튼을 위치시켜야 하는 화면이 있었다. "android:elevation" 속성으로 버튼을 위에 위치시키게 했지만, 자동으로 그림자도 생겼다. UI 디자인 상에서 그림자는 필요 없었기 때문에 버튼 아래 생기는 그림자를 없애고 싶었다. 해결 방법 XML 상에서 View의 속성으로 "android:outlineProvider"가 있다. 속성 값을 "none"으로 설정하면 그림자가 사라진다. *참고한 글 Remove elevation shadow without removing elevation itself Is there a way for AppBarLayout to no drop shadow and keep its elevation? stackoverflow.com
[Android/Tip] EditText 입력 텍스트 최대 길이 제한하기 (Limit maximum text length of EditText) XML에서 설정하기 (maxLength) EditText view의 속성으로 "android:maxLength"를 추가하여 원하는 길이의 값을 넣어주면 된다. 아래는 10글자로 제한한 EditText의 예제이다. 프로그래밍 방식으로 설정하기 (InputFilter) 하나의 EditText를 사용하는데, 입력 텍스트 최대 길이를 상황에 따라서 다르게 해야 할 때가 있다. 이 때는 Java나 Kotiln으로 프로그래밍하여 최대 길이를 설정하려고 할 것이다. 하지만 EditText 클래스에는 setMaxLength와 같이 입력 텍스트 최대 길이를 설정할 수 있는 함수를 제공하지 않는다. 이때 사용할 수 있는 것이 InputFilter이다. InputFilter.LengthFilter로 최대 길이를 설정하여 I..
[Baekjoon/Silver 1/C, C++] 2447번: 별 찍기 - 10 Baekjoon(백준) 2447번: 별 찍기-10 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 � www.acmicpc.net 문제 설명 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패..
[Baekjoon/Silver 2/C, C++] 11729번: 하노이 탑 이동 순서 Baekjoon(백준) 11729번: 하노이 탑 이동 순서 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 문제 설명 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 1. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 2. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 이 작업을 수행하는데 필요한 이동 순서를 출력하는..
[Programmers/Level 3/Python] 여행경로 Programmers(프로그래머스) 여행경로 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 예) [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL", "SFO"]] =>["ICN", "JFK",..