본문 바로가기

AppDev/Android

[ Android ] 안드로이드 기본 환경 설정

안드로이드 스튜디오의 기본 환경 설정에 대해 알아보겠습니다.

 

1. 테마 설정

 

안드로이드 스튜디오는 JetBrains 사의 IntelliJ IDEA 를 기반으로 한 통합 개발환경이기 때문에

IntelliJ에서 지원하는 테마들을 다운로드 받아서 사용할 수 있습니다.

안드로이드 스튜디오 내 마켓플레이스를 이용하는 방법과

JetBrains 테마 다운로드 페이지에서 직접 다운로드하는 방법을 이용하여

테마를 다운로드 받고 적용할 수 있습니다.

위 두가지 방법으로 개발자들에게 인지도 높은 [ Monokai Pro Theme ] 를 적용해보겠습니다.

 

1-1. 안드로이드 스튜디오 내 마켓플레이스를 이용하여 테마 다운로드

 

마켓플레이스에서 테마를 다운로드하는 방법은 마켓플레이스에서 배포되는 유명한 테마들만

다운로드 가능하기 때문에 테마 선택이 제한적입니다.

[ File ] → [ Settings... ] 를 통해 환경 설정 실행
[ Plugins ] → [ Marketplace ] → [ Theme 키워드 검색 ] → [ Install ]
[ Installed ] → [ 설치한 테마 체크박스 체크 확인 ] → [ Apply ] → [ OK ]
[ Ctrl + Shift + S ] 단축키로 환경설정을 실행하여 [ Apperance ] 에서 테마 변경 가능

 

1-2. JetBrains 테마 다운로드 페이지에서 직접 다운로드

 

제트브레인 마켓플레이스 홈페이지 [ https://plugins.jetbrains.com/ ] 에서 Themes 탭 클릭
다운로드 받기 위한 테마 검색 후 원하는 테마를 선택
[ Get ] 버튼 클릭
[ Versions ] → [ Android Studio ] → [ 최신 버전 Download ]
다운로드 파일 및 다운로드 위치 확인
[ 환경설정 ] → [ Plugins ] → [ Installed ] → [ 설정 아이콘 ] → [ Install Plugin from Disk...]
다운로드 파일 선택
[ 적용된 플러그인 체크박스 선택 ] → [ Apply ] → [ OK ]
[ Ctrl + Shift + S ] 단축키로 환경설정을 실행하여 [ Apperance ] 에서 테마 변경 가능

 

2. 폰트 설정

 

안드로이드 스튜디오 사용자가 원하는 폰트를 변경하는 방법에 대해 알아보겠습니다.

개발자들에게 인지도 높은 Source Code Pro 폰트를 적용해보겠습니다.

 

[ Source Code Pro ] 검색 → [ adobe-fonts/source-code-pro - GitHub ] 클릭
[ Code ] → [ Download ZIP ]
다운로드 받은 파일 압축 풀기
압축 폴더 내 [ TTF ] 폴더 열기
[ 실행창 ] → [ control desktop ] → [ 확인 ]
[ 글꼴 ] → [ 글꼴 파일 끌어서 놓기로 드래그 ] → [ 설치 후 설치 확인 ]
[ 안드로이드 스튜디오 환경설정 ] → [ Apperance ] → [ Use Custom font ] → [ Source Code Pro 검색 ] 하여 폰트 적용
[ Editor ] → [ Font ] 에서 소스 코드의 폰트 변경 따로 적용 가능
[ Editor ] → [ Color Scheme ] → [ Console Font ] → [ Use Console font instead ... ] 체크박스를 체크하여 터미널 폰트 변경 가능

 

3. 코딩 스타일 설정

 

안드로이드 스튜디오의 프로젝트를 팀원과 같이 협업해야 할경우 코딩 룰을 정해야 합니다.

※ 참조 : https://naver.github.io/hackday-conventions-java/

 

카멜 표기법 "camelCase"

  • 첫 문자 첫글자는 소문자로 표기, 그 이후 연결된 문자들은 첫글자 대문자로 표기
  • "단봉낙타 표기법" 
  • 변수명, 함수명에 사용

파스칼 표기법 "PascalCase"

  • 모든 문자의 첫글자 대문자로 표기
  • "쌍봉낙타 표기법" 
  • 클래스명에 사용, 가끔 함수에도 사용

스네이크 표기법 "snake_case"

  • 모든 문자의 첫글자 소문자로 표기, 각 문자들을 '_' (언더바)로 이어서 사용 
  • 변수명, 함수명, 데이터 타입, 네임스페이스 등에 사용

 

그 중 코딩 스타일에 대해서 설정하는 방법에 대해서 알아보겠습니다.

코딩 스타일은 대표적으로 BSD 스타일, K&R 스타일, GNU 스타일이 있습니다.

// BSD Style
// Berkeley Software Distribution
// 버클리 대학(미국 최고의 대학)에서 소프트웨어 배포시 사용한 스타일
if(조건)
{
   처리로직
}

// K&R Style
// Kernighan and Ritchie style
// C의 아버지 (Kernighan, Ritchie)가 쓴 저서 
// 'The C Programming Language'라는 책(88`)에서 사용한 스타일이다. 
// 이 사람의 영향력 때문에 코딩 스타일의 원조이자 최고의 스타일로 취급되는 경우가 종종 있다.
if(조건){
   처리 로직
}

// GNU Style
// GNU 프로젝트 참여자들이 사용한 스타일
if(조건)
    {
      처리 로직
    }

 

이러한 코딩 스타일을 Import 및 Export 하는 방법에 대해서 알아보겠습니다.

 

[ 안드로이드 환경설정 ] → [ Editor ] → [ Code Style ] → [ Java ] 내 탭에서 코드 스타일을 변경
[ 설정 아이콘 ] → [ Export ] → [ InteliJ IDEA code style XML ] 로 설정 Export
이름 및 저장할 경로 지정하여 OK

AndroidStudio_BSDStyle.xml

<code_scheme name="BSDStyle" version="173">
  <JavaCodeStyleSettings>
    <option name="SPACE_BEFORE_COLON_IN_FOREACH" value="false" />
  </JavaCodeStyleSettings>
  <codeStyleSettings language="JAVA">
    <option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
    <option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
    <option name="BRACE_STYLE" value="2" />
    <option name="CLASS_BRACE_STYLE" value="2" />
    <option name="METHOD_BRACE_STYLE" value="2" />
    <option name="LAMBDA_BRACE_STYLE" value="2" />
    <option name="ELSE_ON_NEW_LINE" value="true" />
    <option name="WHILE_ON_NEW_LINE" value="true" />
    <option name="CATCH_ON_NEW_LINE" value="true" />
    <option name="FINALLY_ON_NEW_LINE" value="true" />
    <option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
    <option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
    <option name="ALIGN_MULTILINE_FOR" value="false" />
    <option name="ALIGN_THROWS_KEYWORD" value="true" />
    <option name="ALIGN_MULTILINE_EXTENDS_LIST" value="true" />
    <option name="ALIGN_MULTILINE_METHOD_BRACKETS" value="true" />
    <option name="SPACE_AROUND_UNARY_OPERATOR" value="true" />
    <option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
    <option name="SPACE_BEFORE_CLASS_LBRACE" value="false" />
    <option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
    <option name="SPACE_BEFORE_IF_LBRACE" value="false" />
    <option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
    <option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
    <option name="SPACE_BEFORE_DO_LBRACE" value="false" />
    <option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
    <option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
    <option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
    <option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
    <option name="SPACE_BEFORE_SYNCHRONIZED_LBRACE" value="false" />
    <option name="SPACE_BEFORE_ELSE_KEYWORD" value="false" />
    <option name="SPACE_BEFORE_WHILE_KEYWORD" value="false" />
    <option name="SPACE_BEFORE_CATCH_KEYWORD" value="false" />
    <option name="SPACE_BEFORE_FINALLY_KEYWORD" value="false" />
    <option name="CALL_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
    <option name="CALL_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
    <option name="METHOD_PARAMETERS_WRAP" value="1" />
    <option name="METHOD_PARAMETERS_LPAREN_ON_NEXT_LINE" value="true" />
    <option name="METHOD_PARAMETERS_RPAREN_ON_NEXT_LINE" value="true" />
    <option name="EXTENDS_LIST_WRAP" value="2" />
    <option name="EXTENDS_KEYWORD_WRAP" value="2" />
    <option name="THROWS_KEYWORD_WRAP" value="2" />
    <option name="METHOD_CALL_CHAIN_WRAP" value="1" />
    <option name="IF_BRACE_FORCE" value="3" />
    <option name="DOWHILE_BRACE_FORCE" value="3" />
    <option name="WHILE_BRACE_FORCE" value="3" />
    <option name="FOR_BRACE_FORCE" value="3" />
    <option name="PARAMETER_ANNOTATION_WRAP" value="2" />
    <option name="VARIABLE_ANNOTATION_WRAP" value="2" />
    <option name="ENUM_CONSTANTS_WRAP" value="2" />
    <indentOptions>
      <option name="USE_TAB_CHARACTER" value="true" />
      <option name="SMART_TABS" value="true" />
    </indentOptions>
  </codeStyleSettings>
  <codeStyleSettings language="XML">
    <option name="FORCE_REARRANGE_MODE" value="1" />
    <indentOptions>
      <option name="CONTINUATION_INDENT_SIZE" value="4" />
    </indentOptions>
    <arrangement>
      <rules>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>xmlns:android</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>^$</XML_NAMESPACE>
              </AND>
            </match>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>xmlns:.*</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>^$</XML_NAMESPACE>
              </AND>
            </match>
            <order>BY_NAME</order>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>.*:id</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
              </AND>
            </match>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>.*:name</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
              </AND>
            </match>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>name</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>^$</XML_NAMESPACE>
              </AND>
            </match>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>style</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>^$</XML_NAMESPACE>
              </AND>
            </match>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>.*</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>^$</XML_NAMESPACE>
              </AND>
            </match>
            <order>BY_NAME</order>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>.*</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
              </AND>
            </match>
            <order>ANDROID_ATTRIBUTE_ORDER</order>
          </rule>
        </section>
        <section>
          <rule>
            <match>
              <AND>
                <NAME>.*</NAME>
                <XML_ATTRIBUTE />
                <XML_NAMESPACE>.*</XML_NAMESPACE>
              </AND>
            </match>
            <order>BY_NAME</order>
          </rule>
        </section>
      </rules>
    </arrangement>
  </codeStyleSettings>
</code_scheme>

[ Import Scheme... ] 를 통해 Import
[ OK ] 클릭

 

4. 터미널 변경

 

안드로이드 스튜디오에서 제공되는 기본 터미널을 변경하는 법에 대해 알아보겠습니다.

윈도우 깃에서 제공하는 터미널로 변경하여 보겠습니다.

[ Tools ] → [ Terminal ] → [ Shell Path ] → [ 깃설치경로\bin\bash.exe ] 변경 → [ Apply ] → [ OK ]
UI 및 기능이 Git bash로 변경된 것을 확인