# 버전 선택 : 버전마다 지원되는 요소가 다 다르지만 다 숙지하는 데는 어려움이 있다. -> 점유율을 참고할 수 있다.
프로젝트 구조
manifests : 환경설정 파일 및 메타 정보 파일
- allowBackup : 앱 데이터 백업, 복원 여부 (Default : true)
- icon : 앱 아이콘과 구성 요소에 대한 기본 아이콘
- label : 사용자가 읽을 수 있는 레이블과 구성 요소에 대한 기본 레이블
- roundIcon : 원형 아이콘이 적합한 경우 원형 아이콘 사용
- supportsRtl : 오른쪽에서 왼쪽으로 레이아웃을 지원할지 여부 ( Default : false)
- theme : 기본 테마 스타일, Activity 마다 다르게 설정 가능
java : 실제 코드 부분, 유닛 테스트(기능별 테스트)를 지원하기 때문에 3가지
res : layout : 화면의 UI를 담당하는 레이아웃 리소스
- layout : 화면의 UI를 담당하는 레이아웃 리소스
- mipmap : 애플리케이션 아이콘 등 이미지
- values : 문자열, 컬러
Gradle Scripts : 앱의 설정 정보, 기타 앱이 의존하는 라이브러리 정보
# import 과정에서 매번 [ Alt + Enter ]로 진행하는 것이 불편하기 때문에 Settings에서 Auto Import를 활성화한다.
컴파일 vs 빌드
- 컴파일 : 통역
- 빌드 : 컴파일 + 링킹 + 로드
- 링킹 : 여러 개의 코드로 분리된 기능들을 취합하는 과정
- 로드 : 실제로 메모리에 올리는 것
주석
- java 주석 : 한 줄 - "//", 여러 줄 - "/*" ~ "*/"
- javaDoc 형식의 주석 : "/*" ~ "*/", 도움말로 참조 가능
- XML 주석 : "<!--" ~ "-->"
진입점
안드로이드는 단일 진입점이 없다. cf) Java, C, C#의 main
4대 컴포넌트가 진입점 역할
- Activity :화면에 포커싱 되어 사용자와 상호 작용
- Service : 백그라운드에서 실행되는 구성 요소, 사용자 UI 제공 X
- BroadCast Receiver : 시스템 변경 사항 알림
- Content Provider : 데이터 공유
#안드로이드 런처 : 안드로이드의 홈 화면을 담당하는 특수한 앱, 'Home' 키를 누르면 복귀하는 앱
코드의 재사용성과 유지/보수
클래스 vs 인스턴스
- 클래스 : 객체를 위한 설계도
- 인스턴스 : 설계도(Class)를 통해 생성된 실제 객체
캡슐화
- 객체의 내부 정보를 외부로부터 은닉하는 것
- 내부의 복잡한 로직을 숨겨 외부에서 기능을 사용에 용이하게 한다.
- 내부의 주요 속성들을 외부로부터 보호
* 접근 지시자 : 캡슐화를 지원하기 위해 존재
- public : 프로그램의 모든 위치에서 액세스 가능
- protected : 동일한 패키지 또는 다른 패키지의 서브 클래스에서만 액세스 가능
- default : 동일한 패키지에서만 액세스 가능
- private : 자신의 클래스에서만 액세스 가능, 클래스나 인터페이스는 불가
필드에서도 public을 사용하여 외부에서 접근할 수 있지만 외부에서 객체의 속성에 직접 접근 가능해지기 때문에 캡슐화 원칙이 지켜지기 어렵다. -> 외부와의 상호 작용은 public 메소드 사용을 권장
상속
- 다른 클래스의 기능을 그대로 사용하면서 자신만의 기능을 추가하는 확장의 개념
- 메소드 오버 로딩 : 같은 기능을 하지만 입력받는 파라미터의 자료형이 다를 때 사용
- 메소드 오버 라이딩 : 상속에서 부모가 제공한 기능을 그대로 쓰지 않고 바꿔서 사용하는 것
라이브러리
- 개발의 생산성 향상을 위하여 자주 사용하는 기능을 여러 곳에서 사용할 수 있도록 묶은 것
- bulid.gradle에서 dependencies에 의존성이 있는 라이브러리를 적는다.
프레임워크
- 라이브러리처럼 자주 사용하는 기능을 묶어 개발 생산성 향상을 목적으로 한다.
- 공통적인 부분은 상위 클래스에서 구현, 추가 구현 부분은 하위 클래스의 Callback을 호출
※ 라이브러리 vs 프레임워크 : 코드 흐름의 제어권
- 라이브러리 : 앱 흐름을 직접 제어
- 프레임워크 : 앱 코드가 프레임워크에 의해 사용된다.
Callback 함수
- 외부에서 불려지는 함수 (직접 호출 X)
'독서(IT) > Kotlin 안드로이드' 카테고리의 다른 글
4장 - Kotlin(코틀린) 프로그래밍(1) (0) | 2020.05.28 |
---|---|
안드로이드 with Kotlin 앱 프로그래밍 가이드 (0) | 2020.03.17 |