액티비티간 데이터 전달 : Intent와 startActivityForResult()

다른 액티비티로 데이터 전달하기 데이터를 전달하는 방향에 따라 전달방법을 두가지로 나눌 수 있습니다. A Activity에서 B Activity를 호출과 함께 Data 전달 A Activity가 B Activity를 호출한 뒤, B Activity를 종료하며 결과값을 A액티비티로 데이터 전달 다른 액티비티로 데이터 전달하기 사용자의 텍스트 입력을 받을 수 있는 InputActivity가 있다고 가정한다면 다음과 같이 입력한 더보기…

액티비티의 시작과 종료:startActivity() and finish()

액티비티의 시작 다른 액티비티를 시작하려면 Context.startActivity(Intent) 를 이용하면 됩니다. 파라미터로 Intent라는 것이 필요합니다. Intent란? Intent는 컴포넌트간의 런타임 바인딩을 제공하는 객체입니다. Intent는 작업의도를 나타내며 intent객체를 통해 다른 컴포넌트를 실행하고, 메시지를 전달하는 것들이 가능합니다. 먼저 다른 액티비티를 실행하려면 액티비티부터 만들어야겠죠? 프로젝트 구조에서 최상위에서 마우스 우클릭을 하여 빈 액티비티를 생성합니다. 저는 SecondActivity라고 명명 했습니다. 더보기…

액티비티의 생명주기(Lifecycle of Activity)

액티비티의 생명주기 함수는 입력을 받아 출력을 하고, 프로그램은 실행을 하면 끝이있듯이 액티비티 또한 생성부터 소멸까지 생명주기(Lifecycle)가 존재 합니다.  Activity 클래스는 생명주기와 관련된 몇가지 콜백 메소드를 갖습니다. 이러한 콜백을 통해 개발자가 액티비티가 어떻게 동작할 것인지, 사용자가 이 액티비티를 떠난다면 어떻게 할것인지, 다른 화면으로 갔다가 다시 이 액티비티로 진입하면 어떻게 할것인지에 대한 더보기…

Parcelable과 Serializable 비교

Parcelable vs Serializable 종종 앱을 개발하다보면 액티비티와 같은 안드로이드 컴포넌트에 POJO같은 데이터를 전달해야 할 일이 있습니다. 액티비티 객체는 우리가 만들지 않고 안드로이드 시스템에서 관리하고 있으므로 컴포넌트로 데이터를 전달하기 위해서는 반드시 인텐트를 통해서 전달하게 됩니다. Serializable Serial(직렬의) + ~able(~가능한) Serializable(시리어라이저블)은 자바 표준 인터페이스 중 하나로 안드로이드 SDK에 포함되어있지 않습니다. 어쨌거나 전달하고자 더보기…

안드로이드 구성요소(4대 컴포넌트)

안드로이드 애플리케이션은 크게 4가지 요소로 구성됩니다. 액티비티(Activity) 액티비티는 UI가 있는 단일 화면을 나타냅니다. 예를 들어 이메일 앱이라면 새 이메일 목록을 표시하는 액티비티가 하나 있고, 이메일을 작성하는 액티비티가 또 하나, 그리고 이메일을 읽는 데 쓰는 액티비티가 또 하나 있을 수 있습니다. 여러 액티비티가 함께 작동하여 해당 이메일 앱에서 짜임새 있는 사용자 더보기…

글쓴이 Charlezz,

안드로이드의 구조

Android Architecture 안드로이드 구조는 위의 이미지와 같이 다섯계층의 구조로 이루어져 있습니다. 리눅스 커널 계층 네이티브 라이브러리 계층 안드로이드 런타임 계층 애플리케이션 프레임워크 계층 애플리케이션 계층 녹색으로 이루어진  계층은 C/C++로 작성되어있으며, 파란색 계층은 자바로 작성되어 가상머신상에서 동작하게 됩니다. 커널 계층(Kernel Layer) 안드로이드 계층 최하단에 위치 하며, 시스템전체의 중심역할을 합니다. 사용자나 개발자가 더보기…

글쓴이 Charlezz,

안드로이드 개발자가 되는 법

안드로이드 개발자가 되는 법 많은 분들이 앱개발을 취업을 하기위해 혹은 취미로 배우는데 무엇부터 시작해야하는지 묻습니다. 정답은 없지만 제 나름대로의 기준을 가지고 선행학습해야 할 내용들을 정리해봤습니다. 시간나는대로 차곡차곡 내용을 덧 붙여나갈 생각입니다. 개발자가 갖춰야할 기본 적인 지식 자료구조(Data Structure) 데이터 통신(Data Communication) 알고리즘(Algorithm) 소프트웨어 공학(Software Engineering) 안드로이드 앱 개발자가 되기 위한 더보기…

Android Studio 3.2 출시와 새로운 기능

Android Stuido 3.2 Released! Android Studio3.2가 드디어 정식 출시 되어 다운로드가 가능해졌습니다. 안드로이드 스튜디오 3.2는 Android 9 Pie와 App Bundle을 이용할 수 있습니다. 모든 개발자는 안드로이드 스튜디오 3.2 버전을 사용하여 애플리케이션 배포 방식을 App Bundle 방식으로 바꾸는 것을 추천합니다. App Bundle은 Google Play에 앱을 업로드할 때 작은 용량과 최적화된 환경으로 더보기…

안드로이드로 배우는 자바의 인터페이스 (콜백, 리스너, 옵저버)

Before diving into interface 초보 자바 개발자 분들의 단골로 하는 질문이 있습니다. “리스너(콜백)가 뭐에요?” 또는 “인터페이스가 뭔지 모르겠어요!!” 자바의 인터페이스에 대한 개념없이 리스너를 이해하려 하는것은 헤어나올 수 없는 늪에 빠진것과 같습니다. 초보자 분들을 위해 인터페이스의 개념도 알아보고 실제 용례도 알아보고자 이 포스팅을 작성합니다. What is Interface? 포스팅을 작성하기 위해 인터페이스에 더보기…

안드로이드에서 Dynamic Proxy 사용하기

Proxy란? 일반적으로 대리자/대리인을 의미하며, 자바에서는 타겟을 감싸서 타겟을 요청을 대신 받아주는 Wrapping Object를 뜻합니다. Proxy 패턴은 디자인 패턴의 일종으로 자바의 Reflect 패키지에 있는 Proxy를 이용하여 원래 객체의 변경 없이 기능을 특정 방식으로 제어 하는 구조를 제안합니다. Reflection(리플렉션)에 대해서 알아보려면 이전 포스트를 참고하시기 바랍니다. 프록시 패턴의 장점 목표 기능 수행 전/후에 더보기…