[TIL] Android 앱 개발 입문 : Android와 Android Studio

지혜·2023년 12월 11일

Android_TIL

목록 보기
15/70

✏231211 월요일 TIL(Today I learned) 오늘 배운 것

📖Kotlin? Android?

[코틀린]

  • 프로그래밍 언어 : 컴퓨터와 사람이 소통할 수 있게 만드는 언어.
    =>컴퓨터에서 동작하는 소프트웨어를 개발하기 위해 만들어진 도구.

[안드로이드]

  • 운영체제 : 하드웨어 장치를 사람이 사용할 수 있도록 환경을 제공하는 소프트웨어
  • 모바일 운영체제(시스템 소프트웨어)
    : 모바일 하드웨어 자원을 직접 제어,관리하며 모바일 앱(응용 소프트웨어)을 실행하기 위한 플랫폼을 제공한다.
    =>시스템 하드웨어 관리 + 하드웨어 추상화 플랫폼 + 공통 시스템 서비스 제공

📖안드로이드 활용하기

  • 리스트 뷰 (ListView) : 리스트 형태의 데이터를 보여주는 위젯.
    => 정해진 형식의 여러 데이터들을 한꺼번에 보여주고 싶을 때 활용한다. (ex. SNS 피드 목록, 댓글 목록)
    +데이터 처리 : 리스트 뷰를 활용할 때 이미지, 문자열 등 여러 데이터들이 빈번하게 추가되고 삭제되는 것을 효율적으로 처리하는 방법 알아보기.

  • 디바이스 기능 접근 : 사진 촬영, 갤러리 가져오기, 전화 걸기 등의 디바이스 기능에 접근하여 활용하는 법 배워보기.

  • 이미지처리, UI관련 여러가지 자주 사용되는 라이브러리 활용하기.

  • XML을 활용하여 요소들을 배치하고, 색깔 및 크기를 조절하는 등 레이아웃, 위젯, 뷰를 이해하고 적절하게 사용하여 앱 꾸며보기.


📖안드로이드 스튜디오에서 프로젝트 생성하기

[안드로이드 스튜디오 (Android Studio)]

  • 구글에서 제공하는 안드로이드 앱 개발을 위한 통합 개발 환경(IDE) = 개발 도구
    => 풍부한 기능과 도구(레이아웃 에디터, 코드 편집기, 디버깅 도구, 에뮬레이터, 플러그인 시스템 등)를 활용한 통합된 개발 환경이다.
  • 안드로이드 스튜디오를 통해 앱을 개발하기 위해서는 프로젝트를 생성해야 한다.

[안드로이드 스튜디오의 프로젝트 구조]

1. manifests파일 - AndroidManifest.xml

  • 앱의 기본 특징을 설명하고, 앱의 구성요소인 컴포넌트를 정의한 xml파일이다.
  • <manifest>태그의 package 속성 : 패키지 이름(앱의 고유한 식별자 역할) 정의.
  • <application>태그 : 앱을 구성하고 있는 컴포넌트 태그들을 하위에 정의.
    • [안드로이드 4대 컴포넌트]
    • <activity>태그 : 액티비티 (UI를 통해 사용자와 상호작용하며 어떤 활동을 할 때 실행되는 컴포넌트)
    • <service>태그 : 서비스 (액티비티와 상관 없이 백그라운드에서 수행작업을 할 때 사용)
    • <receiver>태그 : 브로드 캐스트 수신기 (특정 이벤트가 발생했을 때 다수의 어플리케이션에게 전달)
    • <provider>태그 : 콘텐츠 제공자 (어플리케이션 사이에서 데이터를 제공(데이터를 공유)하는 통로 역할)
    • [+컴포넌트 태그들의 하위 태그]
    • <intent-filter>태그 : 해당 컴포넌트가 수신 할수 있는 인텐트를 걸러내는 역할을 수행
      +명시적 인텐트, 암시적 인텐트 2가지 타입의 인텐트 중에서 암시적 인텐트 일 때 사용자로 하여금 어느 어플리케이션을 사용할지 선택하고자 할 때 사용.

2. 코틀린 소스 파일 - MainActivity.kt

  • 코틀린 프로그래밍 언어로 작성.
  • 안드로이드 프로젝트 생성 시에 자동으로 만들어진 코틀린 파일이다.
package com.example.kotlin
// 안드로이드 생성시에 설정된 클래스가 속한 패키지

	class MainActivity : AppCompatActivity() {
    // AppCompatActivity는 Activity의 서브 클래스로서 하위 플랫폼 버전을 지원
    
    		override fun onCreate(savedInstanceState: Bundle?) {
            // 액티비티가 생성되는 순간에 딱 한 번 호출. 주로 액티비티와 관련된 변수 초기화 및 사용자 인터페이스 설정 코드 포함
                super.onCreate(savedInstanceState)
                
        		setContentView(R.layout.activity_main)
                //R.layout.activity_main이 가리키는 리소스를 이 액티비티의 콘텐츠뷰로 사용하겠다는 의미
     }

3. res(리소스 파일)

  • 이미지나 문자열 등의 리소스를 코틀린 코드에서 분리해서 독립적으로 유지,관리 한다.
    => 여러가지 화면 크기나, 언어 설정 등 다양한 환경 변화를 코드의 변경 없이 수용하게 한다.
  • 리소스 폴더
    • drawable: 이미지 리소스
    • layout: UI구성에 필요한 XML 리소스
    • mipmap: 앱 아이콘 이미지
    • values: 문자열 등의 값으로 이용되는 리소스
  • 사용시 주의 사항
    • res 하위 폴더 명은 지정된 폴더명을 사용해야 한다.
    • 각 리소스 폴더 하위에 다시 폴더를 정의 할 수 없다.
    • 리소스 파일명에는 알파벳소문자, 숫자0~9, 언더바( _ ) 만 사용이 가능하다. 알파벳 대문자 불가능.

4. 프로젝트 빌드 (Gradle Scripts)

  • Gradle : 안드로이드 앱의 빌드 도구.
  • build.gradle : Gradle 설정 파일
    • build.gradle(Project:AndroidLab) [프로젝트 수준] : 모든 모듈에 적용되는 빌드 구성
    • build.gradle(Module:AndroidLab.app) [모듈 수준]
      : 컴파일에 사용하는 SDK버전, 앱이 지원하는 최소 API버전 등을 설정한다.
      : 외부 저장소에서 해당 라이브러리를 다운받아와 빌드하거나 모듈 자체를 빌드하기 위해 요구되는 종속성을 명세한다.
    • settings.gradle : 앱을 빌드할 때, 어떤 모듈을 포함할지를 Gradle에 알려준다.

✏새롭게 알게된 것과 느낀점

  • 안드로이드 스튜디오의 구조에 대해 알게 되면서, 정확히 어떤 부분에서 어떤 면이 활용되는지 정확하게 알 수 있는 계기가 되었다.
  • 리소스 파일에 대해 주의사항이 명확하다는 것을 알게 되었다. 이전 실습을 따라하면서 꼭 그 파일을 사용해야만하는지 등에 대한 궁금증이 좀 있었는데 오늘 해결되었다.
  • 프로그래밍 언어인 코틀린과 운영체제인 안드로이드의 차이점을 명확하게 알고, 왜 안드로이드 수업을 따로 하고, 코틀린과 구분 짓는지 깨달을 수 있는 계기가 되었다.
  • build.gradle(Module:app)에서 바로 라이브러리를 추가하고 관리하는 점이 보기 좋은 것 같다.
profile
파이팅!

0개의 댓글