웹에 대한 기초를 배우고보니 현대인이 많이 사용하는 스마트폰에 대한 관심이 커졌다. 일반인들은 컴퓨터보단 비교적 핸드폰을 많이 사용하니까 더 많은 사용량을 기대한 것 같기도 하다.
사실 내가 객체지향 프로그래밍에 대해 미숙한 것 같아 자바스크립트 프로젝트를 여러번 해보고 코틀린을 배우려고 했는데 마음이 급한건지 자신감이 넘치는건지 일단 새로운걸 배우고 싶은 생각이 컸던 것 같다.
먼저 아직 무슨 앱을 만들고 싶은건지는 모르겠지만 모바일 게임보다는 인스타그램과 같은 웹을 기반으로 한 앱을 만들어 보고 싶다.
이번 단원은 안드로이드의 구성요소와 특징에 대해 배운다. 어떻게 앱이 작동하는지, 개발을 하며 어떤 것들을 고려해야하는지에 대해 다루기 때문에 완전 초보자인 나한테는 조금 어려웠던 것 같다.
안드로이드의 특징
- 리눅스 기반
- 자바 / 코틀린 사용
- 오픈소스
- 다양한 배포 방법
- 모든 앱이 평등하다 (기본 어플과 다운받은 어플이 같은 환경에서 동작한다)
안드로이드 운영체제의 구조
- 리눅스 커널 -> 오픈소스
- 하드웨어 추상화 레이어 : 하드웨어가 변경되어도 APP에서 사용하는 API는 그대로 사용 (호환성)
- ART : 앱을 실행하는 역할
앱 개발의 특징
컴포넌트 기반 개발
컴포넌트 : 애플리케이션의 구성요소
- 컴포넌트의 종류
1. 액티비티 : 화면을 구성하는 컴포넌트
2. 서비스 : 백그라운드 작업을 하는 컴포넌트
3. 콘텐츠 프로바인더 : 앱의 데이터를 공유하는 컴포넌트 ex) 인스타그램에서 갤러리 앱에 있는 사진을 가져오기
4. 브로드캐스트 리시버 : 시스템 이벤트가 발생할 때 실행되게 하는 컴포넌트
- 컴포넌트는 필요한만큼 사용
정해진 규칙 X
- 컴포넌트는 독립된 실행 단위
- 컴포넌트끼리 종속 X
ex) 카카오톡 채팅창을 들어가기 위해선 채팅목록에서 들어가야한다 -> 목록Activity에서 채팅창 Activity객체 생성 (X)
> 두 컴포넌트가 종속되어 있지 않기 때문에 채팅 알림을 누르면 채팅목록을 거치지 않고 바로 채팅창에 들어갈 수 있음
리소스를 활용한 개발
리소스 : 코드에서 정적인 값을 분리한 것 ex) img/ bgm
> 코드 길이 간소화, 유지/보수성 향상
앱 구성 파일 분석
이름 | 설명 |
build.gradle | 빌드 설정 파일 |
AndroidManifest.xml | 앱의 메인 환경 파일 |
res | 리소스 폴더 |
activity_main.xml | 레이아웃 XML 파일 |
MainActivity.kt | 메인 액티비티 파일 |
'Android > 안드로이드 앱 프로그래밍 with 코틀린' 카테고리의 다른 글
안드로이드 앱 프로그래밍 with 코틀린 (0) | 2023.02.09 |
---|
댓글