이 튜토리얼에서는 안드로이드에서 AlarmManager를 사용해 특정 시간에 알람을 설정하고, 하루에 한 번씩 반복 실행되는 알람을 구현하는 방법을 단계별로 살펴봅니다. 사용자가 TimePicker로 원하는 시간을 선택하면 AlarmManager가 해당 시각에 BroadcastReceiver를 통해 알람 이벤트를 발생시키는 구조입니다.AlarmManager란?AlarmManager는 앱이 실행 중이 아니더라도 지정된 시점에 코드를 실행할 수 있도록 해주는 안드로이드 시스템 서비스입니다. 알람 앱, 주기적인 데이터 동기화, 리마인더
개요 이 글에서는 안드로이드에서 두 번째 액티비티(서브 액티비티)의 연산 결과를 메인 액티비티로 되돌려 보내는 방법을 실전 예제와 함께 단계별로 살펴봅니다. 사용자가 숫자 두 개를 입력하면 두 번째 액티비티에서 덧셈 또는 뺄셈을 수행하고, 그 결과가 다시 메인 화면에 표시되는 구조입니다. 핵심 API 정리 액티비티 사이에서 결과 데이터를 주고받으려면 다음 세 가지 메서드가 핵심입니다. - startActivityForResult(intent, requestCode) : 결과를 기대하며 새 액티비티를 실행합니다. - setResul
이 튜토리얼에서는 안드로이드 앱이 실행되는 도중(런타임)에 TextView의 스타일을 동적으로 변경하는 방법을 단계별로 알아봅니다. 화면의 텍스트를 탭하면 글자 스타일과 배경색이 전환되는 간단한 예제를 직접 만들어 보겠습니다. 1단계 — 새 프로젝트 생성 Android Studio에서 File → New Project 메뉴로 이동한 뒤, 새 프로젝트 생성에 필요한 정보를 모두 입력하여 프로젝트를 만듭니다. 2단계 — 레이아웃 파일 작성 (activity_main.xml) res/layout/activity_main.xml 파일에 아
이 튜토리얼은 Android 앱에서 사용자가 화면을 길게 누르는 롱 프레스(Long Press) 동작을 감지하는 방법을 단계별로 설명합니다. 핵심은 GestureDetector 클래스인데, 이를 활용하면 복잡한 터치 이벤트 처리 로직 없이도 손쉽게 제스처를 인식할 수 있습니다.핵심 개념: GestureDetector와 onLongPress()GestureDetector는 탭, 더블 탭, 플링, 롱 프레스 같은 다양한 제스처를 해석해 주는 헬퍼 클래스입니다. SimpleOnGestureListener를 상속한 리스너를 등록하면, 사용
Android 앱을 개발하다 보면 ScrollView가 맨 아래(끝)까지 스크롤되었는지, 혹은 맨 위로 올라갔는지를 감지해야 하는 경우가 자주 있습니다. 예를 들어 무한 스크롤로 다음 페이지 데이터를 불러오거나, 스크롤이 끝에 도달했을 때 특정 UI를 표시하는 기능 등이 대표적입니다.이 글에서는 OnScrollChangedListener를 활용해 ScrollView의 최상단과 최하단 도달 여부를 감지하는 방법을 단계별로 살펴보겠습니다.동작 원리핵심 로직은 간단합니다. ScrollView 내부의 마지막 자식 뷰(View)의 하단 좌표
안드로이드에서 배열로 스피너 만들기 이 튜토리얼에서는 안드로이드 앱에서 문자열 배열(String Array)을 활용해 스피너(Spinner)를 프로그래밍 방식으로 생성하고 화면에 표시하는 방법을 단계별로 살펴봅니다. 스피너는 사용자가 드롭다운 목록에서 항목을 선택할 수 있도록 해주는 대표적인 안드로이드 UI 컴포넌트입니다. 1단계 – 새 프로젝트 생성 Android Studio에서 새 프로젝트를 만듭니다. 상단 메뉴에서 File ⇒ New Project를 선택한 후, 프로젝트 생성에 필요한 정보를 모두 입력합니다. 2단계 – 레
이 튜토리얼에서는 Android 앱에서 런타임(실행 시점)에 권한 부여 여부를 확인하는 방법을 단계별로 살펴봅니다. Android 6.0(API 23) 이상에서는 카메라, 전화, 위치처럼 민감한 위험 권한(dangerous permissions)을 설치 시점이 아닌 실행 중에 사용자에게 직접 요청해야 하므로, 권한 확인과 결과 처리 로직을 올바르게 구현하는 것이 매우 중요합니다. 이번 예제에서는 Android 8.0(API 26)부터 도입된 ANSWER_PHONE_CALLS(전화 응답) 권한을 기준으로 설명합니다. 1단계 — 새 프
안드로이드 앱을 개발하다 보면 서버에서 데이터를 받아와 화면에 표시해야 하는 경우가 매우 많습니다. 이때 가장 널리 사용되는 데이터 형식이 바로 JSON입니다. 이 글에서는 구글이 제공하는 강력한 HTTP 통신 라이브러리인 Volley를 활용해 안드로이드 앱에서 JSON 데이터를 손쉽게 파싱하고 화면에 출력하는 방법을 단계별로 알아보겠습니다.Step 1 – 새 프로젝트 생성Android Studio를 실행하고 File → New Project 메뉴로 이동합니다. 새 프로젝트 생성에 필요한 모든 세부 정보(프로젝트 이름, 패키지명,
앱을 개발하다 보면 특정 작업을 즉시 실행하지 않고 몇 초 뒤에 실행해야 하는 경우가 자주 발생합니다. 예를 들어 스플래시 화면을 잠깐 보여준 뒤 다음 화면으로 넘어가거나, 일정 시간 후 알림(Toast)을 표시하는 상황이 대표적입니다.이번 튜토리얼에서는 안드로이드에서 Handler 클래스의 postDelayed() 메서드를 활용해 지정한 시간이 지난 후에 메서드를 호출하는 방법을 단계별로 살펴보겠습니다. 이 예제에서는 앱 실행 5초 후에 토스트(Toast) 메시지가 화면에 나타나도록 구현합니다.1단계: 새 프로젝트 생성Androi
안드로이드에서 버튼으로 홈 화면 이동하기 이 튜토리얼에서는 안드로이드 앱에서 버튼을 클릭하면 현재 앱을 백그라운드로 전환하고 기기의 홈 화면(런처 화면)으로 이동하는 방법을 단계별로 살펴봅니다. 핵심은 Intent.ACTION_MAIN 액션과 CATEGORY_HOME 카테고리를 조합한 인텐트를 실행하는 것입니다. 1단계: 새 프로젝트 생성 Android Studio에서 File ⇒ New Project 메뉴로 이동한 뒤, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다. 2단계: 레이아웃 작성 – activity_main.xm
이 튜토리얼에서는 안드로이드 기기에 설치된 애플리케이션 목록을 가져와 화면에 표시하는 방법을 단계별로 알아봅니다. PackageManager를 활용하면 사용자가 설치한 서드파티 앱과 시스템 앱 정보를 손쉽게 조회할 수 있습니다.1단계 — 안드로이드 스튜디오에서 새 프로젝트 생성Android Studio를 실행하고 File ⇒ New Project 메뉴로 이동한 후, 새 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 프로젝트를 만듭니다.2단계 — 레이아웃 파일 작성 (res/layout/activity_main.xml)앱 화면을
스마트폰이 재부팅된 후에도 특정 앱이 자동으로 실행되기를 원하신 적이 있으신가요? 이번 튜토리얼에서는 BroadcastReceiver를 활용해 안드로이드 기기가 부팅을 완료했을 때 애플리케이션을 자동으로 시작하는 방법을 단계별로 알아보겠습니다.구현 원리안드로이드는 부팅이 완료되면 시스템 전체에 ACTION_BOOT_COMPLETED 브로드캐스트를 발송합니다. 이 브로드캐스트를 수신하는 리시버를 앱에 등록하고, 수신 시점에 메인 액티비티를 실행하면 부팅 후 자동 실행이 가능합니다.1단계: 새 프로젝트 생성Android Studio에서
이 튜토리얼에서는 Android 기기가 부팅을 완료했을 때 앱의 서비스를 자동으로 시작하는 방법을 단계별로 알아봅니다. 이 기능은 백그라운드에서 지속적으로 작업을 수행해야 하는 앱(예: 알림, 모니터링, 동기화 서비스 등)에 매우 유용합니다.구현 개요부팅 완료 시 서비스를 실행하려면 BroadcastReceiver를 사용하여 시스템의 부팅 완료 브로드캐스트(BOOT_COMPLETED)를 수신하고, 이를 통해 서비스를 시작하는 구조로 만듭니다. 전체 흐름은 다음과 같습니다.부팅 완료 브로드캐스트를 수신하는 리시버 등록리시버가 서비스를
이 튜토리얼에서는 안드로이드 앱에서 ScrollView를 사용하여 화면을 스크롤할 수 있도록 만드는 방법을 알아봅니다. 화면에 표시해야 할 콘텐츠가 기기 화면보다 클 때 ScrollView를 사용하면 사용자가 손쉽게 위아래로 스크롤하며 전체 내용을 확인할 수 있습니다.1단계: 새 프로젝트 생성Android Studio를 실행하고 File → New Project 메뉴로 이동한 후, 새 프로젝트 생성에 필요한 모든 세부 정보를 입력하여 새 프로젝트를 만듭니다.2단계: 레이아웃 파일(activity_main.xml) 작성res/layo
이 튜토리얼에서는 안드로이드 앱에서 인터넷상의 URL로부터 비트맵(Bitmap) 이미지를 가져와 화면에 표시하는 방법을 단계별로 알아봅니다. 네트워크 작업은 메인 스레드에서 직접 수행할 수 없기 때문에 AsyncTask를 활용해 백그라운드에서 이미지를 다운로드하는 것이 핵심 포인트입니다. 1단계: 새 프로젝트 생성 안드로이드 스튜디오(Android Studio)를 실행하고 File ⇒ New Project 메뉴로 이동한 뒤, 필요한 정보를 모두 입력하여 새 프로젝트를 생성합니다. 2단계: 레이아웃 구성 res/layout/activ
안드로이드 앱을 개발하다 보면 화면이 실제로 배치된 이후에 뷰(View)의 실제 크기, 즉 너비와 높이를 알아야 하는 경우가 자주 있습니다. 하지만 onCreate() 메서드가 실행되는 시점에는 뷰가 아직 측정(measure)·배치(layout)되지 않았기 때문에 getWidth()나 getHeight()를 호출하면 0이 반환됩니다.이 예제에서는 ViewTreeObserver.OnGlobalLayoutListener를 활용해 레이아웃이 완료된 시점에 뷰의 크기를 정확하게 가져오는 방법을 단계별로 살펴보겠습니다.1단계 — 새 프로젝트
개요이 튜토리얼에서는 Android 앱에서 ImageView에 표시된 이미지를 버튼 클릭 한 번으로 지정한 각도만큼 회전시키는 방법을 알아봅니다. 핵심은 setRotation() 메서드로, 인자로 전달한 값(도 단위)만큼 뷰를 시계 방향으로 회전시킵니다.예를 들어 setRotation(90)을 호출하면 이미지가 시계 방향으로 90도 회전하며, 0~360도 사이의 값을 자유롭게 사용할 수 있습니다.1단계 — 새 프로젝트 생성Android Studio를 열고 File → New Project를 선택한 후, 필요한 정보를 모두 입력하여
Android 앱 인터넷 권한이란?Android 애플리케이션에서 인터넷에 접근하려면 android.permission.INTERNET 권한이 반드시 필요합니다. 이 권한은 매니페스트 파일(AndroidManifest.xml)에 아래와 같이 선언합니다.<uses-permission android:name=android.permission.INTERNET/>이 예제에서는 인터넷 권한을 사용하여 Android 앱에서 Google 웹사이트를 여는 방법을 단계별로 살펴보겠습니다.1단계: 새 프로젝트 생성Android Studio를
BroadcastReceiver(브로드캐스트 리시버)는 안드로이드 4대 컴포넌트 중 하나로, 시스템이나 다른 앱에서 발생하는 이벤트(WiFi 상태 변경, 배터리 부족, 부팅 완료 등)를 수신해 처리할 수 있게 해주는 핵심 요소입니다. 이 글에서는 WiFi 상태 변화를 감지하는 BroadcastReceiver를 구현하는 과정을 단계별로 살펴봅니다. 스위치(Switch)로 WiFi를 켜고 끄면 리시버가 상태 변화를 감지해 UI와 토스트 메시지를 갱신하는 예제입니다. 1단계: 새 프로젝트 생성 Android Studio에서 File &r
이 튜토리얼에서는 안드로이드 앱에서 날짜 선택기(DatePickerDialog)와 시간 선택기(TimePickerDialog)를 사용해 사용자가 원하는 날짜와 시간을 선택하도록 구현하는 방법을 단계별로 알아봅니다. 버튼을 누르면 먼저 날짜 선택 대화상자가 열리고, 날짜를 확정하면 이어서 시간 선택 대화상자가 나타난 뒤 최종 결과가 화면에 출력되는 흐름입니다.1단계 — 새 프로젝트 만들기안드로이드 스튜디오에서 File → New Project 메뉴로 이동한 뒤, 새 프로젝트 생성에 필요한 모든 항목을 입력하여 프로젝트를 만듭니다.2단