일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Navigation
- 테스트
- tabbar
- activity
- data
- textfield
- Kotlin
- intent
- binding
- livedata
- 계측
- scroll
- appbar
- LifeCycle
- TEST
- Compose
- 안드로이드
- CustomScrollView
- ScrollView
- 앱
- viewmodel
- Coroutines
- textview
- Button
- drift
- Dialog
- 앱바
- android
- Flutter
- DART
- Today
- Total
목록전체 글 (364)
Study Record
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bxKxUb/btsn25EKGbl/oJ0aKB5OCG8ewMJcjuDuX1/img.png)
😶 RecyclerView 개요 스마트폰에서 자주 사용하는 앱은 거의 목록이 하나 이상 있다. 목록은 단순한 단어나 구문 목록부터 텍스트와 이미지가 포함된 카드와 같은 더 복잡한 항목을 포함한다. 이렇게 어떤 콘텐츠든 상관없이 데이터 목록을 표시하는 것이 Android 에서 가장 일반적인 UI 작업이다. Android 는 목록이 있는 앱을 빌드할 수 있도록 RecyclerView 를 제공한다. RecyclerView 는 화면에서 목록 항목이 스크롤되면 다음 표시할 목록 항목에 이전 뷰를 재사용하기 때문에 처리 시간을 단축하고 목록이 더 원활하게 스크롤되도록 도와준다. 목록 예시) 😶 RecyclerView 동작 원리 RecyclerView 에서는 공통된 유형의 데이터 항목을 목록으로 표현한다. item ..
😶 vararg 키워드 varage 키워드를 사용하면 동일한 유형의 가변적인 인수 수를 함수나 생성자에 전달할 수 있다. fun main() { hello("love", "like", "code", "happy") } fun hello(vararg a: String) { print(a[2]) } 위의 예시 코드와 같이 함수의 매개변수로 vararg 키워드를 사용하면 hello 함수의 인자들의 값이 a 의 목록 요소들로 자동으로 들어간다. 다음은 클래스를 정의할 때 vararg 키워드를 사용하는 예시이다. class Vegetables(vararg val toppings: String) { override fun toString(): String { return toppings.joinToString() ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/yqkYj/btsnGPBlPsx/JpaJejiPkOp8PUPviKSkyK/img.png)
😶 계측 테스트? Android 개발에서 앱을 만들고 실행 테스트를 할 때 직접 사람이 수동으로 앱을 설치하여 테스트할 수 있지만 개발자가 특정 코드가 적절하게 작동하는지 코드로 자동화된 테스트를 할 수 있다. 자동화된 테스트를 하는 2가지 유형이 있는데 바로, 단위 테스트와 계측 테스트이다. 이 중에서 계측 테스트는 사용자 인터페이스(UI, 화면 테스트) 테스트를 하며 수명주기 및 플랫폼 API 와 서비스에 종속된 앱 일부를 테스트할 수 있다. 직접 테스트할 기기가 필요 없는 단위 테스트와 달리 계측 테스트는 기기가 필요하다. Android 에서 계측 테스트를 실행하면 실제 테스트 코드는 일반 Android 앱과 마찬가지로 자체 테스트 APK 에 빌드된다. 😶 계측 테스트 디렉터리 만들기 계측 테스트는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b3yMKL/btsnoII11v3/TznIJ2rCurBEk2AklPfO30/img.png)
😶 아이콘 아이콘은 의도한 기능을 시작적으로 전달하여 사용자가 화면 인터페이스를 이해하는데 도움을 주는 기호이다. 안드로이드에서 아이콘의 경우 다양한 화면 밀도에 맞는 여러 버전의 비트맵 이미지를 제공하는 대신 벡터 드로어블을 사용하는 것이 좋다. 벡터 드로어블은 이미지를 만드는 방법에 대한 지침을 저장하는 xml 파일로 시작적 품질 손실이나 파일 크기가 증가 업싱 확장하거나 축소할 수 있다. 😶 Material Design 아이콘 사용하기 Material Design 은 아이콘을 카테고리별로 제공해주는데 다음 사이트에서 확인할 수 있다. Material Symbols and Icons - Google Fonts Material Symbols are our newest icons consolidating..
😶 Null safety Kotlin 에는 많은 프로그래밍 언어에서 발생하는 NullPointerException 줄여서 NPE 가 발생하는 것을 방지하기 위한 기술이 포함되어 있다. Kotlin 에는 null 을 포함하냐 포함하지 않냐에 따라 변수의 데이터 타입을 정할 수 있다. null 을 포함하는 변수를 만들면 말 그대로 null 을 포함할 수 있고 null 을 포함하지 않은 변수를 만들면 절대로 null 이 될 수 없다. 선언하는 방식은 "?" 기호를 데이터 타입에 붙이면 null 을 포함하게 되고 "?" 기호를 붙이지 않으면 null 을 포함하지 않은 변수를 뜻한다. var a : String? = null var b : Int = 5 😶 null 일 경우 실행하지 않음(?.) 클래스의 멤버 변..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjJMIx/btsnitLU6WU/ubCT1EKV1E4IjEoKK0RRh0/img.png)
😶 RadioGroup 과 RadioButton RadioButton 은 여러개의 옵션을 선택할 때 사용한다. RadioGroup 내부의 RadioButton 을 여러개 배치해서 RadioButton 들 중 하나의 RadioButton 만을 선택할 수 있다. 의 android:checked 속성을 true 로 하거나 의 android:checkedButton 속성의 id 값을 입력하면 라디오 그룹 내에서 해당 라디오가 선택된다. 라디오 이벤트 라디오 버튼이 클릭될 때마다 setOnCheckedChangeListener 이벤트로 클릭된 라디오 id 값(checkId)을 받을 수 있다. binding.radioGroup.setOnCheckedChangeListener { group, checkedId -> ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/84UDU/btsmOjjPAnu/RbAT34j44VWEtokvLeAiCk/img.png)
😶 클래스 선언 클래스는 class 키워드와 클래스 이름, 클래스 헤더(파라미터, 생성자 등을 포함), 클래스 바디({} 안에 들어가는 내용) 로 이루어져 있다. 헤더와 바디는 선택적 옵션으로 없어도 무방하다. class Person { /* class body */ } 😶 생성자(Constructors) Kotlin 에서 생성자는 Primary 생성자와 하나 이상의 Secondary 생성자들을 가질 수 있다. Primary 생성자는 클래스 헤더에 속하며 클래스 이름 앞, 타입 파라미터 옵션 앞에 붙는다. Primary 생성자의 constructor 키워드는 생략 가능하다. // primary 생성자 class Person constructor(firstName: String) {} // 키워드 생략 가..
😶 개요 Android 프로젝트에서 문자열을 따로 직접 곳곳에 사용하는 것보다 한 파일에 앱에서 사용하는 문자열을 따로 정리하고 코드에는 문자열이 저장된 파일을 참고하는 방식이 관리하기 좋다. 😶 사용법 문자열 리소스 저장하기 res/values/strings.xml 파일에 문자열 리소스를 저장한다. Lemonade pick a lemonade! Happy Birthday! 문자열 리소스마다 name 으로 이름을 붙이고 태그 사이에 내용을 적는다. 코드에서는 name 을 이용하여 원하는 문자열 리소스를 불러올 수 있다. 코드에서 문자열 리소스 불러오기 다음 두가지 방식 모두 사용 가능 하다. getResources().getString(R.string.happy_birthday) getString(R.s..