안드로이드 앱 개발 기초

홍건우·2021년 7월 12일
0
post-thumbnail

안드로이드 앱은 Manifest file, App Resource, App Component로 구성된다.
Manifest file과 App Resource는 xml을 이용하고 App Component는 코틀린을 이용해 작성한다.

기본 용어

  • APK
    APK는 Android Application Package의 약자로 apk 파일에는 안드로이드 앱의 모든 콘텐츠가 들어있다.

  • Manifest file
    apk 안에 있는 "사용설명서" 같은 개념으로 안드로이드 시스템이 실행된 앱의 Manifest file을 읽고 적혀있는 대로 동작한다.

  • Activity
    화면 정보가 담겨있다. 안드로이드 앱에서 activity는 화면 또는 페이지라고 생각하면 된다.

  • Layout
    액티비티에서 표시해야하는 UI의 생김새가 담겨있다. App Resource 중 하나이다.

  • App Component
    안드로이드 앱 필수 기본 구성요소로 앱에 표시해야하는 정보와 앱의 동작이 담겨 있다. 액티비티는 앱 컴포넌트 중 하나이다.

XML

xml은 크게 element와 attribute로 구성된다.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello World!" />

위의 코드에서 TextView는 element이며, attribute로는 layout_width, layout_height, text등이 있다.
한마디로 Attributes는 element가 어떤 특성을 갖는지 표시하는 값이다.

Intent

MainActivity에서 새로운 액티비티를 띄우기 위해서는 아래와 같은 코드를 사용한다.

var intent = Intent(this, 액티비티이름::class.java)
startActivity(intent)

Intent는 개별 앱 컴포넌트 간에 런타임 바인딩을 제공하는 객체인데 쉽게 말해서 어떤 작업을 하겠다라는 의도를 표현하는 용도이다. 주로 다른 액티비티를 시작할 때 사용한다.

Intent(this, 액티비티이름::class.java)
this는 현재 코드가 적혀있는 곳을 의미한다. 인텐트를 생성할때 첫번째 값은 출발지 액티비티, 두번째 값은 도착지 액티비티를 적어주면 된다. 여기서 this를 명확하기 명시하기 위해서
this@출발지액티비티이름 으로 작성도 가능하다.

as

var button = view as Button

여기서 as는 코틀린에서 타입을 변경해서 사용하겠다라는 문법이다. 즉 타입 캐스팅이다.

앱에 인터넷 권한 설정하기

앱 개발 중 웹뷰를 사용하는 일이 있을때 인터넷 연결이 가능하게 하려면 AndroidManifest.xml 파일에 아래와 같이 코드 2줄을 추가해야한다.

<manifest ... >
  <uses-permission android:name="android.permission.INTERNET" />

  <application 
		...
		android:usesCleartextTraffic="true"
		...
	>
	  <activity ...>
		...
  </application>
</manifest>

Firebase

파이어베이스 애널리틱스를 사용하면 사용자들이 언제, 어떻게 앱을 사용하는지 알 수 있다.
애널리틱스뿐만 아니라 크래시리틱스, 클라우드 메시징, 동적링크 같은 기능들도 제공한다.

AAB(Android App Bundle)

AAB는 앱의 모든 컴파일된 코드와 리소스를 ㅗㅍ함하고 APK 생성 및 서명을 구글 플레이에 맡기는 방식이다. 구글 플레이에서 자동으로 기기별로 최적화된 apk를 생성해서 설치를 지원하고 보안 수준도 좋기때문에 apk의 다음 세대로 볼 수 있다. AAB는 구글플레이에서만 설치할 수 있는 방식이라서 AAB파일을 개인적으로 전달해도 설치가 불가능하다.
(2021년 8월 부터 구글 플레이에 앱을 업로드할 때는 APK 형식은 사용이 불가능하고 AAB만 사용이 가능하다.)

profile
컴퓨터공학과 학생입니다

0개의 댓글