본문 바로가기

분류 전체보기

(64)
[RxJava] Hello RxJava2! 개발환경은 intelliJ를 사용했다. RxJava를 사용하기 위해서 gradle 파일에 RxJava 라이브러리를 implementation해줘야한다. dependencies { implementation "io.reactivex.rxjava2:rxjava:2.1.3" testCompile group: 'junit', name: 'junit', version: '4.12' } 먼저! Hello RxJava2라는 문자열을 출력해보자! 전체코드는 아래와 같다. [FirstExample.java] import io.reactivex.Observable; public class FirstExample { public void emit(){ Observable.just("Hello", "RxJava 2!!") ...
[RxJava] 리액티브 프로그래밍 소개 회사에서 진행하는 프로젝트를 계기로, RxJava를 공부하려고 RxJava 프로그래밍 - 한빛 미디어 책을 구입했다. 입문자용이라고 알지만, 그래도 내용이 어려운것 같다. 차근차근 공부하면서 포스팅하겠다. 리액티브 프로그래밍이란? 리액티브 프로그래밍은 데이터 흐름과 전달에 관한 프로그래밍 패러다임이다. 기존의 명령형(imprerative)프로그래밍은 주로 컴퓨터 하드웨어를 대상으로 프로그래머가 작성한 코드가 정해진 절차에 따라 순서대로 실행된다. 그러나, 리액티브 프로그래밍은 데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트되는 방식이다. 예를들어 스프레드시트를 말할 수 있다. 각셀에 값을 넣어서 원하는 값을 계산한다. 1월부터 12월까지의 매출의 합을 구하려고 한다. ..
[안드로이드 기본] 멀티 터치를 감지하는 방법 스마트폰 앱을 보면, 두손가락으로 줌인을 하거나 줌아웃을 하는 경우가 있다. 또한, 한손가락 뿐만아니라 여러손가락도 사용을 할 경우도 발생한다. 이때 포인터를 가져와서 작업해야하는데, 멀티 포인터를 가져오기 위해 가장 기본적인 멀티 터치를 감지하는 방법에 대해서 알아보려고한다. 코드 구현 진행순서는 1. 텍스트 뷰가 두개 있는 activity_main.xml을 하나 만든다. (터치 했을 때 각 포인터의 X, Y의 값이 텍스트뷰에 보여줄것이다.) 2. 멀티 터치를 좌표값을 받아 올수 있는 터치 이벤트를 오버라이드 하는 MainActivity.kt를 만든다. 3. 포인터 값을 두개의 텍스트에 setText() 하여 UI로 나타낸다. 먼저 activity_main.xml을 만든다. [activity_main...
[안드로이드 기본] 기본 다이얼로그 띄우기 다이얼로그는 앱 개발을 하면서 정말 많이 사용한다. 지금은 비록 기본 다이얼로그를 띄우는 작업이지만, 다이얼로그 자체를 커스터마이징해 원하는 디자인으로 만들고, 버튼의 갯수도 지정도 가능하게 만들 수 있다. 간단한 정보를 몇초간 띄워주는 토스트(Toast)와는 다르기에 알아두면 도움이 될것이다. 기본적으로 다이얼로그는 타이틀과 메시지 그리고 버튼으로 구성된다. 다이얼로그의 종류는 AlertDialog, DatePickerDialog, PreogressDialog, TimePickerDialog 등이 있는데 아래 예제에서는 AlertDialog를 가지고 구현할것이다. AlertDialog 클래스의 메소드는 아래와 같이 정리할 수 있다. AlertDialog create() AlertDialog를 생성한다...
[안드로이드 기본] 터치 이벤트 순서 알아보기 안드로이드 사용자 인터페이스를 보면, 액티비티 위에 다양한 뷰들이 올라가는 방식이다. 그러다보면 이벤트가 중첩되어서 처리되는 경우가 있다. 예를 들어서, 어떤 액티비티에 터치 이벤트가 설정되어 있는데 그 위에 올라가 있는 뷰에도 터치 이벤트가 설정되어 있다면 어떻게 될까??? 그리고 그 뷰에 추가적으로 터치 리스너도 추가 되어 있다면 어떻게 동작할까? 무엇이 먼저 처리되지?? 터치 이벤트를 처리하고나서 해당 이벤트를 전달하고 싶지 않을 때 어떻게 해야할까?? 엑티비티위에 버튼이 올라간다고 하면, 그 버튼을 클릭했을 때 실질적으로는 버튼도 터치가 되지만, 그 해당 엑티비티도 선택이된다. 그렇다는 것은 각각 가지고 있는 터치 이벤트들이 전달 전달되어 실행된다는 것이다. 먼저 아래의 예제는 1. 엑티비티에 터..
[안드로이드 기본] 클릭 이벤트 붙이는 방법 일단 클릭하면 대표적으로 버튼을 떠올릴 수 있을 것이다. 그리고 우리는 그 버튼을 클릭했을 때 무언가 이벤트를 발생시키고 싶어한다. 버튼에 클릭 이벤트를 붙이는 방법에는 어떤것들이 있을까? 방법은 총 3가지로 나눌 수 있으며 아래와 같다. 1. 익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법 2. 버튼 리스너를 액티비티에서 구현하고 이 리스너를 버튼에 설정하는 방법 3. 레이아웃 XML 파일의 Button 속성에 onClick 요소를 추가하는 방법 [익명 클래스를 사용해서 버튼에 리스너 객체를 설정하는 방법] package com.practice.android_basic_booster_course import androidx.appcompat.app.AppCompatActivity import..
[처방해줌 프로젝트 후기] webview에서 키보드 상태에 따라서 이벤트 처리하기 -1 (KeyboardVisibilityUtils 만들어서 해보기) 프로젝트를 진행하면서 키보드 문제에 스트레스를 받아왔기에 후기를 남겨본다. 일단, 나의 레이아웃 구조는 이렇다. 나는 웹뷰 내의 인풋 박스가 포커스를 받을 때, 즉, 소프트 키보드가 올라왔을때 하단의 button을 Gone 처리를 하고 싶었다. 그리고, 키보드가 내려갔을 때는 Visible 처리를 하고 싶었다. 바로 든 생각은 키보드에 의해서 화면이 Resize가 되면서, 기존 크기와 비교하여 키보드가 올라왔는지, 내려갔는지 판별후 콜백 메소드를 호출해주는 방식이었다. 그렇게 나는 KeyboardVisibilityUtils 클래스를 만들었다. 먼저 KeyboardVisibilityUtils의 람다 호출 메소드 onShowKeyboard와 onHideKeyboard가 호출될 때, 엑티비티로 호출해줄 인터페..
[안드로이드 기본] 액티비티와 주요 구성 요소 안드로이드에서 가장 중요한 4대 컴포넌트는 액티비티, 서비스, 브로드캐스트 리시버, 콘텐트 프로바이더이다. 그리고 그외의 인텐트, 인텐트 필터, 노티피케이션, 프래그먼트가 존재한다. 먼저 액티비티(Activity)는 사용자 인터페이스 화면을 구성하는 컴포넌트이다. 다양한 위젯들이 화면안에 구성이되고, 사용자에게 시각적으로 보여지게 된다. 서비스(Service)는 백그라운드에서 실행되는 컴포넌트이며, 백그라운드에서 실행되기때문에, 시각적인 사용자 인터페이스를 액티비티와 다르게 가지지 않는다. 인텐트(Intent)는 앱을 개발하다보면 데이터를 주고 받고 싶은 경우가 있다. 이때 인텐트를 사용하여 데이터를 주고 받게 되는데,사용되는 것이 인텐트이다. 액션도 넣을 수 있고, 플래그도 넣을 수도 있다. 메시지라고..