일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- kotlin
- Coroutine
- HTTP
- 코틀린
- View
- sqlite
- CustomView
- AppBarLayout
- CollapsingToolbarLayout
- lifecycle
- notification
- DataBinding
- Algorithm
- onLayout
- Behavior
- activity
- recyclerview
- CoordinatorLayout
- ViewModel
- BOJ
- room
- Navigation
- onMeasure
- Android
- hilt
- 알고리즘
- 알림
- LiveData
- 안드로이드
- 백준
- Today
- Total
목록Android (111)
개발일지
Pager PagingConfig를 바탕으로 PagerSource로부터 PagingData를 만들어서 Flow형으로 반환한다. 코드 @HiltViewModel class ViewerViewModel @Inject constructor(): ViewModel() { fun getPagingData(webToon: WebToon, episode: Int): Flow { return Pager(PagingConfig(pageSize = 10), episode - 1) { ViewerPagingSource(webToon, episode) }.flow // 데이터를 변환해야 할 경우 // .map { // it // } .cachedIn(viewModelScope) } } override fun onCreate(..
PagingSource PagingSource는 데이터 소스를 얻는 방법을 정의하고 로컬 데이터 베이스에서 얻거나 서버로 부터 데이터를 얻을지 정의할 수 있다. PagingSource에서 Key값은 Page의 Key 유형이고 Value는 얻는 데이터의 유형입니다. 코드 package com.taetae98.paging.paging import androidx.paging.PagingSource import androidx.paging.PagingState import com.taetae98.paging.dto.WebToon class ViewerPagingSource( private val webToon: WebToon, private val episode: Int ) : PagingSource() { ..
Paging은 필요한 데이터만 로드하여 표시하는 라이브러리입니다. 사용자에게 리스트를 보여주는 앱에서 사용자에게 한번에 보여줄 수 있는 리스트의 양은 화면 크기에 제한됩니다. 서버에 저장된 모든 리스트 목록을 한번에 받고 메모리에 캐쉬하는 방식보다 필요한 만큼 데이터를 불러와서 리스트를 보여주는 것이 효과적입니다. Paging3 구조 Repository PagingSource : 각 페이지에서 데이터를 얻는 방법을 정의한다. (로컬 데이터베이스에서 데이터를 얻거나 서버에서 받아오도록 설정할 수 있다.) RemoteMediator : 앱에서 캐쉬된 데이터를 모두 사용한 경우 페이징 라이브러에게 신호를 보내는 역할을 한다. ViewModel PagingConfig를 바탕으로 PagingSource에서 데이터..
Activity 사이에서 결과를 받을 수 있는 startActivityResult, onActivityResult 등이 deprecated되면서 새로운 API인 ActivityResultContract가 생겼다. 사용법 registerForActivityResult를 통해 ActivityResultContract를 등록하고 callback 함수를 재정의한다. => 활성상태 (onResume가 호출되어 Activity가 보이는 상태)에서 등록할 시 Exception이 발생한다. onCreate로 선언하거나 변수로 선언하자. private val activityResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()..
1. 프로젝트 등록 Naver Developer에 프로젝트를 등록하여 API Key를 받는다. developers.naver.com/apps/#/register?api=nvlogin 애플리케이션 - NAVER Developers developers.naver.com 2. Gradle 설정 Dependency compile ('com.naver.nid:naveridlogin-android-sdk:4.2.6') 3. Key 등록하기 Naver Developer에서 제공받은 Key를 string.xml에 입력한다. glttGD4shdbN2GSF94OB jBDdCtOOeR 4. OAuth 초기화하기 Login을 진행하기 전에 초기화 단계가 필요하다. OAuthLogin.getInstance().init(this..
1. 프로젝트 등록 developers.kakao.com/console/app 카카오계정 로그인 여기를 눌러 링크를 확인하세요. accounts.kakao.com 2. Gradle 설정 build.gradle(Project) allprojects { repositories { google() jcenter() // Kakao maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } } } build.gradle(Module) dependency Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.k..
Google의 OAuth를 통해 사용자 인증을 얻고 People API를 통해 사용자의 개인 정보를 얻을 수 있다. rkdxowhd98.tistory.com/168 Android in A..Z - OAuth (Google) Google API를 사용해서 Google인증과 Google OAuth로 얻은 idToken값으로 People API를 사용하여 사용자의 다양한 정보를 얻을 수 있다. OAuth를 사용하면 프로젝트 자체에서 회원관리 기능을 구현할 필요가 없 rkdxowhd98.tistory.com 1. OAuth 클라이언트 ID 등록하기 (People과 연동할 수 있는 웹 에플리케이션 등록하기) * 웹 에플리케이션으로 등록한다. 2. API Key 발급하기 3. People API 신청하기 4. Pe..