1.출력 2.자료형 3.변수 4.연산자 5.조건문 6.반복문 7.배열 8.Collection
함수 1. 함수작성법 2. Unit (=void) 3. 함수선언 단순화 4. 익명함수 5. 고차함수 6. 함수 파라미터의 default 값 설정
[1] 클래스 클래스 작성법 호출 방법 new 키워드 생략 클래스 멤버변수 * 반드시 초기화 * 해야됨 [2] 생성자 1. 주생성자 2. 보조 생성자 자바처럼 class 안에 메소드처럼 존재 보조 생성자는 오버로딩 가능 매개변수에 var, val 키워드 쓸수
1. 상속 - 부모 open 키워드 - 자식 extends 키워드 -> : 으로 변경 2. 업캐스팅 3. 다운캐스팅 as : 다운캐스팅 형변환 연산자
1. 이너 클래스 2. nterface와 익명클래스 3. companion object[=static] 4. 늦은 초기화 4-1) var용 : lateinit 4-2) val용 : by lazy
NullSafe와 nullable 멤버접근 연산자들
1. Scope function 1-1) this : apply , run 1-2) it : also, let 2.
코틀린언어를 활용한 게시판 만들어보기
코틀린_Retrofit2 활용하여 네이버 쇼핑 API 연동 viewBinding을 이용한 뷰 참조
include한 레이아웃 앱바 적용
뷰 페이저에 보여줄 두 화면 UI아답터 불러오기아답터에 addFragment() 메소드를 이용하여 보여줄 화면(플래그먼트)들 add뷰 페이저에 아답터 연결add 한 프래그먼트 페이지 붙이기TabLayoutMediator 를 이용하여 탭 레이아웃 이름 등록
Fragment를 가진 메인 xmlsupportFragmentManager 를 통해서 프래그먼트를 얻어온다첫 화면은 add로 가져옴바텀 네비를 setOnItemSelectedListener 를 통해서 클릭 시 반응하도록 함itemId 를 통해 분기처리함 navmenu
데이터를 array로 해야 됨,,,, MutableList 안됨,,,,
액티비티의 이동은 Intent로 하듯 Fragment는 FragmentManager를 이용하여 움직인다commit() 빼먹지 말기!!!.addToBackStack(null)을 해주면 현재 프래그먼트는 스택에서 지운다플래그먼트에선 supportAction 을 쓰는 것을
코드에서 뷰들을 찾지말고 xml에서 변수로 만들자xml 에서 변수로 만드는 데이타 영역을 만들러면 layout 이라는 큰 아이가 감싸고 있어야한다!! root 요소가 layout 이여야만 binging 클래스가 만들어진다layout이라는 큰 영역 만들기그 안에 넣을 두
프래그먼트에서 데이터 바인딩 or 기본 속성으로 지정이 불가한 data binding 대응데이터 바인딩은 xml이 분리되어 있으면 다 가능하다MVVM 패턴에서 View에서 사용할 데이터(model)을 연결해주는 ViewModel 역할의 클래스 정의엑티비티에 프래그먼트
[0] 프로젝트 안에 모듈 만들기 [1] MVC 모델 [Model View controller] 1. Model 데이터를 저장하는 클래스나 데이터를 DB또는 네트워크 등에서 불러오거나 저장하는 등의 작업을 하는 코드를 작성하는 파일 데이터만 처리하는 친구 2.
규격화(인터페이스)에 촛점을 맞춘 아이 presenter 은 인터페이스를 사용해 만든다!! > ## 💡 MVP란? view와 model 완전 분리 특징이 가장 두드러짐 [뷰와 프레젠터가 해야할 작업을 이미 인터페이스로 규격화 한 것이 특징. 모듈화된 작업 템플
view는 뷰모델을 참조하고 뷰모델은 모델을 참조한다 (단방향 참조)View와 model의 데이터를 연결해(data binding) 놓아서 데이터가 변경될 떄 변도의 처리코드 없이 view가 자동 갱신되는 특징1) Model - 데이터 클래스2) View - 사용자가
자가 원하는 속성을 직접 만들 수 있는 문법뷰들에 없는 새로운 xml 속성을 연결하는 기능 메소드를 가지는 객체static 메소드를 가진 object로 명시 싱글턴 패턴 (객체가 단 한마리 밖에 생성되지 않는 것!)사용하려면 빌드그래이들에 어노테이션 해독기 등록 해야함
장점구글 플레이에 올리지 않아도 돼서 버전 업데이트에 좋다만들기 쉽다단점운영체제가 웹뷰를 구동하고 웹뷰는 자바스크립을 구동해야해서 속도가 네이티브보다 느리다input file 타입은 윈도우용이라 반응하지않음하드웨어, 센서 등 핸드폰의 고유 기능은 사용하지 못함웹뷰가 보
ObservaleXXX 와 다르게 라이프사아클에 따라 효율적으로 UI갱신LiveData는 추상클래스임 MutableLiveData를 써야함MutableLiveData 변수 타입 지정 해서 UI갱신에 반영 할 수 있는 변수로 만들어준다버튼 클릭해서 값 바꿔 하면 Live
멀티스레드는 CPU를 조금씩 나눠쓰는 모양임스레드가 요리사라면 멀티 스레드는 여러 요리사가 화구 (CPU)를 번갈아 쓰는 구조 그래서 다른 요리사가 사용중에는 기존 요리사는 동작을 멈춘다코루틴은 하나의 요리사(스레드)가 파스타를 만들면서 스테이크까지 굽는 형식, 즉 팬
※ 패키지 이름 android studio 에서 만든 프로젝트 이름과 동일해야함1) 프로젝트 수준 build.gradle 2) 앱 수준 build.gradle3) FirebaseMessagingService를 상속받은 MyFirebaseMessagingService.c
3-1) 받아온 값 중 스피너에 텍스트로 뿌려줄 컬럼을 ArrayList에 제네릭 string으로 담는다.3-2) ArrayAdapter를 이용하여 ui를 그린다 매개변수로 (context, 스피너 텍스트용 UI, 스피너 텍스트용 UI에 텍스트뷰 id, 3-1에서 담은
외부 패스를 관리해보자프로바이더를 사용해 저장 권한을 실행하기 위한 준비res > xml 폴더에 path.xml 생성path.xml에 외부 경로 작성매니패스트에 provider 추가 (4대 컴포넌트 이기 때문에)meta-data에 위에서 작성한 path.xml 연결
MediaScannerConnection를 사용해서 이미지 공유하는 방법파일로부터 미터 데이터를 읽어내고 media content provider에 파일을 추가한다그다음 미디어 스캐너 서비스 인터페이스를 제공하는 미디어 스캐너 연결 클라이언트를 사용하여미디어 스캐너 연
메인화면에 장바구니 담기 아이콘 클릭 시 장바구니로 담기는 듯한 애니메이션 구현 사용법moveToCart(애미메이션 붙일 뷰,타켓 뷰)애니메이션 줄 뷰를 Canvas에 카피해 두고 서 위치를 이동 시키는 애니메이션을 붙여준다
클래스, 함수, 프로퍼티 등의 참조를 표현하는 데 사용객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법KClass 타입의 객체로, 클래스의 메타데이터(예: 클래스 이름, 프로퍼티, 메서드 등)에 접근할 수 있다.KClass 타입Kotlin에서 클래스의 정보를 표현
1. ripple UI에 터치 효과 주는 애 drawable폴더에 리소스 파일로 작성 ripple: ripple 효과를 정의하는 최상위 요소. color 속성을 사용하여 터치 효과의 색상을 지정 item: ripple 효과가 적용될 기본 레이어를 정의. item 태그
RoomDatabase? 룸은 로컬 데이터베이스에 데이터 저장하는 것 SQLite 기능을 최대한 활용하면서도 그 위에 추상화 계층을 제공하여 원활하게 접근 가능하도록함 SQLite 기반으로 만들어 진것 룸 구성 3가지 1. entity 데이터베이스의 테이블
1. 덱스터 라이브러리? 퍼미션을 도와주는 라이브러리 https://github.com/Karumi/Dexter 2. 사용 방법 1. gradle에 추가 내 프로젝트는 현재 libs 형식이라 아래와 같이 임플리먼트함 2. manifest에 퍼미션 추가 받아야하는
목표 : 위 그림처럼 생긴 라디오 버튼을 만들어보자 1. 라디오 그룹 백그라운드로 쓸 shape xml 파일 만들기 라디오 그룹 백그라운드로 적용할 shape 파일 작성 2. 라디오 버튼이 선택될 때 쓸 백그라운드와 text color 바꿔주는 selector x
이웃집에 귤을 나눠주는 상황을 가정하면 Serializable은 아주아주 포장을 꼼꼼하게 하는 상태이다봉투에 넣고 뽁뽁이로 감싸고 상자에 넣는 작업을 하듯이 데이터를 여러겹으로 감싸서 주는 행위포장을 잘 했으니 여기저기 들고가도 흘릴일이 없음 범용성이 좋음\-> 안전성
목표 구글에 치면 그래프용 api가 있다 하지만 디자인은 바꿀수 없음,,,눈물남 그래서 canvas를 사용하여 직접 구현할 수 밖에 없었다,,, https://jyys.tistory.com/11 블로그 참고 함 결과물 이미지) 해야 하는 일 오각형 그리기: 차트를
Fused locaion provider 사용자 위치를 알려주는 api 기기에 있는 다양한 센서를 활용해 기기의 위치를 나타내는 기능이 있음 ex) GPS, 와이파이 이용한 위치 식별 https://developers.google.com/location-context
스위치를 원하는 모양으로 바꾸기 위해선 스위치의 백그라운드(track)와 버튼 모양(thumb)을 따로 다뤄줘야한다 drawable폴더에 각각 사용할 selector 파일을 만들어야한다 1. track : 스위치의 백그라운드 2. thumb : 스위치의 버튼 부분
※링크공홈 > https://www.highcharts.com/integrations/community/깃허브 > https://github.com/highcharts/highcharts-android하이차트 로드하기 및 커스텀 정리깃허브에 들어가면
app 수준 그래이들에서 의존성 추가테이블 이름과 테이블에서 쓸 열 정의각 엔티티는 @Entity 어노테이션으로 표시최소한 하나의 기본 키(@PrimaryKey)를 정의해야함@Entity(tableName = "users"): 이 클래스가 users라는 이름의 데이터베
💡 핵심StateFlow는 항상 현재 값을 가지고 있는 데이터 흐름(Flow)값이 계속 바뀌면, 계속 반응함 (실시간으로)Activity/Fragment가 꺼져 있어도 데이터는 계속 유지됨지속적으로 바뀌는 상태를 보여줄 때 사용StateFlow는 꼭 컬렉션(colle