목록Android/Theory (8)
JuHyang
Coroutine 은 Andorid 의 비동기 프로그램잉 권장되는 솔루션입니다. 주목할 만한 기능은 다음과 같습니다. 경량 : 코루틴을 실행 중인 스레드를 차단하지 않는 정지를 지원하므로 단일 스레드에서 많은 코루틴을 실행할 수 있습니다. 정지는 많은 동시 작업을 지원하면서도 차단보다 메모리를 절약합니다. 메모리 누수 감소 : 구조화된 동시 실행을 사용하여 범위 내에서 작업을 실행합니다. 기본으로 제공되는 취소 지원 : 실행 중인 코루틴 계층 구조를 통해 자동으로 취소가 전달됩니다. Jetpack 통합 : 많은 Jetpack 라이브러리에 코루틴을 완전히 지원하는 확장 프로그램이 포함되어 있습니다. 일부 라이브러리는 구조화된 동시 실행에 사용할 수 있는 자체 코루틴 범위도 제공합니다. 종속 항목 정보 An..
사용자가 앱을 탐색하고, 앱에서 나가고, 다시 들어가면, 앱의 Activity 인스턴스는 수명 주기 안에서 서로 다른 상태를 통해 전환된다. Activity 클래스는 활동이 상태 변화(시스템이 Activity를 생성, 중단 또는 다시 시작하거나, Activity이 있는 프로세스를 종료하는 등)을 알아차릴 수 있는 여러 콜백을 제공한다. 수명 주기 콜백을 잘 구현하면 다음과 같은 문제가 발생하지 않도록 예방하는데 도움이 될 수 있다.사용자가 앱을 사용하는 도중에 전화가 걸려오거나 다른 앱으로 전환할 때 비정상 종료되는 문제사용자가 앱을 활발하게 사용하지 않는 경우 귀중한 시스템 리소스가 소비되는 문제사용자가 앱에서 나갔다가 나중에 돌아왔을 때 사용자의 진행 상태가 저장되지 않는 문제화면이 가로 방향과 세로..
Activity 클래스는 Android 앱의 중요한 구성요소로 활동이 실행되고 결합되는 방식은 플랫폼 애플리케이션 모델의 기본 요소이다. main() 메서드를 사용하여 앱을 실행하는 패러다임과 달리 Android 시스템은 수명 주기의 특정 단계에 해당하는 특정 콜백 메서드를 호출하여 Activity 인스턴스의 코드를 시작한다. Activity 개념 모바일 앱 환경은 사용자와 앱의 상호자굥이 항상 동일한 위치에서 시작되는 것이 아니라는 점에서 데스크톱 앱 환경과 다르다. 사용자는 항상 다르게 앱을 실행하게 된다. ex) 홈 화면에서 이메일 앱을 열면 이메일 목록이 표시될 수 있으나, 소셜 미디어 앱을 사용하고 있는 상태에서 이메일 앱을 실행하게 되면 이메일을 작성하기 위한 이메일 앱 화면으로 바로 이동할 ..
Activity ( Activity ) 액티비티는 사용자가 애플리케이션과 상호작용하는 단일 화면을 의미한다. 모든 안드로이드 애플리케이션은 액티비티로 구성되어 있다. 사용자와 상호작용을 담당하는 인터페이스라고 할 수 있다. 안드로이드 애플리케이션은 반드시 하나 이상의 액티비티를 포함하고 있다. 액티비티는 생명주기(Life cycle) 관련 메서드들을 재정의하여 원하는 기능들을 구현할 수 있다. ◆ 2개 이상의 액티비티를 동시에 Display 할 수 없다.◆ 반드시 애플리케이션에는 반드시 1개 이상의 액티비티가 있어야 한다. ◆ 액티비티 내에 Fragment를 추가하여 화면을 분할 시킬 수 있다. ◆ 1개 이상의 View 또는 ViewGroup을 포함한다. ◆ 인텐트(Intent) 를 통해 다른 애플리케이..
원본 : https://blog.yena.io/studynote/2019/03/16/Android-MVVM-AAC-1.html MVVM 패턴 ? 액티비티에 기능을 붙이다보면 액티비티가 무거워지거나 혹은 종속성이 너무 강해 테스트가 힘들고 유지보수가 어려워진다. 이런 고민 때문에 MVVM 패턴이 등장했다. MVVM은 View - ViewModle - Model 을 이용해 각각의 역할을 분리하여 가독성과 재사용성을 높인 디자인 패턴이다. MVC 와 MVVM 차이점 기존 MVC ( Model - View - Controller ) 구조에서는 액티비티가 컨트롤러의 역할을 했으며, 뷰와 연결되어 유저와 상호작용도 하고, 모델과 연결되어 데이터도 처리했다. 즉 뷰와 모델 사이에서 중재자 역할을 했다. MVVM 에서..
원본 :: https://developer.android.com/guide/topics/providers/content-provider-basics?hl=ko Content Provider 구조화된 데이터 세트의 엑세스를 관리합니다. 데이터를 캡슐화하여 데이터 보안을 정의하는데 필요한 메커니즘을 제공하기도 합니다. 한 프로세스의 데이터에 다른 프로세스에서 실행 중인 코드를 연결하는 표준 인터페이스 입니다. Content Provider 내의 데이터에 액세스하고자 하는 경우, 애플리케이션의 Context에 있는 ContentResolver 객체를 사용하여 클라이언트로서 제공자와 통신을 주고 받으면 됩니다. ContentResolver 객체가 제공자 객체와 통신하며, 이 객체는 ContentProvider ..
원본 링크 : https://blog.yena.io/studynote/2017/11/11/Android-Content-Provider.html Content Provider 앱과 앱 저장소 사이에서 데이터 접근을 쉽게 하도록 관리해주는 클래스. 왜 사용할까 ? 앱의 직접적인 코드 변경 없이 데이터 접근 / 변경 할 수 있도록 해줌. Loader 나 CursorAdapter 같은 클래스들도 사용하기 떄문 다른 사용자들이 앱에 접근, 사용, 수정할 권한을 준다 (안전 하게) Manifest 에서 권한을 부여해 주어야 한다. Content Resolver 폰 안에 여러 앱, 여러 프로바이더가 있기 때문에 이들을 관리하고 흐름을 통제, 앱이 접근하고자 하는 프로바이더 사이에서 중개자 역할. query (읽기),..
원본 : https://faith-developer.tistory.com/71 MVP 는 Model - View - Presenter 로 구성됩니다. MVP가 나오게 된 이유는 View와 Model을 완전히 분리해서 사용하기 위해서 입니다. MVP는 Model의 역할인 비즈니스 로직을 독립적으로 테스트할 수 있습니다. MVP패턴의 각 구성에 대해서 자세히 알아보겠습니다. MVP 패턴 구성 요소 MVP 모델은 Model - View - Presenter로 구성됩니다. 뷰 (View) 실제 view 에 대한 직접적인 접근을 담당합니다. 안드로이드에서는 액티비티 / 프래그먼트는 뷰의 일부로 정의합니다. View에서 발생하는 이벤트는 직접 핸들링 할 수 있으나 Presenter 에 위임하도록 합니다. 위임하는 ..