안드로이드 앱 개발 공부/안드로이드 기본(노션 이동)17 [Android] JetPack https://developer.android.com/jetpack/androidx/explorer?hl=ko 유형별 Jetpack 라이브러리 살펴보기 | Android 개발자 | Android Developers 유형별 Jetpack 라이브러리 살펴보기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 카테고리 선택: 모두 인기 휴대전화 이상 데이터 그래픽 수명 주기 미디 developer.android.com 구글에서 발표한 라이브러리와 도구 모음집 개발을 빠르고 쉽게 할 수 있도록 도와주는 라이브러리 모음이다. AndroidX라는 이름의 라이브러리로 사용되어 진다. jetpack Compose Jetpack Compose UI 앱 개발 도구 키트 - Android 개발자.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [Android] 디자인 패턴 (MVC, MVP, MVVM) 소프트웨어 공학에서 특정 문맥에 공통적으로 발생하는 문제에 대해 재사용이 가능하게 만든 해결책 코드를 효율적으로 작성하기 위한 방법론 궁극적으로 건강한 소프트웨어 개발을 위한 방법론 MVC, MVP, MVVM 💡 MVC (Model View Presenter) View 사용자에게 보이는 UI를 나타낸다. Model로부터 Data를 박아 사용자에게 보여준다. 애플리케이션에서 사용되는 Data를 처리한다. View에 의존적이지 않기 때문에 재사용이 가능하다. Controller 사용자의 입력(action)을 받고 처리한다. 주로 Activity나 Fragment로 표현된다. Model의 Data변화에 따라 View를 선택한다. 동작 사용자의 Action이 Controller에 들어온다. Controller는.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [Android] List View와 Recycler View의 차이 정리 RecyclerView ListView ViewHolder ViewHolder 패턴 이용 ViewHolder 패턴 이용 필요 x Item Layout 가로/세로/지그재그 모두 지원 세로만 지원 Item Animation 아이템 애니메이션 처리 클래스 O 아이템 애니메이션 처리 클래스 x Adapter 데이터 제공을 위해 직접 구현 다양한 소스에 대한 어댑터 존재 Decoration 많은 구분선 설정 쉽게 구분 가능 Click Event 개별 터치 이벤트 관리O, 클릭 처리 기능 X 이벤트에 바인딩 하기 위한 인터페이스 존재 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 16. [Android] Rest Api 안드로이드에서 HTTP통신을 서버와 통신을 할 때 AsyncTaksk(비동기)로 통신을 해야 한다. 왜냐하면 안드로이드의 메인 스레드는 전부 UI관련 처리를 위해 사용되기 때문이다. Rest 아키텍처의 제약 조건을 준수하는 애플리케이션 프로그래밍 인터페이스 서버와 클라이언트 구조 Socket 통신과는 다르게 양방향이 아닌 단방향 통신 Request와 Response로 이루어짐 Get, Post, Put, Delete등의 메서드를 사용 아래 클래스나 라이브러리를 사용해 통신을 구현 OkHttp Retrofit HttpURLConnection/HttpsURLConnection HttpURLConnection/HttpsURLConnection Post와 Get 두가지 방식 Post : Post에서 URI를 통.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] LayoutInflater 란? 💡 LayoutInflater XML에 미리 정의해 둔 틀을 실제 메모리에 올려주는 역할을 한다. XML에 정의된 Resource를 VIew 객체로 변환해 주는 역할을 한다. 절대 직접 사용하지 않는다. 대신 Activity.getLayoutInflater()또는 Context#getSystemService를 사용하여 현재 콘텍스트에 이미 연결되어 있고 실행 중인 장치에 대해 올바르게 구성된 표준 LayoutInflater 인스턴스를 검색한다. 이 클래스는 스레드로쿠터 안전하지 않으며 지정된 인스턴스는 단일 스레드에서만 액세스 해야 한다. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] Rx (RxJava, RxAndroid,...)란? 반응형 프로그래밍 데이터를 관찰할 수 있고, 데이터 스트림으로 처리한다. ReactiveX 관찰 가능한(Observable) 스트림을 사용하는 비동기 프로그래밍을 위한 API이다. RxJava ReactiveX(Reactive Extensions)를 Java로 구현한 라이브러리 RxAndroid RxJava에 안드로이드용 스케쥴러 등 몇 가지 클래스를 추가해 안드로이드 개발을 쉽게 해주는 라이브러리이다. RxKotlin RxJava에 Kotlin의 extension function을 이용하여 사용하기 편리하도록 만든 경량 라이브러리이다. RX = Observable + Observers + Schedulers Observable: Observable은 데이터 스트림입니다. Observable은 하나의 스.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] Context 응용 프로그램 환경에 대한 전역 정보에 대한 인터페이스. Android 시스템에서 구현을 제공하는 추상클래스. Context가 없으면 액티비티를 시작할 수도, 브로드캐스트를 발생시킬 수도, 서비스를 시작할 수도 없다. 리소스에 접근할 때도 Context를 통해서만 가능하다. Context는 여러 컴포넌트의 상위 클래스이다. context 직업 상속한 것 : ContextWrapper, MockContext 쉽게 말하면 애플리케이션의 현재 상태를 갖고 있다. 시스템이 관리하고 있는 액티비티, 어플리케이션의 정보를 얻기 위해 사용한다. 안드로이드 시스템 서비스에서 제공하는 api(리소스, DB, Shared Preferences 등)에 접근하기 위해 사용한다. 예> getResources() Activity.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 7. [Android] Dialog, Toast, Snackbar 💡 Dialogs 사용자에게 결정을 내리거나 추가 정보를 입력하라는 메시지를 표시하는 작은 창 대화 상자는 화면을 채우지 않고 일반적으로 사용자가 진행하기 전에 조치를 취해야 하는 모달 이벤트에 사용된다. ialog 클래스는 dialogs의 기본 클래스이지만 Dialog를 직접 인스턴스화하지 않고, AlertDialog/[DatePickerDialog] or [TimePickerDialog](이 들 중 하나를 사용해야 한다. AlertDialog⇒제목, 최대 3개의 버튼, 선택 가능한 항목 목록 또는 사용자 정의 레이아웃을 표시할 수 있는 대화 상자 DatePickerDialog/TimePickerDialog⇒사용자가 날짜 또는 시간을 선택할 수 있는 미리 정의된 UI가 있는 대화 상자 💡 Toast 작.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. [Android] ANR ANR | Android 개발자 | Android Developers ANR | Android 개발자 | Android Developers ANR 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 앱의 UI 스레드가 너무 오랫동안 차단되면 'ANR(애플리케이션 응답 없음)' 오류가 트리거됩니다. 앱이 developer.android.com 💡 ANR : Application Not Responding 안드로이드 앱이 UI 스레드가 너무 오랫동안 차단되면 ANR오류가 나타난다. 다음 조건 중 하나가 발생하면 앱과 관련한 ANR이 트리거된다. 입력 전달 타임아웃: 앱이 입력 이벤트(예: 키 누름 또는 화면 터치)에 5초 이내에 응답하지 않은 경우 서비스 실행: 앱에.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. [Android] Main Thread(UI Thread ) 와 Worker Thread UI는 멀티스레드에서만 가능하도록 설계되어 있다. 오래 걸리는 작업은 worker Thread에서! public void onClick(View v) { new Thread(new Runnable() { public void run() { Bitmap b = loadImageFromNetwork(""); mImageView.setImageBitmap(b); // 여기서 오류 발생!! } }).start(); } →해결방법 public void onClick(View v) { new Thread(new Runnable() { public void run() { final Bitmap bitmap = loadImageFromNetwork(""); mImageView.post(new Runnable() { p.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. [Android] Thread 와 Process의 차이점 A. 프로세스는 메모리 상에서 실행 중인 프로그램을 말하며, 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다. 프로세스는 최소 하나의 스레드를 보유하고 있다. 프로세스는 자신만의 고유한 공간과 자원을 할당받아 사용한다. 스레드는 다른 스레드와 공간과 자원을 공유하면서 사용한다. Q. 프로세스의 문제점은? 프로세스 생성에 큰 오버헤드가 있다. ( 프로세스를 생성할 때 많은 시간이 소요됨 0) 프로세스 콘텍스트 스위칭의 비효율성, 오버헤드가 큼 프로세스 사이에 통신이 어렵다는 점 (IPC사용해야 함) Q. 스레드의 출현 목적은? 프로세스보다 크기가 작은 실행 단위 필요 프로세스의 생성 및 소멸에 따른 오버헤드 감소 빠른 콘텍스트 스위칭 프로세스들의 통신 시간, 방법 어려움 해소 Q. 스레드 주소공간.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 6. Thread 와 Handler 💡 UI 작업은 Main Thread에서 처리해야 한다?! → 성능을 위해 멀티스레드를 많이 사용하지만 UI를 업데이트하는 데는 단일 스레드 모델이 적용된다. 멀티 스레드로 UI를 업데이트하면 동일한 UI 자원을 사용할 때 교착 상태(deadlock), 경합 상태(race condition) 등 여러 문제가 발생할 수 있어서 UI 업데이트를 메인 스레드에서만 허용한다. 앱 프로세스가 시작되면 메인 스레드가 생성된다. 컴포넌트의 생명주기 메서드와 그 안의 메서드 호출은 기본적으로 메인 스레드에서 실행된다. 메인 스레드는 UI를 변경할 수 있는 유일한 스레드이기 때문에 메인 스레드를 UI 스레드로 부르기도 한다. 💡 Thread(스레드) 동시 작업을 위한 하나의 실행 단위 앱을 실행하면 앱의 기본 실행을 담.. 안드로이드 앱 개발 공부/안드로이드 기본(노션 이동) 2023. 3. 4. 이전 1 2 다음