구매 이유 : 안드로이드가 궁금한데 시작을 어떻게 해야 할지 모르겠어서 이것저것 찾아보았다 -> 시작하는 단계에서 정보가 예쁘게 모아져 있고 간단한 프로그램까지 실습해볼 수 있는 내용이 담긴 이 책을 구매했다.
좋은 점 : 코틀린을 접해볼 수 있었다 + 코틀린 장점을 알 수 있었다
이전에 자바 입문단계를 배웠었는데, 이 책에서 자바와 같은 점과 다른 점을 설명해 주어서 더욱 흥미를 유발하기도>_<
공부 의의 : 실제로 하나의 어플을 제작해보는 경험을 처음 해본다. 즉 완성된 프로그램의 구조를 파악할 수 있겠고, 다음 단계로 접근하기 위한 계단이 될 것 / 안드로이드를 다룬 경험 (T자형 학습을 위해 일단 이것저것 접해볼 생각이다)
이 책이 다루는 범위
안드로이드 스튜디오
코틀린 프로그래밍 - 예제를 통한 문법, 기능 자연스레 익히기
레이아웃 작성 - ConstrainLayout 기반으로 (복잡한 XML코드 x) -> 아 레이아웃 에디터의 Design탭을 사용하고 xml탭은 안 건드릴 거라는 것 같다. + 안드로이드에는 LinearLayout, RelativeLayout, FrameLayout 등의 여러 레이아웃이 준비되어 있는데 이 책의 예제는 뷰의 제약설정에 기반한 ConstrainLayout을 기본으로 사용한다고 한다. (가장 최근에 등장, 안드로이드 스튜디오에서 기본 레이아웃으로 자리함)
Anko 라이브러리 - 인텐트, 다이얼로그 등을 쉽게 사용하는 라이브러리 다루기
안드로이드 구성요소
- 액티비티 : 화면 구성하는 기본요소 (MainActivity.kt)
- 프래그먼트 : UI 요소 : 지도, 좌우로 슬라이드되는 화면 구성
- 기기의 사진 정보를 프로바이더를 사용해 가져오는 방법 다루기
- 손전등 앱을 만들면서 UI를 가지지 않는 컴포넌트인 서비스를 다루기
그 외
- 간단한 코드를 통해 스레드를 쉽게 다뤄보기
- Realm 데이터베이스를 사용해 쉽게 데이터베이스 다뤄보기
- 사운드 재생 방법 다뤄보기
- 지도, 현재 위치 정보 다루는 방법
- 구글 플레이 스토어에 앱 등록하기
[간단히 내용 메모]
변수선언 var , 상수선언 val (자바의 final 키워드에 대응) - 코틀린은 형추론 지원 (자료형 생략 가능)
함수선언 - fun 함수명(인수1 : 자료형1, 인수2 : 자료형2 ...) : 반환자료형
ㄴ반환값 없을때 Unit형 사용 (자바의 void에 대응)
ㄴ참고 : 메서드는 객체와 관련된 함수. 함수는 더 일반적인 용어.
기본 자료형 - 코틀린의 기본 자료형은 모두 객체 (자바 : 프리미트브 자료형(int, double등) / 객체 자료형)
ㄴ숫자형, 문자형, 배열
ㄴDouble(64), Float(32), Long(64), Int(32), Short(16), Byte(8)
ㄴString(문자열), Char(하나의 문자) - 자바에서는 Char이 숫자형
문자열 비교 == 사용 (자바의 equals() 메서드와 대응)
(오브젝트 비교 : 자바는 ==, 코틀린은 === )
리터럴 : 자료형을 알 수 있는 표기 형식. 리터럴에 따라 코틀린 컴파일러는 자료형을 추론한다.
문자열 연결
배열 - Array 타입 (컴파일러가 자료형 유추가능시 생략가능) / arrayOf() 메서드를 통해 배열의 생성, 초기화
<제어문> - if, when, for, while / when제외하고 자바와 거의 같다.
val max = if (a>b) a else b
+실행할 문장이 한 줄이면 블록 생략 가능
when문 - 자바의 switch문에 대응.
등등..
참고 : 안드로이드 4.1 : 뷰 아이디를 자동으로 임포트하려면 kotlin-android-extensions 플러그인을 넣어 줘야 한다. 이전 버전에서는 기본적으로 설정되어 있었는데 상위 버전에서는 직접 추가해줘야 한다고 한다.
모듈 수준의 그레이들 파일에 추가한다.
1/6 : 챕터5: 비만도 계산기 / 복습하기
학습 내용
ㅡ키와 몸무게 입력하고 결과 버튼을 누르면 다른 화면에서 비만도 결과를 문자와 그림으로 보여준다.
ㄴConstraintLayout의 사용
ㄴ오버라이드한 onCreate 메서드 내부에 resultButton.setOnClickListener { ... } //결과 버튼 클릭되면 할 일 작성하기
ㄴ액티비티 전환 - Intent객체를 사용한 startActivity + Anko라이브러리를 사용하여 간단히 작성
ㄴ데이터 담기 - Intent에 데이터를 담기 + Anko라이브러리를 사용하여 간단히 작성
ㄴ데이터 꺼내기 - 데이터가 담긴 Intent에서 메서드를 통해 꺼낼 수 있다.
ㄴ부모 액티비티를 지정하여 이전 액티비티로 이동 (뒤로 가기) (업 네비게이션)
ㅡ마지막에 입력했던 키와 몸무게는 자동으로 저장된다.
ㅇ데이터 저장 함수 기능 추가하기
ㄴ데이터를 저장하는 SharedPreference
ㄴ프리퍼런스 매니저를 사용해 프리퍼런스 객체를 얻을 수 있다.
ㄴ프리퍼런스 객체의 에디터 객체를 얻을 수 있다. - 이를 통해 프리퍼런스에 데이터 담음
ㅇ데이터 불러오기 함수 기능 추가하기
ㄴ프리퍼런스 객체를 얻고, getInt()메서드를 통해 저장된 값을 불러올 수 있었다.
ㅡToast : 잠깐 보였다 사라지는 메세지. Anko라이브러리를 적용하여 코드를 간단히 할 수 있다.
ㅡ벡터 드로어블 하위 호환 설정
간단히 정리해보았다.
MainActivity (상위) | ResultActivity (하위) |
ㅇ 데이터 복원 - 프리퍼런스 | ㅇ 데이터 꺼내기 - 인텐트 |
ㅇ 버튼 이벤트 ㅡ 데이터 저장 - 프리퍼런스 ㅡ 액티비티 전환 - 인텐트 |
각 조건문을 통해 결과 표시, 이미지 표시 |
ㅇ toast |
+ Intent 기능은 Anko를 이용할 수 있다.
++이전 챕터에서 배운 것을 활용했다. Null값이 아님을 보증해주어야 했다.
레이아웃창에서 텍스트박스 배치할 때 입력값을 number로 제한했는데도 Null의 가능성이 있다고 판단한건가??
코드에서 !!해주고 나서야 에러가 나지 않았다.
'JAVA' 카테고리의 다른 글
안드로이드 - 챕터7, 웹브라우저 (0) | 2021.01.11 |
---|---|
안드로이드 - 챕터6, 스톱워치 (0) | 2021.01.07 |
혼공자 - 마지막 프로젝트도 끝냈다! (14챕터 확인문제 1번) (0) | 2020.08.20 |
14챕터 [입출력스트림] 요약정리 (복습) (0) | 2020.08.16 |
[혼자 공부하는 자바] 8/16 14-3 [입출력 관련 API] (0) | 2020.08.16 |