목록Android (90)
막무가내 삽질 블로그
올해 초에 자바로 리싸이클러뷰 페이징에 대해 포스팅 했었는데 조금 더 다듬고 프로젝트에 맞게 끔 수정했다. 아래 첨부로 들어가면 볼 수 있다. www.notion.so/fundevjay/RecyclerView-Pagination-10c527bb55844fb799370db8263b9ecf RecyclerView Pagination 구현 리싸이클러뷰 페이징 처리 www.notion.so 안드로이드 스터디 모집중 www.notion.so/fundevjay/7256ac4ea03f4ea3afe1753142ae02c1 공지사항 안드로이드 개발자가 되기 위한, 좀 더 깊이감 있는 개발자가 되기 위해 스터디를 만들었습니다. www.notion.so
안드로이드에서 DI(Koin)을 사용하기 위해 DI를 공부 중이다. DI 란 무엇인가? Dependency Injection 이다. 한 단어씩 해석 하면 Dependency는 의존,의존성이란 뜻을 가지고 있고 Injection은 주입이라는 뜻을 가지고 있다. 의존성 + 주입 = DI Dependency(의존성)이란? 만약 내가 서울에서 부산까지 간다고 가정하면 자동차나 비행기 등 교통수단에 의존하게 된다. 프로그래밍적으로 보면 class Apple { var num: Int = 1 } class Banana { val apple = Apple() print(apple.num) } Banana 클래스 내부에서 Apple 클래스를 참조하고 있다. 이럴 경우 Banana 클래스 -> Apple 클래스 의존성을..
Firebase Crashlytics는 실시간 오류 보고 도구로 앱 품질을 저하하는 안정성 문제를 추적하고 문제를 해결하는 데 도움이 된다. 앱이 Firebase Console에 추가되어 있다는 가정하에 글을 작성 project build.gradle dependencies 안에 classpath 'com.google.firebase:firebase-crashlytics-gradle:2.2.0' 추가해 준다. app build.gralde apply plugin: 'com.google.firebase.crashlytics' 추가 dependencies implementation 'com.google.firebase:firebase-crashlytics:17.1.0' sysnc now 이 상태에서 메인화면..
www.notion.so/fundevjay/Android-ddf96b24265e414fb2d9e8fc5d388b80 Android https://class-programming.tistory.com/ www.notion.so
Stetho 라는 라이브러리를 알고는 있었지만 사용해 본 적은 없었다. 이번에 룸과 쉐어드에 대량의 데이터를 삽입하게 되어서 사용해 봤다. Steho는 페이스북에서 안드로이드 디버깅을 할려고 만든 툴이다. gradle 추가 implementation 'com.facebook.stetho:stetho:1.5.1' 디버깅 할려고 하는 액티비티쪽에 onCreate에 추가해준다 Stetho.initializeWithDefaults(this) Application 전역변수를 만들어서 사용하면 편하다. 앱 실행 -> chrome://inspect 접속 -> devcie -> inspect -> resources 쉐어드 및 룸을 확인할 수 있다. 끝
자바 언어의 바이트코드를 의존하고 있어 컴파일 에러 남 해결 build.gradle (Module: app) compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 }
안드로이드에서 공통된 전역변수를 사용시 Application을 사용할 수 있다. class MyApplication : Application() { private lateinit var networkManager: NetWorkManager private lateinit var api: NetworkService private lateinit var movieRemoeteDataSource: MovieRemoteDataSource private lateinit var movieLocalDataSource: MovieLocalDataSource private lateinit var movieDao: MovieDao lateinit var movieRepository: MovieRepository overr..
코루틴을 잘활용할려면 결과를 반환 받아서 처리를 하고 작업의 취소까지도 완벽하게 해줘야한다. fun main() = runBlocking { val job = launch { repeat(1000) { i -> println("job: I'm sleeping $i ...") delay(500L) } } delay(1300L) // delay a bit println("main: I'm tired of waiting!") job.cancel() // cancels the job job.join() // waits for job's completion println("main: Now I can quit.") } 0.5초 간격으로 문자열을 1000회 출력하는 블록이다. 블록이 시작한 후 1.3초가 지나면 코..