본문 바로가기
반응형

Mobile Develop33

[Android] Activity Lifecycle (액티비티 생명주기) 안드로이드 시스템은 실행되는 앱의 상태를 직접 관리한다. 멀티 태스킹 및 외부 인터럽트에 민감한 모바일 플랫폼의 특성상 사용자 앱이 시스템에 의해 관리되지 않으면, 특정 앱이 과도하게 메모리를 점유하여 다른 앱의 원활한 실행을 막는 등 여러 문제를 야기할 수 있기 때문이다. 따라서 안드로이드는 이런 문제를 방지하기 위해 액티비티의 상태 정보가 변화하는 것을 관리하며, 개발자는 Activity 클래스를 통해 상태 변화에 관한 콜백을 받음으로써 여러 액션을 쉽게 관리할 수 있게 된다. 액티비티의 생명주기는 onCreate(), onStart(), onResume, onPause(), onStop(), onDestory(), onRestart()의 7가지 상태로 이뤄져 있으며, 각각의 상태는 다음과 같은 의미.. 2024. 1. 13.
org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR loweringFile being compiled android compose로 개발 중에 새 모듈을 추가 했는데 다음과 같은 오류가 발생.. org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering File being compiled 막상 해당 프로젝트에는 오류가 될 만한 상황이 보이지 않음 오류 전문 보기 v 더보기 org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering File being compiled: /Users/nyang/Desktop/responseLayoutGrid/cor.. 2024. 1. 13.
Dependency 버전 오류 해결하기 안드로이드 프로젝트에 새로운 모듈을 추가하던 도중 다음과 같은 오류가 발생하였다 상당히 자주 보는 오류 😂 3 issues were found when checking AAR metadata: 1. Dependency 'androidx.activity:activity-ktx:1.8.0' requires libraries and applications that depend on it to compile against version 34 or later of the Android APIs. :app-demo-compose is currently compiled against android-33. Also, the maximum recommended compile SDK version for Android G.. 2024. 1. 13.
[Android] Duplicate resources 에러 해결하기 Android Studio로 개발하던 도중 스플래시를 추가 하기 위해 아이콘을 추가하고 빌드를 시도하다가 아래와 같은 에러가 발생했다. Duplicate resources 더도 덜도 없이 딱 이 한줄이라 당황스럽지만 원인은 단순하게 같은 이름의 파일이 2개 이상 존재해서 발생하는 에러다. 확장자명이 달라도 에러가 발생하니 주의..! 오류가 난 곳에 가서 파일을 확인해보면 같은 이름의 다른 확장자 파일이 존재하는 것을 확인할 수 있다! 이미지 리소스 추가 도중에 이름을 잘못 추가하는 바람에 롤백했는데 추가한 파일이 다 지워지지 않아서 발생한 문제였다.. 새로 추가한 png 파일을 전부 지우거나 이름을 변경한 뒤 재빌드하면 성공 메시지를 확인할 수 있다. (그럴리는 없겠지만 hdpi/mdpi... 등은 해상.. 2023. 6. 9.
[Android] 안드로이드 4대 컴포넌트(Component) 컴포넌트는 구성 요소라는 뜻으로, 안드로이드는 4개의 핵심 컴포넌트 (Major Components)를 제공한다. Android의 4대 컴포넌트 Activity (액티비티) : UI 화면 담당 Service (서비스) : 백그라운드 처리 작업을 위해 사용 Boradcast Receiver (방송 수신자) : 시스템에서 발생하는 각종 이벤트(브로드캐스트)를 수신 Content Provider (콘텐츠 제공자) : 다른 애플리케이션 및 로컬 데이터를 제공 각 유형은 고유한 뚜렷한 목적을 가지고 독립적인 형태로 존재하며, 각각의 생명 주기에 의해서 실행된다. 또한 액티비티, 서비스, 브로드캐스트 리시버는 Intent(인텐트)를 통해 상호작용하며, 콘텐츠 제공자는 Content Resolver를 통해 활성화된다.. 2023. 4. 21.
[Flutter] Align 위젯 Align 자식 위젯을 원하는 방향으로 정리하고 싶을 때 Align 위젯을 사용하여 정렬할 수 있다. 다른 위젯과 마찬가지로, 자식 위젯을 Align으로 감싼 뒤 alignment 프로퍼티를 이용하여 방향을 설정해주면 된다. Align( alignment: Alignment.bottomCenter,//정렬하고자하는 위치 설정 child:Container( //자식 위젯 코드 생략 ) ) Alignment Alignment 상수는 두 가지 방법으로 설정할 수 있는데, 첫 번째는 Alignment(double x, double y) 함수를 이용하여 직접 위치를 지정해주는 것이고, 두 번째는 미리 정의된 상수 이름을 사용하여 위치를 지정해주는 방법이다. 1. 값 직접 설정 Alignment()를 사용하여 함수.. 2022. 3. 18.
[Flutter] Padding 위젯 padding padding 위젯은 안쪽 여백을 표현할 때 사용하는 위젯이며, 아래와 같이 생성한다. Padding( padding: const EdgeInsets.all(10.0),// 이 부분에서 padding 값 지정 child:Container( //child 코드 생략 ) ) 여백은 EdgeInsets 클래스를 사용하여 값을 지정할 수 있으며, 이 클래스에는 여러가지 함수가 제공된다. EdgeInsets 함수 설명 all 네 방향 모두 같은 값 지정 only 상하좌우 중 원하는 방향에만 값 지정 (지정하지 않은 방향에는 기본값 0.0) fromLTRB 네 방향의 값을 각각 지정 symmetric 상하(vertical)와 좌우(horizontal) 값 지정 all all은 네 방향에 모두 값은 값.. 2022. 3. 18.
[Flutter] Center 위젯 Center 중앙으로 정렬 시키고 싶을 때는 center 라는 위젯을 사용하여 정렬 시킬 수 있다. 예를 들어 아래와 같은 코드를 정렬시키고 싶다면, 그냥 그대로 Center로 감싸면 된다. [정렬 전] Container( color: Colors.red, width: 100, height: 100 ) [가운데 정렬 후] Center( child:Container( color: Colors.red, width: 100, height: 100 ) ) 코드 변경 후 가운데로 정렬이 잘 되는 것을 확인 할 수 있다. [정렬 전/후 실행 결과] 2022. 3. 18.
[Flutter] GridView 위젯 GridView 플러터의 GridView는 열 수를 지정하여 자식 위젯을 그리드 형태로 표시하는 위젯이다. 동일한 크기의 표를 그리는 것과 유사한데, 열 수만 지정해주면 해당 수만큼 위젯의 공간을 나누어 각 하나의 공간을 하나의 자식에 부여하는 것이다. 세로가 행, 가로가 열이므로 가로 기준에 맞춰 배치한다고 생각하면 된다. 코드는 아래와 같이 작성하여 사용한다. GridView.count() 생성자를 사용하여 위젯을 그리고 있으며, crossAxisCount 프로퍼티를 사용하여 열 수를 지정한다. GridView.count( crossAxisCount : 3,// 이 부분에 열 수 지정 children: [ //자식 위젯 코드 생략 ] ) 이때 주의해야할 점은 일정한 공간을 열 수에 맞춰 동일한 비율의.. 2022. 3. 17.
반응형