안녕하세요?


이번 포스팅에서는 독학으로 안드로이드 스튜디오2.1로 앱을 만들면서 기본적인 기능인 인터페이스 화면에 버튼을 추가하고, 그 기능을 구현하는 작업을 하려고 합니다.


우선 기존의 프로젝트인 Testapplication이 켜져 있기 때문에 저는 좌측상단에 있는 File항목을 열어서 Close project라는 항목을 클릭해서 현재 진행중인 프로젝트를 종료하고 처음의 화면으로 돌아가서 새로운 프로젝트를 만듭니다.


이번에는 프로젝트의 이름을 Sample5-1이라고 하고, 반드시 첫 글자는 알파벳 대문자로 지정해야 되는 규칙이 있으니, 이를 따라야만 합니다. 그 다음에는 스마트폰 어플을 만들기 때문에 Phone and Tablet이라는 항목을 설정하고, 어플의 화면을 구성하는 단계에서는 Empty Activity를 선택합니다.


이제 파일을 나타내는 영역을 들어가서 res폴더를 열고 그 밑에 있는 하위폴더인 layout폴더를 열어서 activity_main.xml파일을 더블클릭해서 엽니다.



위 스크린샷은 앱 인벤터2(App Inventor2)처럼 실제로 유저에게 보여지는 앱의 인터페이스라고 해야 할까요? 화면을 작성하는 장면입니다.

원래는 저 화면에 보이는 Button이 있는 자리에는 Hello World!라는 단어가 적혀있는 텍스트 박스가 있었지만, 제가 Delete버튼을 눌러서 삭제하고, 스크린샷에 보이는 Palette라는 좌측의 윈도우에서 Button을 드레그해서 화면 위에다가 놓았습니다. 여기까지는 앱 인벤터2(App Inventor2)와는 비슷했습니다. 일단 뒤에서 나오겠지만, 저는 여기서 이게 무슨 에러를 낼지도 모르고서 Properties윈도우에 있는 textAppearance를 Toast로 바꾸었습니다.


문제는 그 다음에 위 스크린샷에 보이는 좌측 하단에 Design탭을 Text탭으로 바꾸어서 작업을 할때 문제가 생겼습니다.


[하루만에 배우는 안드로이드 앱 만들기]라는 책에서는 다음과 같은 코드를 입력하라고 했습니다만, 문제는 어디다가 아래의 코드를 입력해야 할지 몰라서 한참을 해메었습니다.


Button button1 = (Button)findViewById(R.id.button);

  button1.setOnClickListener(new OnClickListener(){

    public void onClick(View v){

      Toast.makeText(getApplicationContext(),"버튼이 눌러졌습니다.",Toast.LENGTH_LONG).show();

      }

}


우선 이 위의 코드를 어디다가 입력해야 하는 지를 몰라서 해메다가 맨 처음에는 Text탭을 눌러서 제일 먼저 나오는 자바 코딩과 비슷해 보이는 부분에다가 일일히 타이핑을 하였습니다. 그리고는 화려하게 에러 메세지가 대량으로 떠서 무언가 에러가 떴다는 것을 알 수 있었습니다. 결국 운 좋게도 안드로이드 스튜디오2.1에는 Undo 버튼이 있었기 때문에, 모두 한꺼번에 없앨 수가 있었습니다.


한참을 찾아보니 위의 코드는 MainActivity.java라는 파일에 있는 코드에다가 붙여넣기를 하는 것이였습니다.



위 스크린샷은 MainActivity.java라는 파일 안에 있는 자바코딩을 보여주고 있습니다. 여기서는 원래 setContentView(R.layout.activity_main);이라는 줄 바로 아래가 비어 있었습니다만, 위에서 Button으로 시작하는 코드를 입력했습니다.


다음 단계에서는 입력한 코드가 실은 완전한게 아니라 에러가 있다고 합니다. 위 스크린샷에서 보시다 시피 일부 단어가 붉은 색으로 처리가 되어 있는데 이런 부분이 에러가 있다고 하는데, 저로서는 자바를 잘 모르기 때문에 이걸 수정하라고 하면 불가능에 가깝습니다.


하지만 Alt+Enter버튼을 동시에 누르면 자동으로 에러를 수정해 주는 기능이 있다고 하는데, 제일 먼저 있던 Button의 경우에는 두번째 Button단어에 커서를 가져다가 놓고 Alt키와 Enter키를 동시에 누르면 자동으로 에러가 수정이 되었습니다. 문제는 아래에 있는 new OnClickListener() 라는 부분이였습니다.



Alt키와 Enter키를 동시에 누르면 위 스크린샷과 같이 팝업창이 뜨는데, 저로서는 자바를 모르기 때문에 저 두개가 무슨 의미인지는 모릅니다. 일단 아래에 있는 것을 입력하고서 코딩에서 발생한 에러를 수정하였고, 아래에 있는 붉은 색으로 표시된 Toast역시 Alt키와 Enter키를 동시에 눌러서 자동으로 에러를 수정하였습니다.

마지막 에러가 생긴 문구는 원래는 띄여쓰기를 하면 안되는데 제가 실수로 스페이스 바를 눌러서 생긴 것이기 때문에 이어 붙이기로 간단하게 마무리가 되었으며, 실행을 하면 되기는 되는데...........


책에서 나온 그대로 에러가 뜨면서 실행이 되지 않았습니다.


마지막까지 사람 애를 먹인게, 책에서는 (하나가 일부러 에러나가 했다지만, 제 경우에는 자동완성이 되었기에 그건 일어나지 않았지만, 세미콜론 (;) 이거 하나를 빼먹어서 생긴 에러가 있었습니다.


오류를 수정하고 나서 다시 실행을 시킨 폰의 스크린샷이 왼쪽에 있는 화면입니다. 제 경우에는 애뮬에리터가 작동이 되지 않았기 때문에 처음에는 헤메기는 하였습니다만, 일단 갤럭시 S2의 경우에는 내장 메모리 사용을 허락하니, 그제서야 폰에다가 앱이 설치가 되고 옆의 스크린샷처럼 실행이 되었습니다.


이번 독학으로 알아낸 것이, 지난번 시간때 까지만 해도 앱 인벤터2와 같아서 쉽게 익힉 수 있으리라 생각했지만, 문제는 디자인의 경우에는 쉽게 익힐 수는 있습니다. 


하지만 디자인이 된 것을 실질적으로 작동시키는 논리를 만들기 위한 작업이, 마치 레고 블럭 조립하듯이 되어 있는 앱 인벤터2에 비해서, 안드로이드 스튜디오2.1은 일일히 수작업으로 코딩해야 하기 때문에 자바를 배워야 할 필요성이 크다는 것입니다.


앞으로 이런 키보를 이용한 타이핑에 얼마나 익숙해 지는 가가 중요한 것이라고 생각이 드는데, 진짜 이럴때 다마 드는 생각이...


독학이란 것은 혼자서 한다고 해서 독학이 아니라, 독하게 공부해야 한다고 해서 독학이라는 생각이 듭니다.





  1. husky 2018.02.07 14:54 신고

    아무리 찾아도 안되던데 포스트 보니 알겠네요^^ 감사합니다.!

+ Recent posts

티스토리 툴바