Programming/Android

    JetPack

    JetPack

    Jetpack Jetpack 라이브러리는 새로운 기능과 함께 이에 대한 하휘 호환성(backward compatibility)도 제공한다. Jetpack 라이브러리를 사용하면 조건문을 사용한 API레벨 확인 코드를 작성안해도 된다. . Jetpack에 있는 많은 AndroidX 라이브러리는 이전의 지원 라이브러리를 개선한 것이다. 그래서 Jetpack을 사용하는 것이 더 좋다. 하지만 맹목적으로 무조건 Jetpack을 사용하라는 것은 아니다. 자주 사용하는 기능을 포함하긴 했으나, 모든 것을 포함하진 않기 때문이다.(더블체크가 필요하다...) AAC Android Architecture Component [공식문서 바로가기] 안드로이드 아키텍쳐 구성요소 Room [보러가기] LiveData [보러가기] ..

    app: build.gradle

    app: build.gradle

    App : Build Gradle compileSdkVersion 컴파일 SDK 버전 컴파일 SDK 버전은 코드를 빌드할 때 사용하는 버전이다. 매니페스트 파일에는 사용되지 않는다. 안드로이드의 기능들은 SDK의 클래스와 함수 형태로 사용된다. 안드로이드 스튜디오가 import문으로 참조하는 클래스나 함수가 바로 이 부분이다. 가장 최신에 가까우면서 안정된 API레벨을 선택하는 것이 좋다. minSdkVersion 최소 SDK 버전 앱을 설치하는 기준으로 삼는 최소한의 안드로이드 버전이다. 예를들어, 21버전 롤리 팝을 기준으로 한다면, 롤리팝 또는 그 이상의 버전 안드로이드 장치에서 해당 앱을 설치하고 실행할 수 있다는 의미이다. 이 보다 낮은 버전에 있는 안드로이드라면 이 앱을 설치 못한다. 보통 해..

    XML options

    XML options

    XML 상단: xmlns:tools = "http://schemas.android.com/tools" ▶ 미리보기 화면으로는 해당 텍스트가 뜨지만, Run 을 하면, 해당 글자는 뜨지 않는다.

    Life cycle 생명 주기

    Life cycle 생명 주기

    Activity Lifecycle 활동(activity)의 모든 인스턴스는 생명주기를 갖는다. 생명주기 동안의 활동의 상태는 총 4가지이다. 실행 재개 일시 중지 중단 존재하지 않음 = 소멸 resumed paused stopped nonexistent = destroyed 상태 메모리 있음? 사용자에게 보임? Foreground에서 실행? nonexistent no no no stopped yes no no paused yes yes(partialy) no resumed yes yes yes 존재하지 않음 Nonexistent onCreate() ⏬ onDestroy() ⏫ 중단 Stopped onStart() ⏬ onStop() ⏫ 일시 중지 Paused onResume() ⏬ onPause() ⏫ ..

    View

    View

    View ImageView TextView ViewGroup ImageButton Button EditText Adapter View View Pager Tool bar Relative Layout Linear Layout Grid Layout Frame Layout Constraint Layout Button 버튼 안에 이미지를 넣고 싶은 경우 android:drawable(원하는위치) = "@drawable/원하는 이미지" 이렇게 옵션을 추가하면 된다. android:drawablePadding = "Ndp" 이렇게 하여 약간의 간격을 준다. ImageButton 이미지 버튼은 버튼의 text, drawable... 등의 옵션이 필요없다. android:src = "@drawable/원하는 이미지" ..

    Class

    Class

    Listener Interface Listener SAM Single Abstract Method 단일 추상 메서드 SAM Conversion SAM 변환 kotlin에서는 java와 호환성을 유지하기 위해 특별한 형태로 SAM을 지원한다. 즉, 함수 리터럴 Function literal 또는 람다식 Lambda expression 으로 SAM을 작성하면 이것을 해당 인터페이스의 구현 객체로 변환한다. 이를 SAM 변환이라 한다. Data Class 데이터를 갖는 클래스로 주로 사용한다. 업무에 관련된 것도 있으며, 프로그램에서 필요하여 생성한 것도 있을 수 있다. 이러한 클래스는 비즈니스 로직을 처리하지 않고, 주로 데이터르르 저장하는 속성을 갖는다. 클래스 인스턴스끼리 각 속성의 값을 비교하거나, -..

    Resource 리소스

    Resource 리소스

    Resource 리소스에 대한 모든 것 리소스는 아래의 폴더로 대체로 구분된다. Drawable Layout Mipmap Values Values Values - Strings 문자열 리소스를 담는 곳이다. 문자열 파일(String file)이라고도 한다. 별도의 Xml파일에 정의된 문자열이다. 직접 하드 코딩을 하여 문자를 등록할 수 있지만, 이렇게 문자열 파일에 저장하여 사용하면 각 문자 값을 참조하게 하여 지역화(localization)를 쉽게 할 수 있다. Strings 라는 파일의 명은 바꿔도 된다. 여러 문자열 파일을 만들어 놓고 사용해도 된다. 단, Values폴더 아래에 위치시켜야 한다. Values - Colors Values - Themes 리소스 파일을 만드는 화면창이다. Availa..

    View Hierarchy 뷰 계층 구조

    View Hierarchy 뷰 계층 구조

    View Hierarchy 뷰의 계층구조 위의 코드는 아래의 표처럼 계층을 가진 상태로 구성된다. view에 해당하는 모든 xml 코드들은 이런 식으로 구성되어있다. LinearLayout TextView LinearLayout Button Button 최고 상단 루트(뿌리에)에 속하는 요소는 LinearLayout이다. 이 것에는 안드로이드 리소스 xml 네임스페이스를 지정해줘야한다. 그 코드가 바로 익숙한 아래의 코드이다. xmls:android="http://schemeas.android.com/apk/res/android" ViewGroup 에는 Linear, Constraint, Frame 등 다양한 서브클래스가 있다. ViewGroup에 포함되는 모든 View들은 뷰그룹의 자식(Child)라 ..