안드로이드 스튜디오의 기본 환경 설정에 대해 알아보겠습니다.
1. 테마 설정
안드로이드 스튜디오는 JetBrains 사의 IntelliJ IDEA 를 기반으로 한 통합 개발환경이기 때문에
IntelliJ에서 지원하는 테마들을 다운로드 받아서 사용할 수 있습니다.
안드로이드 스튜디오 내 마켓플레이스를 이용하는 방법과
JetBrains 테마 다운로드 페이지에서 직접 다운로드하는 방법을 이용하여
테마를 다운로드 받고 적용할 수 있습니다.
위 두가지 방법으로 개발자들에게 인지도 높은 [ Monokai Pro Theme ] 를 적용해보겠습니다.
1-1. 안드로이드 스튜디오 내 마켓플레이스를 이용하여 테마 다운로드
마켓플레이스에서 테마를 다운로드하는 방법은 마켓플레이스에서 배포되는 유명한 테마들만
다운로드 가능하기 때문에 테마 선택이 제한적입니다.
1-2. JetBrains 테마 다운로드 페이지에서 직접 다운로드
2. 폰트 설정
안드로이드 스튜디오 사용자가 원하는 폰트를 변경하는 방법에 대해 알아보겠습니다.
개발자들에게 인지도 높은 Source Code Pro 폰트를 적용해보겠습니다.
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 하는 방법에 대해서 알아보겠습니다.
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>
4. 터미널 변경
안드로이드 스튜디오에서 제공되는 기본 터미널을 변경하는 법에 대해 알아보겠습니다.
윈도우 깃에서 제공하는 터미널로 변경하여 보겠습니다.
'Mobile App Development > Android' 카테고리의 다른 글
[ Android ] 안드로이드 줄 바꿈 처리 (0) | 2024.04.08 |
---|---|
[ Android ] 안드로이드 구글 맵 내 위치 표시 (0) | 2022.02.13 |
[ Android ] 안드로이드 스튜디오 깃허브 연동 (0) | 2022.02.07 |
[ Android ] 안드로이드 에뮬레이터 간 통신하기 (0) | 2022.01.21 |
[ Android ] 안드로이드 AAR 라이브러리 생성 및 추가 (0) | 2022.01.14 |