Front-End/Kotlin

[Kotlin] 코틀린 언어 소개

psy_er 2024. 4. 13. 16:35
728x90

[Kotlin] 코틀린 언어 소개

 

< 코틀린 언어 소개 >

 

코틀린에서는 ; 생략 가능하다.

한 줄에 여러 명령을 작성하는 경우에는 반드시 ;로 구분한다.

 

프로젝트 시작 시 아무것도 없는 Empty Views Activity로 프로젝트를 생성하고,

프로젝트 Name의 첫 글자는 대문자로 설정한다.

 

name을 설정하면 package name이 자동으로 설정된다.

프로젝트를 저장하는 save location에는 한글이 포함되면 안 된다.

 

안드로이드 스튜디오는 에디터, 안드로이드 sdk는 컴파일시켜 준다.

ex) API 24 ("Nougat"; Android 7.0) ==> API 24, 7.0 이후의 sdk에서는 모두 실행 가능하다.

 

mainActivity에서 id값 설정은 삭제하고 시작하자.

gradle sync를 잘 시켜주자. sync는 처음 앱을 만들고 동기화를 시켜주는 작업이다.

sync는 app과 gradle을 동기화시켜 주는 것이다.

 

 

< 주요 파일 환경설정> 

MainActivity.kt

activity_main.xml 

 

- SDK 추가 설정

File -> Settings -> Languages&Frameworks -> Android SDK -> SDK Tools -> Google Play services 체크

 

- 클래스를 자동으로 import 하기 위해

File -> Settings -> Editor -> General -> Auto Import -> Kotlin -> Add unambiguous imports on the fly & Optimize imports on the fly 체크

 

- 에뮬레이터가 가끔 죽을 때, Wipe Data로 기존 데이터를 삭제

Device Manager ->...(메뉴) -> Wipe Data or Delete 후 새로운 에뮬레이터 추가 (+기호)

 

- RUN 구조

에뮬레이터와 프로젝트를 선택해 run 시키면 에뮬레이터에서 앱이 실행된다.

 

- Log Cat

컴파일한 여러 정보의 로그들을 볼 수 있다.

 

 

<안드로이드 소개>

안드로이드는 공개 운영체제인 리눅스를 기반으로 합니다.

안드로이드 앱은 자바나 코틀린 언어를 이용해 개발합니다.

안드로이드 운영체제의 주요 부분과 라이브러리, 구글에서 만든 앱 등의 코드는 대부분 공개되어 있습니다.

안드로이드 스마트폰은 구글 뿐 아니라 여러 제조업체에서 만들 수 있습니다.

안드로이드 앱은 구글의 플레이 스토어뿐만 아니라 다양한 방법으로 사용자에게 배포할 수 있습니다.

안드로이드 플랫폼에서는 모든 응용 프로그램이 평등하다는 사상을 바탕으로, 모바일에 기본으로 탑재된 앱과 개발자가 만든 앱이 똑같은 환경에서 똑같은 API를 이용합니다.

안드로이드는 자바 클래스를 런타임 때 그대로 실행하지 않고 DEX 파일로 컴파일합니다.

DEX 파일을 해석하는 ARTAndroid runtime에서 실행합니다.

 

 

<안드로이드 운영체제의 구조>

리눅스 커널 : 안드로이드는 리눅스에 기반을 둔 오픈소스 소프트웨어 스택입니다.

하드웨어 추상화 레이어 : 상위의 자바 API 프레임워크에서 하드웨어 기능을 이용할 수 있게 표준 인터페이스를 제공

안드로이드 런타임 : ART라고 하며 앱을 실행하는 역할

네이티브 C/C++ 라이브러리 : 네이티브 C/C++ 라이브러리를 이용할 수도 있는데 이를 안드로이드 NDK라고 합니다.

자바 API 프레임워크 : 앱을 개발할 때 사용하는 자바 API

 

 

<컴포넌트를 기반 개발>

컴포넌트는 애플리케이션의 구성 요소이다.

안드로이드에서는 클래스로 컴포넌트 개발을 합니다.

 

안드로이드 컴포넌트의 4가지 종류

액티비티 : 화면을 구성하는 컴포넌트입니다.

서비스 백그라운드 : 작업을 하는 컴포넌트입니다.

콘텐츠 프로바이더 : 앱의 데이터를 공유하는 컴포넌트입니다.

브로드캐스트 리시버 시스템 : 이벤트가 발생할 때 실행되게 하는 컴포넌트입니다.

 

주로 액티비티 컴포넌트를 활용합니다.

여러 개의 화면하나가 액티비티하나이다.

여러 화면이 존재한다면 액티비티가 여러 개 존재한다고 볼 수 있다.

 

< 액티비티끼리 직접적인 연결 불가 >

액티비티 간의 소통은 안드로이드 시스템을 통해서 처리한다. 액티비티 사이, 컴포넌트 사이의 직접적인 연결을 허용하지 않는다. 컴포넌트는 앱 안에서 독립된 실행 단위이다. 컴포넌트끼리 서로 종속되지 않아서 코드 결합이 발생하지 않는다. 컴포넌트가 앱 내에서 독립해서 실행되는 특징 덕분에 앱의 실행 시점이 다양할 수 있습니다. 안드로이드 앱에는 메인 함수 개념이 없다고 말합니다. 다른 애플리케이션을 라이브러리처럼 이용할 수 있습니다.

 

728x90