My First App

2022. 7. 12. 15:55Android

안드로이드 스튜디오를 설치하고 Java를 사용하여 사이트에 나와있는 첫앱 빌드를 따라해보았다.

메시지를 입력하고 send 버튼을 누르면 입력한 메시지가 뜨는 간단한 앱이다.

 

앱 빌드 과정 요약:

사이트 내용을 따라서 직접 앱을 만들어보고 과정을 정리해보았다.

 

1. Android 스튜디오를 설치하고 새로운 프로젝트 'My First App'를 만든다.

다음과 같은 Android 스튜디오 기본 창이 생긴다.

[중요한 파일]

app > java > com.example.myfirstapp > MainActivity

: 앱의 진입점으로, 앱을 빌드하고 실행하면 실행하면 시스템에서 이 Activity의 인스턴스를 실행하고 레이아웃을 로드한다.

 

app > res > layout > activity_main.xml

: 이 xml파일은 Activity의 사용자 인터페이스(UI) 레이아웃을 정의한다. 

 

app > manifests > AndroidManifest.xml

: 앱의 기본 특성을 설명하고 앱의 각 구성요를 정의한다.

 

2. 앱 실행

앱 실행은 실제 기기에서 할 수도 있고 에뮬레이터에서 실행할 수 도 있다. 나는 에뮬레이터를 사용했다.

Run을 클릭하면 앱이 실행된다.

 

3. 앱 빌드

1) Android 스튜디오 Layout Editor를 사용하여 레이아웃 만들기

  • 텍스트 상자 추가 : Palette 패널에서 Plain Text를 드래그하여 레이아웃에 드롭한다.
  • 버튼 추가 : Palette 패널에서 Button을 드래그하여 레이아웃에 드롭한다.

2) UI 문자열 변경

project 창을 열고 app > res > values > string.xml을 연다.

이 파일은 모든 UI 문자열을 지정할 수 있는 파일이다.

창 상단 Open Editor를 클릭하고 Add Key를 통해 새로운 문자열을 추가한다.

텍스트 상자에 넣을 문자열 'Enter a message'(key : edit_message)과 버튼에 넣을 문자열 'send'(key : button_send)을 각각 하나씩 만들어준다.

 

다시 activity_main.xml파일을 클릭해 레이아웃 파일로 돌아가 다음과 같이 문자열을 추가해준다.

a. 레이아웃의 텍스트 상자를 클릭해 Attributes 창을 연다.

b. 텍스트 박스의 경우 text 속성의 값을 삭제하고 hint 속성을 찾아 Pick a Resource를 클릭해서 edit_message를 선택한다.

   버튼의 경우 text 속성을 찾고 Pick a Resource를 클릭해서 button_send를 선택한다.

 

아직 버튼은 아무 동작을 하지 않는다. 버튼을 탭할 때 시작되는 다른 활동을 빌드해보자. 

 

3)Send 버튼에 응답

1. app > java > com.example.myfirstapp > MainActivity 파일에서 sendMessage() 메서드를 추가한다.

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /** Called when the user taps the Send button */
    public void sendMessage(View view) {
        // Do something in response to button
    }
}

2. activity_main.xml 파일에 들어가 다음과 같이 버튼에서 메서드를 호출한다.

a. Layout Editor에서 버튼을 선택한다.

b. Attribute창에서 onClick 속성을 찾아 sendMessage [Main Activity]를 선택한다.

 

이제 버튼을 탭하면 시스템에서 sendMessage() 메서드를 호출한다.

 

4)Intent 빌드

Intent는 개별 구성요소(ex.두개의 Activity)간에 런타임 바인딩을 제공하는 객체이다. Intent는 어떤 작업을 하려는 앱의 의도를 나타낸다. 매우 다양한 작업에 Intent를 사용할 수 있지만, 이 과정에서는 Intent로 다른 활동을 시작한다.

 

Main Activity에서 EXTRA_MESSAGE 상수와 sendMessage() 코드를 추가한다.

 

* sendMessage()에 버튼을 눌렀을 때 동작할 일들을 코드로 작성한다.

sendMessage에서 이루어지는 작업은 요약하면 다음과 같다.

Intent의 인스턴스 intent를 만든다.

startActivity는 Intent에서 지정하는 DisplayMessageActivity의 인스턴스를 시작한다.

 

이제 DisplayMessageActivity의 클래스를 만들어야 한다.

public class MainActivity extends AppCompatActivity {
    public static final String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    /** Called when the user taps the Send button */
    public void sendMessage(View view) {
        Intent intent = new Intent(this, DisplayMessageActivity.class);
        EditText editText = (EditText) findViewById(R.id.editTextTextPersonName);
        String message = editText.getText().toString();
        intent.putExtra(EXTRA_MESSAGE, message);
        startActivity(intent);
    }
}

5) 두 번째 Activity 만들기

1. Project 창에서 app 폴더에서 마우스 오른쪽 버튼을 눌러 New > Activity > Empty Activity를 선택한다.

2. Configure Activity 창에서 Activity Name에 'DisplayMessageActivity'를 입력한다.

3. Finish를 클릭한다.

 

Android 스튜디오는 다음 세가지 작업을 자동으로 실행한다.

  • DisplayMessageActivity 파일을 만든다
  • DisplayMessageActivity 파일에 대응하는 레이아웃 파일 activity_display_message.xml을 만든다
  • 필수 <activity>요소를 AndroidManifest.xml에 추가한다.

앱을 실행하고 첫 번째 Activity에서 버튼을 탭하면 두 번째 Activity가 시작되지만 이 Activity는 비워져있다.

두 번째 Activity가 템플릿에서 제공한 빈 레이아웃을 사용하고 있기 때문이다.

 

6) 두 번째 Activity에 텍스트 뷰 추가

1. app > res > layout > activity_display_message.xml 파일을 연다.

2. Palette 패널에서 Text를 클릭하고 TextView를 레이아웃으로 드래그한다.

 

7)메시지 표시

이 단계에서는 두 번째 Activity을 수정하여 첫 번째 Activity에서 전달된 메시지를 표시한다.

DisplayMessageActivity에서 다음 코드를 onCreate() 메서드에 추가한다.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_display_message);
    
    // Get the Intent that started this activity and extract the string
    Intent intent = getIntent();
    String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);

    // Capture the layout's TextView and set the string as its text
    TextView textView = findViewById(R.id.textView);
    textView.setText(message);
}

 

8) 완성

툴바에서 Apply Changes를 클릭하여 앱을 실행한다. 앱이 열리면 텍스트 필드에 메시지를 입력하고 Send버튼을 탭하여 두 번째 Activity에 메시지가 표시되는 지 확인한다. 

실행이 제대로 된다면, 첫 앱 빌드 성공이다.

 

*Reference

https://developer.android.com/training/basics/firstapp?hl=ko 

 

첫 앱 빌드  |  Android Basics  |  Android Developers

첫 앱 빌드 이 섹션에서는 간단한 Android 앱의 빌드 방법을 설명합니다. 먼저 Android 스튜디오로 'Hello, World!' 프로젝트를 만들어 실행하는 방법을 알아봅니다. 그런 다음, 사용자 입력을 가져와 앱

developer.android.com

 

'Android' 카테고리의 다른 글

Android Emulator 사진 추가하기  (0) 2023.08.30
Button 이벤트 처리  (0) 2022.07.14