이번 강좌에서는 자바를 활용하여 간단한 할 일 목록(To-Do List) 앱을 개발하는 방법에 대해 알아보겠습니다. 안드로이드 애플리케이션 개발에 대한 기초 지식이 있는 분들을 대상으로 하며, 클래스, 리스트, 데이터베이스 등 여러 개념을 활용하는 방법을 배울 수 있습니다. 강좌가 끝나면 기본적인 할 일 목록 앱을 완성할 수 있을 것입니다.
1. 안드로이드 앱 개발 환경 설정
안드로이드 앱을 개발하기 위해서는 Android Studio라는 통합 개발 환경(IDE)을 설치해야 합니다. Android Studio는 구글이 공식적으로 지원하는 IDE로, 안드로이드 앱 개발에 최적화되어 있습니다. 다음은 개발 환경을 설정하는 기본 단계입니다:
- Android Studio 공식 웹사이트에 방문하여 최신 버전을 다운로드합니다.
- 다운로드한 파일을 실행하여 설치합니다.
- 설치가 완료되면 Android Studio를 실행합니다.
- SDK(Software Development Kit)를 설치합니다.
2. 프로젝트 생성
Android Studio에서 새로운 프로젝트를 생성하려면 다음 단계를 따르세요:
- Android Studio를 실행하고, “Start a new Android Studio project”를 선택합니다.
- “Empty Activity”를 선택하고 “Next”를 클릭합니다.
- 프로젝트 이름을 지정하고, 패키지 이름, 저장 위치 등을 설정합니다. 언어는 “Java”를 선택합니다.
- “Finish”를 클릭하여 프로젝트를 생성합니다.
3. UI 설계
이제 UI를 설계하겠습니다. 할 일 목록 앱의 기본적인 UI 구성 요소는 다음과 같습니다:
- 할 일을 입력할 수 있는 EditText
- 할 일을 추가하는 Button
- 할 일 목록을 보여주는 ListView
3.1 XML 레이아웃 파일 수정
Android Studio에서 res/layout/activity_main.xml 파일을 열고 다음과 같이 수정합니다:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/editTextTask" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="할 일을 입력하세요" /> <Button android:id="@+id/buttonAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="추가" android:layout_below="@id/editTextTask" /> <ListView android:id="@+id/listViewTasks" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/buttonAdd" /> </RelativeLayout>
4. Java 코드 작성
레이아웃을 작성한 후, 이제 Java 코드를 작성하여 기능을 추가하겠습니다. 메인 액티비티인 MainActivity.java 파일을 열고 다음과 같이 구현합니다:
package com.example.todolist; import android.os.Bundle; import android.view.View; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { private EditText editTextTask; private Button buttonAdd; private ListView listViewTasks; private ArrayList<String> tasks; private ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextTask = findViewById(R.id.editTextTask); buttonAdd = findViewById(R.id.buttonAdd); listViewTasks = findViewById(R.id.listViewTasks); tasks = new ArrayList<>(); adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, tasks); listViewTasks.setAdapter(adapter); buttonAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String task = editTextTask.getText().toString(); if (!task.isEmpty()) { tasks.add(task); adapter.notifyDataSetChanged(); editTextTask.setText(""); } } }); } }
5. 앱 실행하기
코드를 작성한 후, 앱을 실행하기 위해 다음 단계를 따르세요:
- Android Studio의 툴바에서 “Run” 버튼을 클릭합니다.
- 에뮬레이터 또는 실제 기기를 선택합니다.
- 앱이 성공적으로 실행되면, 입력란에 할 일을 입력하고 “추가” 버튼을 클릭하여 할 일이 목록에 추가되는 것을 확인합니다.
6. 추가 기능 구현하기
이제 기본적인 할 일 목록 앱이 완성되었습니다. 하지만 추가 기능을 구현하여 앱을 더욱 발전시킬 수 있습니다. 다음은 추가할 수 있는 기능들입니다:
- 할 일 목록의 항목을 삭제하는 기능
- 할 일 목록의 항목을 완료 표시하는 기능
- 데이터베이스를 활용하여 앱을 종료해도 데이터가 유지되도록 구현하기
6.1 항목 삭제 기능 구현하기
ListView의 아이템을 길게 클릭했을 때 해당 항목을 삭제하는 기능을 추가할 수 있습니다. 다음 코드를 MainActivity.java에 추가해주세요:
listViewTasks.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { tasks.remove(position); adapter.notifyDataSetChanged(); return true; } });
6.2 완료 표시 기능 구현하기
할 일을 완료한 경우 체크 표시를 추가하는 기능 역시 유용합니다. RecyclerView를 사용하면 체크리스트를 더 쉽게 관리할 수 있으며, 각 항목에 대한 체크박스를 추가하면 됩니다.
6.3 SQLite 데이터베이스 연동하기
앱을 종료해도 할 일이 유지되도록 하기 위해 SQLite 데이터베이스를 사용할 수 있습니다. SQLiteOpenHelper 클래스를 생성하여 데이터베이스를 관리할 수 있습니다.
결론
이번 강좌를 통해 자바를 활용한 안드로이드 할 일 목록 앱을 개발하는 방법을 배웠습니다. 기본적인 앱을 만드는 데에서 더 나아가, 추가 기능을 구현하는 방법까지 알아보았습니다. 이러한 기본적인 구성 요소들과 개념들은 향후 더 복잡한 앱을 개발하는 데 기초가 될 것입니다. 안드로이드 앱 개발에 있어 지속적인 학습이 필요하므로, 다양한 프로젝트를 시도해보시기 바랍니다.