Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Conference Tourism

Conference Tourism

登壇するときのTips

kobito-kaba

October 31, 2018
Tweet

More Decks by kobito-kaba

Other Decks in Programming

Transcript

  1.    RxJava Coroutines Jetpack ARCore Functional  

    Your first… deep-dive into... Best practice of Anti-patterns of A or B
  2.    RxJava Coroutines Jetpack ARCore Functional  

    Your first… deep-dive into... Best practice of Anti-patterns of A or B
  3.    RxJava Coroutines Jetpack ARCore Functional  

    Your first… deep-dive into... Best practice of Anti-patterns of A or B
  4.    RxJava Coroutines Jetpack ARCore Functional  

    Your first… deep-dive into... Best practice of Anti-patterns of A or B
  5. • is a component for observing other component’ lifecycle, of

    course :) • is designed by publish-subscribe pattern, not observer pattern. It makes LifecycleObserver well-separated from LifecycleOwners • is boilerplate free. We just start observing. No explicit canceling observing is required. • is great for resource monitoring, such as connectivity-listener, location-listener… because this is safe from lifecycle changes. LifecycleObserver
  6. 

  7. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<List<Repository>>()

    val repositories : LiveData<List<Repository>> get() { if (_repos.value == null) { launch(CommonPool) { val repos = github.repositories().await() _repos.postValue(repos) } } return _repos } }
  8. 

  9. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<List<Repository>>()

    val repositories : LiveData<List<Repository>> get() { if (_repos.value == null) { launch(CommonPool) { val repos = github.repositories().await() _repos.postValue(repos) } } return _repos } }
  10. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  11. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  12. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  13. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  14. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  15. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  16. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  17. class YourViewModel : ViewModel() { private val _repos = MutableLiveData<Repository>()

    val repositories : LiveData<Repository> get() { if (_repos.value == null) { val repos = github.repositories() _repos.postValue(repos) } return _repos } }
  18.