매우 높은 확률로 여러분이 지금 쓰고 있는 휴대폰은 갤럭시 혹은 아이폰일 것입니다. 그리고, 아이폰이 아니라면, 그 휴대폰은 안드로이드를 기반으로 작동하고 있을 것입니다. 안드로이드 앱 개발을 배우기에 앞서, 안드로이드의 간단한 구조와 안드로이드 앱이 어떻게 작동하는지 알아볼까요?
안드로이드는 구글에 의해 개발되고 유지되는 오픈 소스 운영체제입니다. 이는 모바일 기기, 특히 스마트폰과 태블릿에 사용되도록 최적화된 리눅스 기반의 운영체제입니다. 안드로이드 운영체제의 주요 구성은 다음과 같은 네 가지 주요 컴포넌트로 이루어져 있습니다:
안드로이드는 다양한 버전으로 출시되어 왔습니다. 각 버전은 특정 기능과 API 변경을 도입하여 개발자들이 더 풍부하고 강력한 애플리케이션을 만들 수 있도록 도와줍니다. 안드로이드 개발 시, 특정 버전의 API 레벨을 목표로 설정함으로써, 그 버전 이상의 모든 기기에서 앱이 작동하도록 할 수 있습니다. 다시 말해, 앱을 만들때 설정한 API 버전 이상의 휴대폰은 일반적인 경우 항상 앱이 작동합니다.
지금 안드로이드 휴대폰 있으세요? 휴대전화 정보에서 지금 쓰는 스마트폰이 어떤 버전인지 알 수 있습니다. 기종에 따라 약간씩 다르기는 하지만, 대개 다음과 같은 과정을 거쳐 스마트폰의 버전을 확인할 수 있습니다.
버전에 따라 이런 이스터에그도 볼 수 있습니다! 안드로이드 버전 글자를 빠르게 연타해 보세요!
안드로이드 애플리케이션 개발 초기에는 주로 자바 언어가 사용되었습니다. 자바 애플리케이션은 JVM(Java Virtual Machine) 위에서 실행되지만, 안드로이드는 전통적인 JVM 대신, 자체적인 가상 머신인 Dalvik VM과 ART를 사용합니다. 이 가상 머신들은 모바일 환경에 최적화되어 있어, 리소스가 제한된 환경에서도 효율적으로 작동할 수 있도록 설계되었습니다.
최근에는 코틀린이 인기를 끌고 있습니다. 코틀린은 자바와 완벽하게 호환되면서, 보다 간결하고 표현력이 뛰어난 언어입니다. 코틀린은 안전한 변수 처리, 불변성, 확장 함수 등 현대 프로그래밍 패러다임을 지원하여 개발자가 보다 효율적이고 안정적인 코드를 작성할 수 있도록 돕습니다. 2017년 구글이 공식적으로 안드로이드 개발 언어로 코틀린을 지원하기 시작하면서, 이 언어는 안드로이드 앱 개발에서 중요한 위치를 차지하게 되었습니다. 이번 수업에서는 코틀린을 사용하여 안드로이드 앱을 개발할 것입니다.
젯팩 컴포즈는 안드로이드 앱 개발을 위한 현대적인 선언형 UI 툴킷입니다. 구글이 2021년에 정식으로 발표한 이 툴킷은 기존의 뷰 기반 UI 프레임워크를 대체하며, 코틀린을 사용하여 UI를 더 간결하고 직관적으로 구성할 수 있게 해줍니다.