collect() != collectLatest() collect() => It collects every value that theoriginal flow emits and it is recommended to use when all received data should be processed. collectLatest() => It collects every value, but stops to work for the previous value when the original flow emits a new value. It is fairly for the case when the latest data should be processed. val countFlow = flow { val startingV..

ISSUE Firebase dynamic link was needed to provide a guest account for Google Playstore reviewers as they are unable to proceed with authentication. The application might have opened directly once a tester clicked the provided link, but it only showed a grey circular indicator or redirected to the Google Playstore. According to the new policy for AOS above 13, you have to set more confidential in..

Concept Jetpack Navigation allows users to navigate across, into and back out from the various pieces within an app. Benefits - simplifies setup for common navigation patterns - handles backstack - automates fragment transactions - types safe argument passing - handles transition animations - simplifies deep linking - centralizes and visualizes navigation Supports for - Activities, Fragments, Cu..

Ref: https://github.com/codinginflow/ImageSearchApp/tree/Part-13_Handling-Process-Death 결과화면 - 이전 Unsplash API를 MVC 구조로 공부한 것을 포스팅한 만큼 이번에 동일한 API를 MVVM구조로 어떻게 구축할 수 있는지 알아보는 것을 최우선으로 함 - gradle 설정이 참조 소스와 다르므로 주석이나 몇몇 코드들도 살짝 상이함 (거의 다 최신으로 설정) 구조 - 보통 api로 받는 정보의 경우 data로 분류하는데 이 튜토리얼의 경우 큰 것(ex: {totla: xxx, total_pages: xxx, results: [~~~]})은 api로 실질적으로 필요한 데이터가 담긴 model인 UnsplashPhoto(resul..

Flow ♾️ поток из нескольких эленментов включая конечные и бесконечные Operators (терминальные и НЕтерминальные) - map: преобразует Flow в Flow - filter: фильтрует элементы, не соответствующие условию - drop: отбрасыват первые N элементов - take: берет первые N элементов ⚡Терминальные операторы 1) выполняют Cold Flows или 2) подписываются на Hot Flows Cold Flows - в неактивном состоянии + ленивая..

결과화면 Structure - Common Resource : response를 emit할 때 쓰이며 본 프로젝트에서는 UseCase에서 기술됨. ❓타프로젝트할 때 동일한 클래스를 usecase가 아닌 viewmodel에서 적용하다가 MutableLiveData 변수와 타입 오류가 계속 났는데 아직 원인을 못 찾음 sealed class Resource(val data: T? = null, val message: String? = null){ class Success(data: T): Resource(data) class Error(message: String, data: T? = null): Resource(data, message) class Loading(data: T? = null) : Resou..

결과화면 1. AdapterComment - onBindViewHolder - date를 다시 long으로 변환시켜줄 것(addcomment 메서드 실행 때 string으로 저장함) - deleteComment는 removeValue()만 하면 되므로 기술 생략 override fun onBindViewHolder(holder: HolderComment, position: Int) { //init auth firebaseAuth = FirebaseAuth.getInstance() //get data val model = commentArrayList[position] val date = MyApplication.formatTimeStamp(model.timestamp.toLong()) holder.dat..

결과화면 I EDIT 1. AdapterPdfAdmin - onBindViewHolder 2. AdapterPdfAdmin - moreOptionDialog private fun moreOptionsDialog(model: ModelPdf, holder: AdapterPdfAdmin.HolderPdfAdmin) { //get id, url, title of the selected book val bookId = model.id val bookUrl = model.url val bookTitle = model.title //option dialog val options = arrayOf("Edit", "Delete") //alert val builder = AlertDialog.Builder(context..

결과화면 I Pdf파일 업로드 1. PdfAddActivity: FirebaseStorage(클라우드)에 저장 -> 실제 저장 private fun uploadPdfToStorage() { // upload pdf to firebase storage Log.d(TAG, "uploadPdfToStorage: uploading the attached file to firebase storage") progressDialog.setMessage("Uploading pdf file") progressDialog.show() val timestamp = System.currentTimeMillis() // pdf path in firebase storage val filePathAndName = "Books/$t..

결과화면 1. ModelCategory Firebase DB의 Category에 저장될 항목 설정 후 생성자 호출 2. AdapterCategory Admin 계정 접속 시 보이는 카테고리 목록 RecyclerView용 Adapter - Context 변수 선언 - context와 categoryArrayList 생성자 호출 - inner class인 HolderCategory 통하여 카테고리명과 삭제 휴지통 이미지 아이콘 ui 초기화 - row_category(카테고리 목록) 바인딩 - ViewHolder 바인딩 작업 (각 항목은 arraylist의 position에 따른 model로 선언) - 삭제처리는 firebase의 removeValue()활용 - Filterable 상속 class Adapte..
- Total
- Today
- Yesterday
- WirelessDebug
- Laravel
- dagger-hilt
- mvvm
- flutter_storage_not_working_for_the_first_time
- android_app_links_domain
- FlutterWirelessDebuginAOS
- KotlinFlow
- android_domain
- retrofit_generator_conflicts_with_freezed
- Android
- laravel9
- flutter_android_app_links
- FirebaseConfigurationForMultipleBuildTypes
- MultipleFirebaseEnvironments
- flutter
- futter_api
- retrofit_generator
- querydslKotlinError
- flutter_secure_storage_issue_iOS
- querydsl5.0.0jakarta
- retrofit_toJson()_error
- unsplashAPI
- querydslQclass
- AndroidWirelessDebug
- android_app_links
- phplaravel
- RunAFlutterProjectIniPhoneFromVSCode
- android_app_link_domain_works_with_adb_but_not_works_with_browser
- Kotlin
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |