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에 파일을 추가한다그다음 미디어 스캐너 서비스 인터페이스를 제공하는 미디어 스캐너 연결 클라이언트를 사용하여미디어 스캐너 연