1. Android Jetpack 란 ? - 멋진 Android 앱을 만들기 위한 컴포넌트, 도구 및 지침 세트 - 기존의 지원 라이브러리와 아키텍처 컴포넌트를 하나로 모아서, 다음과 같은 네 가지 범주로 배열 - 기본 Android 플랫폼에 속하지 않는 "별도의" 라이브러리로서 제공 - Android Jetpack 프로젝트의 Section 중 하나인 Android Architecture Component -> AAC - 참고) 현재 구글에서 권장하는 pattern? MVVM 패턴 -> 참고 링크 -> 간단 설명? - MVVM 패턴이란? View - ViewModel - Model을 사용하여 각각의 역할을 분리하여 가독성과 재 사용성을 높인다. - MVVM의 장점? (1) View가 데이터를 실시간으로 ..
레이아웃 구조 최적화 목차 1. 레이아웃 계층 구조 최적화 2. 레이아웃 재사용 3.중첩 layout Performance 1. 레이아웃 계층 구조 최적화 중첩된 LinearLayout을 사용하게 되면 View 계층 구조가 굉장히 깊어지게 됨 그렇기 때문에 레이아웃을 조사하고 최적화 하는 방법이 필요함 (1) Layout Inspector(Hierachy View Android 3.1 미만만 가능) (2) 린트 Layout Inspector 1) App 실행 2) Layout Inspector 사용 -> 앱 레이아웃을 디자인 모형과 비교하고 앱의 확대 뷰 또는 3D 뷰를 표시하며 런타임에 앱 레이아웃의 세부정보를 검토 가능 Live Layout Inspector - UI에 관한 포괄적이고 유용한 정보를 ..
안드로이드 구성요소(4대 컴포넌트 - Activity, Service, 콘텐스 제공자, 방송 수신자) 가 실행되고 Application에 실행중인 다른 구성요소가 없으면 Android System은 실행스레드로 애플리케이션의 Linux 프로세스를 시작함 기본적으로 Application의 구성 요소는 같은 프로세스와 같은 스레드에서 실행됨. 일반적인 코딩 프로그램에는 Application와프로세스가 긴밀히 연결되어 있지만 Android의 경우 어플리케이션과 프로세스가 분리되어 있음. Context - Android 시스템에 의해 제공되는 추상클래스 --> Application, Service, Activity는 모두 Context를 상속받음 - Context를 잘못 사용하면 메모리 누수로 이어짐 - App..
FireBase Database란? - "NoSQL 클라우드 데이터베이스로 데이터를 저장하고 동기화하세요. 모든 클라이언트에서 실시간으로 데이터가 동기화되고 앱이 오프라인일 때도 데이터를 사용할 수 있습니다." - NoSQL이란? 정형화된 데이터뿐만 아니라 반정형화 비 정형화 데이터에 적합한 데이터 구조 , json 형태를 기반으로하고 있음 - 채팅도 마찬가지로 {"key" : "value" } 형식 - 간단하게 Chatting App을 만들 수 있음 - firebase.google.com/docs/database?hl=ko Android에서 설치 및 설정 - firebase.google.com/docs/database/android/start?hl=ko - FireBase를 어떻게 써야 하는지 알 수 ..
FireBase 파이어베이스(Firebase, Inc)사가 개발하고 2014년 구글에 인수된 모바일 및 웹 애플리케이션 개발 플랫폼 FireBase 사용방법 1. 프로젝트 추가 -> 이름을 설정하고 프로젝트를 만든다 2. 다음과 같이 만들어진다. - ios / Android / Web - Android 경우 설명 - Android에서 package 이름을 확인한다 1. Android에서 package 이름을 직접 넣기 2. 구성파일 다운로드 google service.json file을 app 단위 폴더에 넣어준다. 3. FireSDK 추가 프로젝트 수준의 build.gradle과 앱 수준의 build.gradle을 나누어 추가한다. 4. 다음 단계 확인...누르기
들어가기전에(다시보기) 안드로이드 어플리케이션에서 시스템은 하나의 실행 스레드로 실행된다. 이 하나의 실행스레드가 바로 메인스레드(Main Thread) 이다. 이 메인 스레드는 화면 구성에 관한 역할을 담당하기 때문에 UI Thread라고도 한다. 이때 반응성 좋은 어플리케이션을 만들기 위해서는 Main Thread가 아닌 별도의 스레드에서 동작하도록 구현하면 된다. 즉 정리하면 시간이 걸리는 작업은 UI 스레드에서 분리하고, UI 스레드가 아닌 스레드는 UI 구성요소를 조작하지 않아야 한다. Main Thread = UI Thread UI 구성하려면 Main Thread에서 동작하도록 해야 한다. ex) setText() ,,, 해결방법 1. runOnUIThread(Runnable) 2. View...
Intent 어떤 Component에서 다른 Component를 호출하기 위해서 전달하는 비동기 메시지 공식문서 => 메시지 객체, 다른 앱 구성요소로부터 작업을 요청하는데 사용 , 즉 통신을 촉진하는데 사용 (1) Activity 시작 (2) Service 시작 - Service ? 사용자 인터페이스 없이 백그라운드에서 작업을 수행하는 구성요소 - ex) 파일 다운로드 (서비스 시작, 일회성 작업) -> Intent사용하여 startService () 전달 - ex) 서비스 바인딩 -> Intent 사용하여 bindService() 전달 (3) BroadCast 전달 모든 앱이 수신할 수 있는 메시지 sendBroadcast() or sendOrderedBoradCast() 전달 Intent 객체? C..
안드로이드 4대 컴포넌트(구성요소) - Activity, Service, Boradcast Receiver , Content Provider - 4가지는 기본 컴포넌트 - 안드로이드 어플리케이션 내에서 독자적으로 작업을 실행할 있는 일종의 진입점 (1) Activity - 사용자 인터페이스 화면을 구성하는 컴포넌트 - Activity내에는 Fragment 추가하여 화면 분할 가능 (2) Service - 백그라운드에서 실행되는 컴포넌트, 시각적인 사용자 인터페이스를 가지지 않음 - 한번 시작된 서비스는 Applcation이 종료되도 Background에서 돌아감 - 모든 Service는 Service 클래스를 상속받아서 사용 - 네트워크를 통해 데이터를 가져올 수 있음 * Service 이용하여 Comp..
Activity - 사용자가 직접 보고 화면을 담당하는 컴포넌트 - 레이아웃을 화면에 그리기 위해서는 액티비티를 통해서만 가능 Activity Start(Acivity 생명주기 메소드) onCreate() Activity가 처음 생성되엇을 때 호출, 일반적인 수행 실행 항상 뒤에는 onStart가 따라옴 onRestart() Activity가 중단되었다가 다시 시작되기 직전에 호출 onStart() Activity가 사용자에게 보여지기 직전에 호출 , Activity가 숨겨지면 onStop이 따라옴 onResume() Activity가 화면에 보여지고, 사용자와 상호작용하기 직전에 호출됨 , 항상 뒤에는 onPause가 따라옴 onPause() 다른 Activity로 넘어가거나, 뒤로가기를 누르거나, 현..