이번주 목표는 메모 램프에 해당하는 어플리케이션을 완성하는 것입니다!
작동에 필요한 아두이노 회로가 구성되어야 램프 디자인에 들어갈 수 있을 것 같아서,
이 부분을 먼저 해보려고 합니다.
안드로이드 앱의 해당 페이지 구성 및 동작을 1차 목표로 설정하고,
아두이노와 스크린을 연결하는 것을 2차 목표로 설정했습니다.
공부에 참고한 책:
[알게된 점]
*상수 val (cf. var)
- 상수로 정의된 값은 바뀌지 않음
*네이밍 컨벤션
- 코딩 컨벤션: 각각의 프로젝트의 코드 작성 규칙
- 코틀린 -> 캐멀 케이스 Camel Case //cf. 스네이크 케이스(Snake Case-상수면ㅇ만 대문자로 사용하고 다른때는 소문자 사용)
클래스명 | class MainActivity //첫글자, 새로운 단어의 첫글자 대문자) |
상수명 | val HELLO: String = "안녕" var HOW_ARE_YOU: String = "어떻게 지내?" //모두 대문자, 여러 단어일 경우 스네이크 케이스 |
함수명, 변수명 | fun onCreateActivity () var intValue: Int //새로운 단어의 첫글자 대문자 |
*조건문 - if문과 when문의 차이점
if문: 판단에 사용되는 데이터의 범위가 넓고 값을 특정할 수 없을 경우
when문: 판단에 사용되는 데이터의 범위가 제한되고 값을 특정할 수 있을 경우
*배열과 컬렉션
- array
선언시 개수 특정 및 변경 불가
종류: IntArray/LongArray/CharArray/FloatArray/DoubleArray cf. 문자 배열: Array(개수, {item->""})
값으로 공간 할당: arrayOf(...)
- 컬렉션
개수 수정 가능
리스트 List: mutableListOf<타입>(), add/get/set/removeAt/size
셋 Set: 중복을 허용하지 않는 리스트, mutableSetOf<타입>()/add/remove
맵 Map: 키+값, mutableMapOf<키 타입, 값 타입>()/add/put/remove
- 이뮤터블 컬렉션 Immutable Collection
크기 변경 불가, 값 변경 불가 -> 불변형 컬렉션
listOf()
*함수
- fun 함수명(파라미터 이름: 타입): 반환 타입 {
return 값
}
- 함수 파라미터는 모두 이뮤터블 - 값 변경 불가
*클래스
- init {} 이 클래스 호출 시 디폴트로 실행되는 함수
- 데이터 클래스(data class): 간단한 값의 저장 용도로 사용
data class 클래스명 (val 파라미터1: 타입, var 파라미터2: 타입)
toString() 메서드 호출: 값 반환 - 모니터링시 좋음
copy() 메서드 호출: 값 복사
- 상속: 만들어 놓은 클래스 확장 (더하기)
open class 상속될 부모 클래스 {...}
class 자식 클래스 (value: String) : 부모 클래스(value) {...}
- 오버라이드: 만들어 놓은 클래스 수정
*접근 제한자
- private: 다른 파일에서 접근 불가
- internal: 같은 모듈에 있는 파일만 접근 가능
//이때의 모듈: 한번에 같이 컴파일되는 모든 파일, 하나의 앱 or 하나의 라이브러리 = 하나의 모듈
- protected: private과 같으나 상속 관계에서 자식 클래스가 접근 가능
- public: 제한 없이 모든 파일에서 접근 가능
*제네릭 Generics
- 주로 컬렉션이나 배열에서 입력되는 값의 타입을 특정하기 위해 사용 -> 안정성 유지
- var list: MutableList<값의 타입> = mutableListOf(...)
[해결한 문제]
- 화면이 가로로 전환되었을 때 표가 끝까지 보이지 않음 - 어떻게 설정? (해결)
> 스크롤뷰를 사용 = 최상위 레이아웃을 스크롤할 수 있는 요소로 감싸야 함
1. 기본 레이아웃을 스크롤뷰로 변경 후
2. 그 안에 LinearLayout으로 감싼 후, orientation을 vertical 로 변경
[발견한 문제]
- 화면이 가로로 전환되었을 때 버튼이 각자 마음대로 움직임 (해결)
> 여러개의 대상을 체인으로 연결
> LinearLayout으로 감싼 후, orientation을 horizontal 로 변경
- 마지막 행의 너비가 표의 끝까지 채우도록 만들고 싶음 (해결)
> TableLayout 에 android:stretchColumns="(몇 번째 열)"
레퍼런스: https://developer.android.com/reference/android/widget/TableLayout#attr_android:stretchColumns
TableLayout | Android 개발자 | Android Developers
developer.android.com
'MAKING > 우리반 쌤의 똑똑한 메이커 테이블' 카테고리의 다른 글
아두이노 나노 33 IoT 탐색 (0) | 2020.09.22 |
---|---|
코틀린_공부_3 (0) | 2020.09.16 |
코틀린_공부_1 (0) | 2020.09.10 |
이것은 바로!! 사업 선정 결과!! (0) | 2020.05.24 |
사이즈 표시 기능 보완 (0) | 2020.05.10 |
댓글