본문 바로가기
프로그래밍/안드로이드

안드로이드 앱 개발 - 안드로이드 스튜디오에서 프로젝트 만들기

by pentode 2018. 4. 8.

안드로이드 앱 개발에 대해서 알아보면서 개발 툴을 안드로이드 스튜디오를 사용하게 될 것입니다. 안드로이드 스튜디오의 설치는 "안드로이드 스튜디오 설치하기" 를 참조하세요.


안드로이드 앱을 만들기 위해서는 Java라는 언어가 필요합니다. 물론 C++, JavaScript(Phonegap) 같은 것으로도 가능하지만 Java가 가장 많이 사용되어 집니다. 필요한 부분은 그때 그때 설명을 할테지만, 따로 공부를 하는게 도움이 될 것입니다.


그럼 안드로이드 앱의 기본 구조를 살펴볼 간단한 앱을 만들어 보겠습니다.


1. 메뉴에서 File -> New -> New Project...를 선택하여 New Project 창을 열고, Configure your new project 에서 다음과 같이 입력합니다. 나머지는 기본값을 사용하면 되겠습니다.


새 프로젝트 생성



- Application name : 안녕 안드로이드

- Company domain : pentode.tistory.com

- Package name : com.tistory.pentode.helloandroid

- Project location : D:\workspace\AndroidStudioProjects\HelloAndroid


Application name은 앱의 이름으로 사용됩니다. 이 정보는 입력시 자동으로 Package name과 Project location에서 사용되어 집니다. 그래서 한글로 입력하게 되면 패키지명에나 폴더명으로 사용하는데 문제가 있으므로 non-ASCII 문자라고 에러 메세지가 나오게 됩니다. 무시하고 한글로 입력한뒤 패키지명은 "Edit" 링크를 눌러 직접  수정하면 됩니다. Project location 또한 직접 수정하면 됩니다.


만약 영문으로 사용하고자 한다면, Application name은 알파벳 소문자와 언더스코어(_)를 제외한 ASCII 문자로 시작하고 뒤에는 ASCII 문자들이 올 수 있습니다. 이 말은 영문 알파벳, 숫자, 공백, 특수문자 등으로 구성되어야 한다는 뜻입니다.


ASCII 문자로 입력된 Application name은 자동으로 Package name에 공백 및 특수문자를 제거하고 소문자로 사용됩니다.. 숫자로 시작할때는 앞에 "a" 가  자동으로 붙습니다.


다음에는 Project location: 에 프로젝트 파일이 저장된 폴더명으로 사용됩니다. 이때는 대소문자는 유지되고, 폴더명에 사용할 수 없는 특수문자는 제거 됩니다.


이렇게 복잡하게 자동 적용으로 하지 않고, 앱 이름은 한글로 입력하고 나머지 정보는 모두 수동으로 입력하는게 편리합니다. 물론 앱 이름은 나중에 바꿀 수 있습니다.


Company domain은 자신이 가진 도메인이 없으면 임의로 만들어서 넣으면 됩니다.(실제로 DNS에 등록된 도메인일 필요는 없습니다.) 이 정보는 Package name을  만드는데 사용되었습니다.


Package는 같은 이름의 자바 파일이 있을때 이름 충돌을 방지하고, 소스를 분류하는 기능을 가지는 개념입니다. 여기서 생성된 패키지명인 com.tistory.pentode.helloandroid는 물리적으로는 앞으로 만들 Java 소스 파일이 들어갈 폴더의 이름됩니다.


또다른 중요한 용도가 있는데, 그것은 앱을 다 만들고 난 후 구글 플레이 스토어를 통해서 배포할때 전세계에서 만들어진 모든 앱중에서 자신의 앱을 유일하게 구분하는 아이디가 됩니다. 그래서 충돌이 발생하지 않도록 도메인을 사용하도록 권장하는 것입니다.


"Next" 버튼을 누릅니다.

2. 앱이 실행된 기기를 선택하는 화면입니다.


- Phone and Tablet 에 체크를 합니다.

- Minimum SDK 는 API 16: Android 4.1 (Jelly Bean) 으로 합니다. 안드로이드는 계속 버전업이 되어 왔습니다. 지금 생성하는 앱이 지원하는 최소 안드로이드 버전을 지정하는것 입니다.


폼팩터 선택


"Next" 버튼을 누릅니다.



3. 앱의 템플릿을 선택합니다.


Empty Activity 를 선택합니다.


템플릿을 Empty Activity 선택



Activity는 하나의 화면을 뜻하는 개념이라고 생각하면 되겠습니다. 앱을 실행하게되면 현재 실행된 앱이 기기의 화면을 모두 차지하게 됩니다. 데스크탑 컴퓨터의 경우는 한 화면에 여러개의 프로그램을 사이즈를 줄여서 보여지게 해두고 사용할 수 있지만 휴대폰의 경우는 실행중인 하나의 앱이 전체화면을 차지하게 됩니다.


휴대폰의 경우에는 하나의 앱이 여러개의 화면이 필요할 경우 화면별로 Activity를 여러개 만들어서 현재 보여지는 Activity 를 교체하는 방식으로 사용하게 됩니다.


"Next" 버튼을 누릅니다.



4. 새로 만들어질 빈 Activity의 정보를 입력합니다.


- Activity Name: MainActivity

- Generate Layout File 에 체크 합니다.

- Layout Name: activity_main

- Backwards Compatibility (AppCompat) 에 체크합니다.


Activity이름인 MainActivity 는 액티비티를 구성하게될 자바 파일의 이름이 됩니다. 


com/tistory/pentode/helloandroid/MainActivity.java


패키지명에 마침표(.) 대신에 슬래시(/)를 사용하여 표현한 이유는 실제 디스크상에 패키지명으로된 폴더안에 MainActivity.java 파일이 생성될 것이기 때문입니다.


Generate Layout File에 체크를 하면 activity_main.xml 파일이 생성됩니다. 안드로이드 앱은 화면 모양이 어떻게 만들어져야 할지의 정보는 xml 파일에 저장하고, 이 화면에 사용자와 어떻게 상호작용할지를 나타내는 프로그램은 java 파일로 작성을해서, 이 두가지를 연결하여 앱을 만들게 됩니다. 디자인과 프로그램 로직을 분리한다는 개념입니다.


Backwards Compatibility (AppCompat) 을 체크하게 되면 MainActivity 가 AppCompatActivity 를 상속해서 만들어지게 됩니다. 안드로이드 버전이 올라가면서 화면에 액션바와 같은 전에는 없던 화면 기능이 생겨나게 됩니다. 이러한 것은 지원하지 않는 안드로이드 버전을 사용하는 기기에서 같은 기능을 사용하게 해주기 위해서 AppCompat 라이브러리가 사용되어 집니다.



액티비티 이름 지정


"Finish" 버튼을 누릅니다.



5. 프로젝트가 생성되었습니다.


실제 안드로이드 스튜디오를 실행하고 프로젝트를 생성하는데는 몇분도 걸리지 않지만, 그 속에서 알아야 할것들은 제법 많습니다.


프로젝트 생성 완료



 다음에는 MainActivity에 간단한 요소를 추가한 다음 앱의 기본 구조에 대해서 알아보도록 하겠습니다.

반응형