안드로이드&IOS 앱 개발자 양성

안드로이드&IOS 앱 개발자 양성(68일차)

HRuler 2020. 7. 13. 18:16
더보기

** 설치 시 프로그램을 설치 시 다운로드 받으거라 안된다고 나올 때

** Android하기 위한 준비
1. JDK 설치
2. Android Studio 설치
3. 환경 설정
4. 에뮬레이터 설치

** Java Build Tool 설치
1. Maven
2. Gradle

** Document
1. Android의 기본 원리나 프로젝트 생성 - 한글 지원
2. API에 대한 설정

** 프로젝트 실행 : [Run] - [run app]을 선택해도 되고 초록 삼각형 아이콘을 클릭해도 된다.

** 프로젝트 구조
1. manifests/AndroidManifest.xml
2. Java 디렉토리
3. res 디렉토리
4. Gradle Script

** 디버깅(Debugging)
1. break point 설정
2. Debug Mode 실행 : [Run] - [Debug]

** Exception 확인

** Git Hub 연동
1. 프로젝트 업로드

** 안드로이드 화면 출력
1. Activity
2. ViewGroup : 뷰들을 모아서 출력하는 레이아웃
3. View : 화면에 보여지는 객체로 Widget이라고도 한다.

** View를 만드는 방법
1. Java 코드로 뷰를 만들기
2. Layout.xml 파일을 이용해서 xml로 만들기
3. 보통은 기본 화면은 xml로 설정하고 이후 속성변경은 java 코드로 수행하는 경우가 많다.

** View 실습 - Java 코드로 뷰를 생성
1. Android Project 생성
2. MainActivity.java 파일의 onCreate 메소드를 수정

** View 실습 - xml로 뷰를 생성
1. File - New - Activity - Empty Activity
2. Activity 이름과 Layout 파일의 이름을 설정하는 대화상자가 출력
3. 생성된 Layout 파일의 내용 수정

** View의 종류
1. Window
2. Surface
3. View
4. 출력 구조
5. 실제 출력은 운영체제가 수행
6. Android에서의 View

** Android에서의 View

** Android Studio에서 Activity를 생성하거나 새로운 View를 인식하지 못해서 에러가 나는 경우

** View의 속성
1. id
2. layout_width, layout_height
3. 단위
4. 배경색 - background
5. padding, margin
6. visibility
7. clickable, longClickable
8. focusable
9. 맞춤을 위한 속성

** View의 속성을 xml에서 설정하고 버튼을 이용해서 View의 속성을 동적으로 변경
1. 실행 가능한 Activity를 추가
2. layout을 수정
3. Activity의 onCreate에서 버튼을 눌러서 텍스트의 설정을 변경

** final

** anonymous class

** JDK 설치 시 프로그램을 설치 시 다운로드 받은거라 안된다고 나올 때
- 시스템 환경 설정을 실행하고 [보안 및 개인 정보 보호]를 실행해서 하단에 나오는 메시지 클릭

** Android하기 위한 준비
1. JDK 설치

- 설치 확인 : windows의 경우는 환경 변수에 Profram Files - Java - jdk - bin이라는 디렉토리를 path에 추가하고 명령어를 입력
- 터미널에서 java -version(JRE 설치 여부와 버전 확인), javac -version(JDK 설치 여부와 버전 확인)
2. Android Studio 설치
3. 환경 설정
1) Mac에서는 Android Studio 메뉴의 Preferences를 실행해서 설정
2) Windows에서는 환경 설정 메뉴가 대부분 window 메뉴에 있음
4. 에뮬레이터 설치

** Java Build Tool
1. Maven
- pom.xml 파일을 기반으로 하는 빌드 도구

- spring mvc project의 기본 빌드 도구

2. Gradle

- build.gradle 파일을 기반으로 하는 빌드 도구

- android studio project의 기본 빌드 도구

- json 형식으로 설정

** Document
1. Android의 기본 원리나 프로젝트 생성 - 한글 지원

https://developer.android.com/guide 

2. API에 대한 설정

https://developer.android.com/reference/packages


** 프로젝트 실행 : [Run] - [run app]을 선택해도 되고 초록 삼각형 아이콘을 클릭해도 된다.

- 에뮬레이터로 실행하는 경우는 미리 설치가 되어 있어야 한다.

** 프로젝트 구조
1. manifests/AndroidManifest.xml

- 앱의 환경 설정 파일

- 앱의 기본 모양, 컴포넌트 등록과 삭제, 권한 설정 등을 한다.

  컴포넌트 안에 컴포넌트를 만들었더라도 여기 등록이 안되면 사용할 수 없다.

  컴포넌트는 개발자가 클래스를 이용해서 만들지만 인스턴스를 만들어서 실행하는 것은 Android System이 한다.

  이것을 제어의 역전(IoC - Inversion of Control)이라고 한다.

2. Java 디렉토리
1) 패키지 이름 : 소스 파일

2) 패키지 이름(androidTest) : 안드로이드 앱을 테스트 하기 위한 클래스

- 환경 설정을 읽어서 테스트

3) 패키지이름(test) : 단위 테스트를 하기 위한 클래스

- 환경 설정은 읽지 않고 테스트 : 알고리즘을 테스트

3. res 디렉토리

- 프로그램 실행에 필요한 자원이 저장되는 디렉토리

- 여기에 저장된 리소스는 앱이 실행될 때 메모리에 전부 로드된다.

- 안드로이드는 리소스에 저장된 자원을 하나의 상수에 할당해서 자원 이름을 직접 사용하지 않고 리소스 ID를 이용해서 사용할 수 있도록 해준다.

- 안드로이드에서는 리소스를 만들 때 소문자와 숫자만 이용해서 만들도록 하고 영문 소문자로 시작하도록 강제한다.

4. Gradle Script

- 빌드를 위한 gradle 파일이 위치하는 디렉토리로 build.gradle이 빌드 설정을 위한 파일

- project 수준이 있고 module 수준이 있는데 project는 애플리케이션 1개를 의미하고 module은 독립적으로 실행할 수 있는 단위여서 하나의 project에 여러 개의 module을 만드는 것이 가능하다.

 

** 디버깅(Debugging)

- 디버깅은 논리적인 오류나 예외를 처리하기 위해 메모리의 값을 확인하면서 실행하는 작업

1. break point 설정 : 라인 번호 옆의 gutter를 클릭해서 생성

2. Debug Mode 실행 : [Run] - [Debug]

- 논리적인 오류나 NullPointerException의 경우에 주로 이용

 

** Exception 확인

- printStackTrace에서 위에서부터 아래로 내려오면 자신이 만든 클래스 중에서 가장 먼저 나오는 것을 찾아서 그 위치부터 안으로 들어가면 처리

 

** Git Hub 연동

1. 프로젝트 업로드

1) [VCS] - [Import into Version Control] - [Share Project on Github]

- git이 설치되어 있지 않으면 git을 설치하라고 뜨고 설치가 끝나면 Android Studio를 종료하고 다시 시작해서 수행

2) id와 password 입력 창이 보이고 로그인을 수행
3) 레포지토리 이름 설정하는 창이 보임

** 안드로이드 화면 출력
1. Activity

- 안드로이드 화면 출력 컴포넌트

- 이 클래스에 setContentView(View 또는 layout ID) 메소드를 호출하면 Activity에 메인 뷰가 설정된다.

2. ViewGroup : 뷰들을 모아서 출력하는 레이아웃
3. View : 화면에 보여지는 객체로 Widget이라고도 한다.
- 안드로이드에서 화면 출력을 할 때는 ViewGroup을 이용해서 다른 ViewGroup이나 View를 하나로 만들고 이 ViewGroup을 Activity의 메인 뷰로 설정해서 출력

 

** View를 만드는 방법
1. Java 코드로 뷰를 만들기

- 동적으로 뷰를 생성할 수 있음

- 뷰의 속성을 변경할 때 컴파일부터 다시 해야 한다.
2. Layout.xml 파일을 이용해서 xml로 만들기

- Activity가 실행될 때 모든 뷰를 생성해야 한다.

- 뷰의 속성을 변경한 후 실행만 다시 하면 된다.

3. 보통은 기본 화면은 xml로 설정하고 이후 속성변경은 java 코드로 수행하는 경우가 많다

 

** View 실습 - Java 코드로 뷰를 생성
1. Android Project 생성

2. MainActivity.java 파일의 onCreate 메소드를 수정

 

** View 실습 : xml로 뷰를 생성

- 새로운 프로젝트를 생성하지 않고 실행 가능한 Activity 만들기

1. File - New - Activity - Empty Activity

2. Activity 이름과 Layout 파일의 이름을 설정하는 대화상자가 출력

- Launcher Activity를 체크하면 실행 가능한 Activity로 만들어 진다.

3. 생성된 Layout 파일의 내용 수정

 

** View의 종류

1. Window

- View의 일종으로 애플리케이션이 생성되어서 화면에 출력이되면 가장 바탕이 되는 뷰로 1개만 생성이 가능

  Window의 크기가 디바이스 전체 크기로 설정된다.

- View들을 관리

2. Surfaca

- iOS에서는 Layer라고도 부르는데 View 위에 놓여서 실제 그림을 그리는 역할을 수행하는 객체인데 단독으로 출력을 못한다.

3. View

- 터치 등의 이벤트를 처리할 수 있고 화면에 surface를 하나 가지고 있는 객체

4. 출력 구조

- Activity(View Controller) -> View -> Surface(Layout)

- 화면 변경

  Activity 변경

  Activity 그대로 두고 View를 변경

  View를 그대로 두고 Surface를 이용해서 출력하는 그림을 변경 

5. 실제 출력은 운영체제가 수행

- application에서 운영체제가 출력하는 surface를 직접 핸들링하게 되면 운영체제와 앱이 충돌할 수 있다.

  출력은 surface를 추상화한 View를 이용

- MVC : Model, View, Controller로 나누어서 구현

- View만을 이용해서 출력하게 되면 View에 데이터를 저장해야 한다.

- 출력은 View가 담당하고 데이터는 별도로 가질 수 있는 Activity의 개념을 도입해서 Activity가 Controller의 역할을 수행한다.

6. Android에서의 View

1) widget : 하나의 컴포넌트

2) view group : 다른 widget들을 모아서 출력할 수 있는 View

 

** Android에서 로그 출력

- System.out.print나 println을 사용할 수 없다.

- Log.레벨(String title, String msg)을 이용

- 출력은 logical 화면에서 확인

- 레벨은 i, d, w, e 등이 있다.

 

** Android Studio에서 Activity를 생성하거나 새로운 View를 인식하지 못해서 에러가 나는 경우

- [Build] - [Clean Project]와 [Rebuild Project]를 수행

- 그래도 안되면 Android Studio를 재실행

 

** View의 속성

1. id

- xml에서 view를 만들고 이 view를 자바에서 사용하고자 할 때 설정

  @+id/아이디 : +기호는 새로 생성한다라는 의미이고 +가 없으면 id를 사용

- ex) android:id = "@+id/name"

  자바코드에서는 위에 만든 뷰가 속한 뷰나 Activity에서 findViewById(아이디)로 가져와서 사용

2. layout_width, layout_height

- 필수 속성

- View의 너비와 높이

- 3가지 방법으로 설정

  match_parent(fill_parent) : 부모의 크기와 같이 만들어 줌

  wrap_content : 내용의 크기로 설정

  크기와 단위로 설정

- 크기 설정은 절대적이지 않고 부모의 Layout과 다른 View와의 관계에 따라 다르게 설정

3. 단위

1) 절대 단위 : px, in, mm

2) 상대 단위 : dp(dip), sp(sip), em

- Android에서는 dp나 sp를 이용해서 크기 설정하는 것을 권장한다.

4. 배경색 - background

- 색상값은 #ARGB나 #RGB를 이용해서 설정

- 각각의 색상은 16진수 2자리

5. padding, margin

- padding은 내부 여백으로 경계선과 내용물 사이의 여백

- margin은 외부 여백으로 내 경계선과 다른 콘텐츠의 경계선 사이의 여백

- padding과 margin으로 설정하면 4방향 모두 동일하게 설정되고 각각의 방향은 padding이나 margin 다음에 Left, Top, Right, Bottom을 이용해서 설정

6. visibility

- 뷰의 표시 여부

- visible, invisible(숨겨진 상태이지만 영역은 차지), gone(숨겨지며 영역도 사라짐)

7. clickable, longClickable

- boolean 값으로 설정해서 클릭 가능 여부를 설정

8. focusable

- 포커스를 받을 수 있는지의 여부

- 스마트 폰에서는 포커스를 받을 수 있는지 여부가 키보드 사용 가능 여부를 결정

9. 맞춤을 위한 속성

- LayoutParams와 layout_gravity

 

** View의 속성을 xml에서 설정하고 버튼을 이용해서 View의 속성을 동적으로 변경

1. 실행 가능한 Activity를 추가

2. layout을 수정

3. Activity의 onCreate에서 버튼을 눌러서 텍스트의 설정을 변경

 

** final

- 클래스 앞에 붙으면 상속할 수 없는 클래스

- 메소드 앞에 붙으면 오버라이딩할 수 없는 메소드

- 변수 앞에 붙으면 변경할 수 없는 변수

 

** anonymous class

- 클래스를 상속하거나 인터페이스를 implements해서 사용할 때 별도의 클래스를 만들지 않고 인스턴스를 생성해서 사용하는 방식

- 이 클래스 안에서는 지역변수는 사용 못함

  지역변수를 사용하고자 하면 finalfh 만들어서 사용

- Android Studio가 anonymous class 중에서 메소드가 1개인 경우는 람다 코드로 변환해버리는 경우가 있다.

  Android를 하기 전에 Java의 람다 문법은 숙지를 해야 한다.

  람다는 프로그래밍언어마다 호칭하는 것이 다르기 때문에 언어별로 따로 학습을 해야 한다.