목록분류 전체보기 (128)
막무가내 삽질 블로그
자바 언어의 바이트코드를 의존하고 있어 컴파일 에러 남 해결 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초가 지나면 코..
앱 뿐만 아니라 모든 프로그램에서 비동기 처리는 굉장히 중요하다. 안드로이드에서 여러 비동기를 할 수 있는 메커니즘을 제공하지만 일부 메커니즘에는 굉장히 큰 러닝커브가 있다.(대표적으로 RxJava) JetBrains에서 코루틴이라는 비동기처리를 할 수 있는 API를 만들었다. 코루틴이 나오기 전 가장 핫한 키워드는 rx programming 이였을 것이다. 그러나 구글이 안드로이드 공식 언어를 자바에서 코틀린으로 변경한 이후에 대표적인 샘플 예제들인 blueprint와 snowflower 비동기 처리를 coroutine으로 바꿨다. 코루틴에 대한 영어자료도 최근에 많이 올라 오고 있고 외국 안드로이드 개발자는 코루틴을 많이 사용하고 rx에서 코루틴으로 넘어가고 있다고 들었다.(한국은 rx가 많이 사용중..
안드로이드 스튜디오에서 shift 두번 눌러서 plugins 검색 후 adb wifi 검색 android wifi adb install 후 restart 터미널에서 안드로이드 플랫폼 툴이 설치된 경로로 이동 (경로 확인은 tools - sdk manager 클릭 후 android sdk location 확인) 단말기 연결되어 있는지 확인 ./adb devices 하면 연결된 디바이스 나옴 네트워크 모드로 변경 ./adb tcpip portnumber -> 포트번호 지정 (ex ./adb tcpip 5555) 단말기에 할당된 ip 확인 (설정 네트워크 들어가서 확인)후 연결 ./adb connect ip connected to ip:포트번호 가 나오면 연결 성공, 실패가 뜨면 몇 번 재시도하면 연결된다. ..
xd 에서 이미지를 클릭 후 command + e 클릭 후 내보내기 대상에서 안드로이드 선택 후 해당 프로젝트 위치를 찾아 res 까지 위치를 찾은 후 확인 하면 해상도별 이미지폴더가 생기면서 이미지가 옮겨진다... 오호 신세계~
앱이 포그라운드인지 백그라운드 인지 상태를 확인해서 이벤트 처리를 해야할 상황이 있었다. 예전 프로젝트에서는 액티비티에서 확인을 해서 로직을 처리했는데 이번에는 조금 더 수월하게 AAC 라이브러리를 활용하였다. gradle 에 추가해 준다. implementation 'android.arch.lifecycle:extensions:2.2.0' 그 다음 LifecycleObserver 를 상속 받은 후 ProcessLifecycleOwner를 등록해 주고 어노테이션을 활용해 함수를 만들어서 사용하면 된다. 개발자 문서를 참고하면 된다. 전체코드 class TestActivity : TLSActivity(), LifecycleObserver { override fun onCreate(savedInstanceS..