실무에서 안드로이드 프로그래밍 앱개발은?


지금까지 공부했던 포스팅 내용에서는 안드로이드의 소스인 java나 xml 파일을 새로 만들지 않고 안드로이드 개발환경 구성시 기본으로 설치된 소스를 수정해서 실습했습니다. 실제 안드로이드 실무 개발 환경에서는 이렇게 프로그램 개발을 하지는 않습니다.

대개의 경우에는 고객의 요청이나 설계에 따라서 직접 새로운 화면을 만들고 구성하게 됩니다. 그렇다고 처음부터 새롭게 만드는 것이 아니라. 기존의 소스를 복사해서(Copy & Paste) 사용하는 경우가 많습니다. 그런 개발 방법에 대해서 폄하하는 사람들도 있지만, 시분일초를 다투는 개발 현장에서 개발 시간을 단축하는 효율적인 방법 중에 하나임에는 틀림없습니다.

그렇지만 소스에 대한 이해는 반드시 중요합니다. 무조건 템플릿 소스를 복사해서 사용하다보면 안드로이드 프로그래밍에 대한 이해도가 떨어지기 때문입니다. 따라서 자신이 복사해서 사용했다해도 반드시 소스에 대해서 이해하도록 스스로 노력해야합니다.

현장에서 빠른 앱개발을 위해서 추가적으로 XP라고 부르는 익스트림 개발방법(extreme Programming)이나 Pair 프로그그래밍등도 적용해 보는 것도 좋을 것입니다.



실무에서 요긴한 안드로이드 프로그래밍 개발 방법 배우기


이번 시간에는 실무에서 개발하는 방법을 실습으로 배워보도록 하겠습니다.
이전 내용과 이어지므로 아래 포스팅을 순서대로 학습한 뒤에 진행하면 더 효과적입니다.



Activity 자바 클래스 만들기


안드로이드에서는 새로운 화면을 만들 때 Activity 라는 것을 만들게 됩니다. 실제 안드로이드는 화면 단위로 움직이는 경우가 많기때문에 간편하게 화면을 Activity 라고 이해하시면 됩니다.

먼저 왼편의 Package Explorer에서 조금 전 작성한 MainActivity.java를 선택합니다.



이제는 Ctrl+C 를 클릭해서 복사를 하고 다시 Ctrl+V를 해서 붙여넣기를 합니다. 



Activity 이름은 TestActivity 로 변경하고 OK버튼을 클릭합니다.



왼편 Package Explorer에 TestActivity.java가 생성된 것을 볼 수 있습니다. TestActivity.java를 더블 클릭하면 오른편의 프로그램 소스창에서 소스 내역을 확인 할 수 있습니다.



java 클래스의 이름이 TestActivity로 생성된 것을 볼 수 있습니다.




activity XML 파일 만들기


마찬가지로 res/layout 폴더안의 activity_main.xml 파일도 Ctrl+C로 복사한 뒤 Ctrl+V로 붙여넣기를 합니다.
그리고, xml의 파일의 이름을 test_activity.xml로 변경합니다.



이제 새로운 액티비티와 레이아웃을 복사 하였으므로 필요할 때 수정해서 사용하면 됩니다. 먼저 test_activity.xml 의 소스코드를 다음과 같이 수정합니다. 불필요한 버튼은 없애고 돌아가기 버튼만 만들겠습니다.

[ res/layout/test_activity.xml ]



TestActivity와 MainActivity 클래스 수정하기


TestActivity.java 소스를 다음과 같이 변경합니다. MainActivity.java에서 복사했던 소스이므로 onCreateOptionsMenu() 함수나 onOptionsItemSelected() 함수를 제거하고 아래 소스와 같이 돌아가기 버튼 부분만 구현합니다.

소스를 보면 onClick() 이벤트 발생시에 돌아가기 클릭이라는 메시지를 보여주는 것을 구현하였습니다.
이전에 설명한 내용이라서 넘어가겠습니다. 이 소스에서는 유심히 지켜보아야 할 부분이 있습니다.

그것은 바로 돌아가기 버튼 소스의 마지막 부분에 finish(); 함수를 사용한 것입니다. 만약 finish() 함수를 사용하지 않으면 안드로이드 시스템은 돌아가기 클릭하였음 이라는 메시지를 디스플레이하고 뭔가 다른 액션이 있는지 알고 계속 기다립니다. 후속 작업 지시가 없으니 계속 대기하고 있는 것입니다.
따라서 더 이상의 작업은 없을때는 finish() 함수를 적어주면 작업을 마치고 다시 원래대로 화면으로 복귀하게 됩니다.

[TestActivity.java]



이번에는 MainActivity.java 파일을 수정해야합니다. 안드로이드 앱이 실행될 때 MainActivity는 주인 역할을 합니다.

MainActivity에서 OK 버튼을 클릭했을 때 TestActivity를 호출하도록 소스를 수정하겠습니다.
onCreate() 메소드안에 Intent 객체를 활용해서 TestActivity.class을 호출하는 부분을 추가합니다.

메인 엑티비티에서 OK버튼을 클릭했을 때 인텐트의 파라미터로 새로 추가된 TestActivity.class 가 전달되는 것입니다.
OK 버튼을 누르면 인텐트는 TestActivity를 넘겨주게 됩니다.

[ MainActivity.java 에 추가할 내용 ]



[ MainActivity.java 전체 소스 ]



TestActivity 액티비티를 매니페스트(AndroidManifest.xml) XML에 등록하기


조금 전에 액티비티인 TestActivity를 만들었습니다. 추가한 액티비티인 TestActivity를 안드로이드 시스템이 인식할 수 있도록 매니페스트 xml에 등록하는 절차를 진행해야합니다. 

아래 화면과 같이 이클립스 왼쪽 Package Explorer의 아래쪽에 AndroidManifest.xml 파일을 클릭합니다. 


아래 화면에서 오른쪽 아래 AndroidManifest.xml 탭을 클릭합니다.



AndroidManifest.xml 소스 파일안에 <activity> 태그 부분에 다음을 추가합니다.


이렇게 AndroidManifest.xml 파일에 추가하면 안드로이드 시스템은 새로운 액티비티를 인식할 수 있습니다.




검증된 개발 프로세스 매뉴얼화 하기


개발을 하다보면 정작 프로그램 소스는 만들어 놓고서 시스템이 동작하지 않는 경우가 있는데 많은 경우 매니페스트 파일에 Activity를 추가하지 않는 경우가 많습니다. 따라서 실수를 줄이려면 다음과 같은 절차를 매뉴얼화 해서 순서대로 개발 진행하는 것이 좋습니다.

[ 새로운 액티비티 만들 때 작업 순서 ]

1. 새로운 액티비티 만들기(기존 액티비티 복사해서 만든다) 
2. 새로운 레이아웃 만들기(기존 레이아웃 복사해서 만든다)
3. 새로운 액티비티를 실제 사용할 호출부 수정하기(ex. MainActivity.java)
4. AndroidManifest.xml 파일에 새로운 액티비티 태그 추가하기


어플리케이션을 실행해보도록 하겠습니다. Ctrl+F11을 누르고 애뮬레이터를 실행합니다. OK 버튼이 보입니다. OK 버튼을 클릭하면 OK 버튼 클릭하였음 이라는 메시지가 출력됩니다. 그리고 나서 BACK 버튼이 있는 화면으로 이동합니다. 



BACK 버튼을 클릭하면 돌아가기를 클릭하였음 이라는 메시지가 출력되면서 다시 원래 화면으로 복귀하게 됩니다.


간단한 앱개발 어플리케이션 제작하기


이번 시간에는 전화걸기 및 인터넷 접속하기 기능의 간단한 어플제작을 해보겠습니다.
해당 포스팅은 이어지는 내용이므로 아래 이전 포스팅을 순서대로 학습한 뒤에 진행바랍니다.


지난번 시간에는 간단한 버튼을 생성해서 버튼 클릭시 메시지를 출력하는 것을 실습해보았습니다.
이번에는 여러분이 만든 앱을 통해서 간단한 전화걸기나 인터넷 접속을 해보는 예제를 만들어 보도록 하겠습니다.

실습 진행 순서는 다음과 같습니다.
먼저 이클립스를 실행한 뒤에 Graphical Layout에서 전화걸기 버튼과 인터넷 접속 버튼을 생성합니다. activity_main.xml 에서 자동으로 생성된 xml 소스를 확인합니다. xml 소스 확인 뒤에는 java 프로그램에서 버튼 클릭시에 이벤트 처리부분을 작성하도록 하겠습니다.

Grahpial Layout은 activity_main.xml 소스부분이 사용자가 이해하기 쉽게 만들어놓은 일종의 GUI(Grahpic User Interface) 입니다.


그래픽 사용자 인터페이스(영어: graphical user interface, GUI)는 컴퓨터를 사용하면서, 그림으로 된 화면 위의 물체나 틀, 색상과 같은 그래픽 요소들을 어떠한 기능과 용도를 나타내기 위해 고안된 사용자를 위한 컴퓨터 인터페이스이다.


어플리케이션 버튼 만들기


왼쪽 화면에서 

Button 부분을 마우스로 드래그 해서 오른쪽 Layout 화면으로 이동합니다.



마우스를 드래그하는대로 오른쪽 화면으로 옮기면 버튼이 생성됩니다. 마우스로 위치를 버튼의 크기를 적절하게 조절한 뒤에 버튼의 이름을 전화 걸기와 인터넷 접속하기로 변경하겠습니다.





버튼 이름 변경하기


버튼 이름을 변경하기 위해서 하단 부분에 activity_main.xml 탭을 클릭새서 소스를 열어보면 아래와 같이 Button이 자동으로 생성되어 있음을 확인 할 수 있습니다.





activity_main.xml 소스에서 버튼에 보이는 이름은 android:text 부분입니다. 이 부분이 Graphical Layout에서 Button으로 생성되어 있습니 여기에 각각 전화 걸기와 인터넷 접속하기를 입력합니다.
입력이 끝나면 Grahpical Layout 탭으로 이동해서 버튼의 이름이 변경되었는지 확인합니다.



Grahpical Layout 탭을 클릭하면 아래 화면과 같이 전화걸기와 인터넷 접속하기 버튼이 생성되었음을 볼 수 있습니다. 그럼 이제는 버튼에 각각 전화를 거는 이벤트와 인터넷 접속하는 이벤트를 만들어서 실제 버튼 클릭시에 동작이 되도록 만들어보도록 하겠습니다.



조금 전 작업을 Grahpical Layout에서 진행해도 됩니다. 그렇지만 Grahpical Layout 편리하기는 하지만 실제 현장에서 레이아웃 설계를 할 때는 간단한 화면 Layout보다는 복잡한 경우가 많습니다.
조금만 복잡해져도 Grahpcial Layout으로는 실제 단말에서 화면이 깨지거나 activity_main.xml 소스를 직접 수정해야하는 경우가 다반사입니다. 따라서 Grahpcial Layout은 참고용으로 사용을 하고 실제는 activity_main.xml 소스를 직접 수정하는 습관을 들이는 것이 좋습니다.


버튼 클릭 이벤트 만들기


이제 각 버튼에서 Java 소스 코드를 참조해서 버튼을 눌렀을 때 동작이 되도록 만들어 보겠습니다. 
전화걸기 부분의 소스를 다음과 같이 작성합니다. 여기서 Intent 라는 객체를 사용하는 것을 볼 수 있습니다.
Intent는 안드로이드 스마트폰 앱에게 뭔가를 지시하고자하는 의도하는 자바객체라고 생각하면 됩니다. 즉, 안드로이드에게 전화를 걸게하거나, 인터넷을 접속하게 하기위해서 일종의 명령을 내리는 것입니다.




전화걸기 소스코드 작성이 끝나면 인터넷 접속하기 소스를 다음과 같이 작성합니다.


     
       

완성된 전체 소스코드는 아래와 같습니다. 



제작한 앱개발 어플리케이션 실행하기


소스코드 작성이 끝났으면 Ctrl+F11을 눌러서 간단히 제작한 앱개발 어플리케이션을 실행합니다.
기본적으로 안드로이드 애뮬레이터는 구동시켜놓아야 합니다.

애뮬레이터가 실행되면 전화 걸기버튼과 인터넷 접속하기 버튼이 나타납니다. 그럼 전화를 걸어보겠습니다. 전화걸기 버튼을 클릭합니다.



가상 단말이 실행되어서 전화 걸기를 수행합니다. 이번에는 MENU 버튼 옆의 BACK 버튼을 클릭해서 원래 화면으로 돌아온 뒤 인터넷 접속하기 버튼을 클릭해 보도록 하겠습니다.



아래 화면과 같이 다음사이트가 브라우징 되는 것을 확인할 수 있습니다. 사전에 Intent 객체에서 입력한 인터넷 주소로 인터넷 브라우징되는 것입니다.



앱개발의 시작, 간단한 안드로이드 앱프로그램 만들기


이번 시간에는 간단한 안드로이드 앱을 만들고 구동하는 것을 실습해보겠습니다.
간단한 스마트폰앱이라고 하는 것은 안드로이드 스마트폰에 특정 문구를 보여주는 것입니다.

원활한 학습을 위해서 안드로이드 개발환경 구성 및 선행 학습은 아래 포스팅을 참고해서 진행바랍니다.



새로운 안드로이드 프로젝트를 만들기 위해서 이클립스를 실행한 뒤에 File > New > Other 메뉴를 클릭합니다.



Select a wizard


New 대화 상자에서 아래 화면과 같이 Android Application Project 항목을 선택한 후 Next 버튼을 클릭합니다.



New Android Application


New Android Appliaction 대화상자에서 Application Name 항목에 HelloJava 라고 입력한뒤 Next 버튼을 클릭합니다. 
Application Name에 HelloJava 라고 입력하면 Project Name 항목과 Package Name 항목의 이름은 자동으로 생성됩니다.



아래 화면과 같이 선택사항을 디퐅트로 두고 Next 버튼을 클릭합니다.



Configure Launcher Icon


Configure Launcher Icon 화면은 앱의 아이콘을 설정하는 화면입니다.
Image 버튼을 클릭하여 원하는 이미지를 가져올 수 있습니다. Clipart 버튼은 클립아트를 가져올 수 있으며 Text 버튼은 텍스트를 입력하여 앱 아이콘으로 사용할 수 있습니다. 기본으로 설정상태를 그대로 두고 Next 버튼을 클릭합니다.



Create Activity


Create Activity 는 앱의 첫 화면을 지정하는 화면으로 각 항목마다 다른 화면 구성을 보여 줍니다.
여기서는 BlacnkActivity를 선택한 뒤 Next 버튼을 클릭합니다.



만약 FullscreenActivity를 선택한다면 화면 구성은 아래와 같을 것입니다.



New Blank Activity


첫 화면을 구체적으로 구성하기 위한 화면으로 디폴트 상태에서 Finish 버튼을 클릭합니다.



Finish 버튼을 클릭하면 이클립스 화면에 해당 프로젝트가 Loading 되면서 왼쪽 화면에 Package Exploer 항목에 HelloJava 프로젝트가 생성되었음이 보여집니다.



왼쪽 화면의 src 폴더를 클릭하여 트리를 펼쳐서 ManActivity.java를 클릭합니다. 왼쪽 네이게이션 화면에서 클릭을 하면 오른쪽 소스 정보 화면에 해당 소스가 펼쳐집니다. 오른쪽 소스는 조금 전 대화상자 Wizard를 통해서 생성한 MainAcitity.java의 소스입니다. 안드로이드 소스는 자바로 구현되어 있습니다. 자바 프로그램 소스를 이해하기 위해서 자바 기본 문법에 대해서 기초가 없다면 자바에 대한 별도의 공부가 필요합니다.



안드로이드 에뮬레이터 실행하기


안드로이드 에뮬레이터를 실행하기 위해서 툴바의 여섯번째 Android Virtual Device Manager 안드로이드 이미지 버튼을 클릭합니다.



AVD Name에서 Android41 항목을 클릭하고 Start 버튼을 클릭합니다.



Launch Options 대화 상자에는 Scale 항목이 0.51이 되도록 Sceen Size 는 4.0, Monitor dpi는 120수치를 입력한 뒤 Launch 버튼을 클릭합니다



안드로이드 에뮬레이터가 구동되고 있습니다.

 



에뮬레이터가 구동되었습니다.



안드로이드 어플리케이션 실행하기


이제 프로젝트의 Application을 실행해 보도록 합니다.
왼쪽 화면 HelloJava 프로젝트에 오른쪽 마우스 버튼을 클릭하여 Run As > 1 Android Application 항목을 클릭합니다

어플리케이션을 실행하는 방법이 번거로우므로 단축키를 활용하는 방법이 좋습니다. 단축키는 Ctrl + F11 입니다.



Android Device를 선택하는 화면으로 하단의 OK 버튼을 클릭합니다



다음은 로그정보를 보기위해서 Logcat을 사용하겠느나는 대화상자가 나타납니다. 이클립스상에서 로그는 모니터링 해야되기때문에 Yes 항목의 라디오 버튼을 선택한 뒤 OK 버튼을 클릭합니다.




Android41s 라는 작은 사이즈의 에뮬레이터를 만든후 에뮬레이터를 구동합니다. 에뮬레이터 구동뒤 HelloJava 프로젝트를 실행시키면(Ctrl + F11 사용) 안드로이드 어플리케이션이 실행되고 Hello World 라는 텍스트 문구가 나타납니다.

   


+ Recent posts