본문 바로가기
자유게시판

안드로이드 APP 을 ChatGPT와 함께 만들어 보기 (2부)

by 고리스s 2024. 6. 19.
반응형

안녕하세요! 지난 1부에서는 안드로이드 스튜디오에 ChatGPT에서 생성한 코드를 적용하는 방법과 코딩을 모르는 분들이 ChatGPT에게 어떻게 코드 작성을 요구할 수 있는지에 대해 알아보았습니다. 이번 2부에서는 더 복잡한 기능을 구현해 보며 ChatGPT의 활용도를 높여보겠습니다.


1. 안드로이드 앱 기능 확장

이번에는 간단한 메모 앱을 만들어 보겠습니다. 사용자가 메모를 추가하고 목록으로 볼 수 있는 기능을 구현해 보겠습니다.

1.1 ChatGPT에게 코드 요청하기

먼저, Chat

GPT에게 메모 추가 기능을 구현하는 코드를 요청합니다. 다음과 같이 질문할 수 있습니다:

 
"안드로이드 앱에서 사용자가 메모를 추가하고 목록으로 볼 수 있는 기능을 구현하는 코드를 작성해 주세요."

 

ChatGPT는 일반적으로 아래와 같은 코드를 생성할 것입니다:

 
// MainActivity.java
package com.example.memoapp;

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 ArrayList<String> memoList;
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        memoList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, memoList);

        ListView listView = findViewById(R.id.listView);
        listView.setAdapter(adapter);

        EditText editText = findViewById(R.id.editText);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String memo = editText.getText().toString();
                if (!memo.isEmpty()) {
                    memoList.add(memo);
                    adapter.notifyDataSetChanged();
                    editText.setText("");
                }
            }
        });
    }
}

1.2 안드로이드 스튜디오에 코드 적용하기

  1. 레이아웃 파일 수정: activity_main.xml 파일을 열어 메모를 입력할 EditText와 버튼, 그리고 메모 목록을 표시할 ListView를 추가합니다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/editText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Enter memo" />

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add" />

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

  1. 코드 붙여넣기: ChatGPT가 생성한 Java 코드를 MainActivity.java 파일에 붙여넣습니다.

2. 개발 중 경험 공유

제가 개발 중에 ChatGPT를 활용하여 느낀 경험을 공유하겠습니다.

2.1 실시간 피드백

코드를 작성하는 과정에서 실시간 피드백을 받을 수 있어 매우 유용했습니다. 예를 들어, "버튼 클릭 시 앱이 종료됩니다. 이 문제를 해결하는 방법을 알려 주세요."라고 질문하면, ChatGPT는 다음과 같은 조언을 줄 수 있습니다:

 
"앱이 종료되는 이유는 로그캣(Logcat)을 통해 확인할 수 있습니다. 로그캣을 확인하여 발생한 예외를 확인하고, 그에 따라 문제를 해결하세요. 예를 들어, NullPointerException이 발생할 수 있습니다. 이 경우, 뷰를 제대로 초기화했는지 확인해 보세요."

2.2 코드 개선

ChatGPT를 활용하여 작성한 코드를 개선할 수 있습니다. 예를 들어, 메모를 저장하고 앱이 재실행될 때 메모를 유지하려면 SharedPreferences를 사용할 수 있습니다.

 
"메모를 저장하고 앱이 재실행될 때 메모를 유지하는 코드를 작성해 주세요."

ChatGPT는 다음과 같은 코드를 생성할 것입니다:

 
// MainActivity.java
package com.example.memoapp;

import android.content.SharedPreferences;
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;
import java.util.HashSet;
import java.util.Set;

public class MainActivity extends AppCompatActivity {

    private ArrayList<String> memoList;
    private ArrayAdapter<String> adapter;
    private SharedPreferences sharedPreferences;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sharedPreferences = getSharedPreferences("memoApp", MODE_PRIVATE);
        Set<String> set = sharedPreferences.getStringSet("memos", new HashSet<String>());
        memoList = new ArrayList<>(set);
        
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, memoList);

        ListView listView = findViewById(R.id.listView);
        listView.setAdapter(adapter);

        EditText editText = findViewById(R.id.editText);
        Button button = findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String memo = editText.getText().toString();
                if (!memo.isEmpty()) {
                    memoList.add(memo);
                    adapter.notifyDataSetChanged();
                    editText.setText("");

                    SharedPreferences.Editor editor = sharedPreferences.edit();
                    Set<String> set = new HashSet<>(memoList);
                    editor.putStringSet("memos", set);
                    editor.apply();
                }
            }
        });
    }
}

3. 마무리

이번 2부에서는 ChatGPT를 활용하여 안드로이드 앱의 기능을 확장하는 방법과 개발 중 경험을 공유해 보았습니다. ChatGPT는 코딩 초보자들에게 매우 유용한 도구가 될 수 있으며, 복잡한 문제도 쉽게 해결할 수 있도록 도와줍니다. 다음 3부에서는 더욱 고급 기능을 구현해 보겠습니다. 많은 기대 부탁드립니다!


다음 글에서는 앱의 더욱 다양한 기능 구현과 ChatGPT의 고급 활용 방법에 대해 다룰 예정입니다. 계속 지켜봐 주세요!

 

728x90
반응형