안드로이드 7

[Android] 터치 이벤트를 처리해보자

터치 이벤트 터치 이벤트는 설명할 것도 없이 우리가 아는 터치 이벤트이다. 손가락으로 화면을 누르거나 누른 채로 움직이면 그에 맞는 동작에 맞는 처리를 하는 것을 터치 이벤트라고 한다. 터치 이벤트를 처리하려면 특정한 함수가 필요하다. 터치 이벤트는 onTouchEvent함수를 사용하여 처리할 수 있다. 원하는 동작을 할 수 있도록 함수를 override한다. MotionEvent.ACTION_DOWN은 화면을 누르는 이벤트가 발생하면 작동한다. ACTION_UP은 화면에서 손을 때면 발생한다. 터치 좌표 표시하기 터치 이벤트는 터치 인식 뿐만 아니라 어느 지점을 터치했는지도 알 수 있다. 터치 좌표는 event.x, event.rawX로 얻을 수 있다. 여기서 x와 rawX의 차이는 x는 뷰 내부에서의..

안드로이드 2022.08.05

안드로이드 로드맵

어떤 분야로 나아갈 것인지 많은 고민을 하며 이것 저것을 해봤지만 마땅히 이렇다 할 결론이 나지 않았다. 그러던 중 안드로이드가 개발 환경이 어렵지도 않고 접근하기 좋다고 생각했다. 또한 간편한 방법으로 실제 서비스를 해볼 수 있을 것이라는 생각에 안드로이드 공부는 어떻게 하는지 찾다가 우연히 안드로이드 로드맵에 관한 내용을 찾았다. 아래는 발표 PPT 자료이다. 영상 링크 밑에도 있지만 혹시나 해서 첨부한다. TECH CONCERT: MOBILE 2019 - 안드로이드 개발자 로드맵 NAVER Engineering | 내용 네이버 안드로이드 개발자 3년차가 되는 과정에서 졸업생은 무엇을 준비하고, 어떤 걸 공부해야 하는지 키워드와 노하우를 공유합니다. tv.naver.com [TECHCON 2019: ..

안드로이드 2022.07.15

chronometer에 대한 궁금증

chronometer를 사용할 때 시간을 세팅하려면 chronometer.base를 사용하게 되는데 이때 왜 setting 값을SystemClock.elapsedRealtime으로 하는지 궁금했다. 그래서 처음 시작할 때 base 세팅값을 0으로 하고 실행해보니 부팅을 한 시점으로부터 경과된 시간이 나왔다. 즉 chronometer가 시간을 나타낼 때에는 부팅 경과 시간을 기준으로 나타낸다는 것을 알았다. 그리고 부팅 시간에 양수를 더하면 그만큼 마이너스된 시간을 표시해주고 음수를 더하면 그만큼 플러스된 시간을 보여준다. 시간을 멈췄다가 다시 시작할 때 멈춘 시점부터 시간을 시작하고 싶다면 SystemClock.elapsedRealtime에다 측정된 시간의 음수값을 더해주면 된다. 만약 2초에서 멈췄다가..

안드로이드 2022.07.13

앱을 구성하는 파일을 알아보자

앱은 기본적으로 하나의 앱에 하나의 모듈이 들어가 있는 형태로 구성된다. 예를 들면 내가 Hello world를 찍어내는 앱을 만들면 Hello world를 찍는 것이 하나의 모듈이 되는 것이다. 하지만 앱이 항상 하나의 모듈을 가지는 것은 아니다. 앱에는 여러 개의 모듈이 들어갈 수 있다. 그래들 파일 그래들 파일은 우리가 프로그램을 만들기 전에 기본적인 설정을 하는 파일이다. Hello world를 찍어내는 프로그램을 만들면 아마 2개의 그래들 파일이 나타날 것이다. 그 중 Module의 그래들 파일을 알아볼 것이다. 모듈의 그래들 파일을 들어가면 plugin부터 dependencies까지 볼 수 있다. plugin 플러그인이란 건 쉽게 말해서 우리가 만들 프로그램과 상호작용을 하는 다른 프로그램이다..

안드로이드 2022.01.31

안드로이드 앱 개발의 특징

컴포넌트를 기반으로 한 개발 컴포넌트(component): 애플리케이션의 구성 요소. 안드로이드에서는 클래스로 컴포넌트를 개발한다. 컴포넌트 클래스와 일반 클래스의 차이 생명 주기를 개발자 코드가 관리한다면 일반 클래스이다.(개발자가 임의의 목적으로 만든 클래스) 생명 주기를 안드로이드 시스템이 관리한다면 컴포넌트 클래스이다. 컴포넌트의 종류 액티비티: 화면을 구성하는 컴포넌트. 액티비티를 통해 화면을 출력한다. 서비스: 백그라운드 작업을 하는 컴포넌트. 화면 출력 기능은 없지만 백그라운드에서 장시간 작업을 할 때 사용한다. 콘텐츠 프로바이더: 앱의 데이터를 공유하는 컴포넌트. 카카오톡 앱에서 프로필 사진을 접근할 때 콘텐츠 프로바이더를 통해 사진 데이터에 접근할 수 있다. 브로드캐스트 리시버: 시스템 ..

안드로이드 2022.01.27

안드로이드란?

안드로이드란? 안드로이드: 리눅스 커널을 기반으로 구글에서 제작한 모바일 운영체제 안드로이드의 특징 안드로이드는 공개 운영체제인 리눅스를 기반으로 한다. 안드로이드 앱은 자바나 코틀린 언어를 이용한다. (구글이 코틀린을 언어로 지정. 자바도 사용은 가능함) 안드로이드 운영체제의 주요 부분과 라이브러리, 구글에서 만든 앱 등의 코드는 대부분 공개되어 있다. 안드로이드 스마트폰은 구글을 제외한 다른 제조업체도 만들 수 있다. 안드로이드 앱은 구글스토어, 다른 앱스토어, 직접 배포등의 다양한 방법으로 배포할 수 있다. 모바일에 탑재된 기본 앱과 개발자 앱은 같은 방식으로 동작(안드로이드 플랫폼에서는 모든 응용 프로그램은 평등하다는 사상 반영) 안드로이드 운영체제의 구조 리눅스 커널(Linux kernel): ..

안드로이드 2022.01.27

안드로이드 프로젝트 생성

Name: 프로젝트명 Package name: 패키지 네임은 구글스토어와 같은 앱스토어에 앱을 등록할 때 사용하는 식별자로 모바일로 다운받을 때도 같은 이름의 패키지 네임이 있으면 다운을 받을 수 없다. 보통 도메인을 역순으로 입력하고 끝에 프로젝트명을 붙이는 형태로 작성하게 된다. Save location: 프로젝트의 파일들이 저장되는 루트 디렉터리이다. Language: 안드로이드 앱 개발시 사용할 언어이다. 언어는 기본값일 뿐 언어가 kotlin이라고 java로 개발할 수 있다. Minimun SDK: 여기서 지정한 버전 이상의 기기에서만 작동이 가능하다. 프로젝트를 생성하고 나면 오른쪽 위에 빨간 네모같은 아이콘이 있다. SDK manager icon인데 저 아이콘을 클릭하면 SDK버전을 변경할 ..

안드로이드 2022.01.27