SlideShare a Scribd company logo
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
<layout	xmlns:android="http://schemas.android.com/apk/res/an
droid" >
<data>
<import	type="android.view.View"	/>
<variable
name="viewmodel"
type="com.android.bugs.ExampleModel"	/>
</data>
<FrameLayout
android:id=”@+id/setting_container"	
android:visibility="@{viewmodel.show ?	View.VISIBLE :	
View.GONE}"
android:onClick="@{(v)	->	viewmodel.onItemClick(v)}"/>	
</FrameLayout>
</layout>
@Override
protected	void	executeBindings()	{
.
.
this.settingContainer.setOnClickListener(mCa
llback58);
.
.
.
this.settingContainer.setVisibility(viewmode
lIsSettingContainerViewVISIBLEViewGONE);
.
.
}
Fragment_alarm_setting.xml FragmentAlarmSettingBindingImpl.java
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
UPDATE
DRAW
UPDATE
DRAW
UPDATE
DRAW
UPDATE
DRAW
26 ms UPDATE
Frame
Drop
DRAW
FrameHandler
Binding
Draw
postFrameCallback
postCallback
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
<ImageView
android:id="@+id/img_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content”	
android:src="@drawable/selector_list_btn_play"
android:visibility ="@{viewmodel.showPlay ?	View.VISIBLE :	View.GONE}"	/>
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
<ImageView
android:id="@+id/img_play"
android:layout_width="wrap_content"
android:layout_height="wrap_content”	
android:src="@drawable/selector_list_btn_play"
android:visibility ="@{viewmodel.showPlay ?	View.VISIBLE :	View.GONE ,	default	=	gone}"	/>
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
var dataList:	LiveData<PagedList<BaseRecyclerModel>>
init {
val testDataSourceFactory =	TestDataSourceFactory(context)
val config =	PagedList.Config.Builder()
.setPageSize(100)
.setPrefetchDistance(10)
.setInitialLoadSizeHint(100)
.setEnablePlaceholders(true)
.build()
dataList =	LivePagedListBuilder<Int,	BaseRecyclerModel>(testDataSourceFactory,	config).build()
}
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
@BindingAdapter("app:set_list")
fun	setList(recyclerView: RecyclerView ,	
list:	ArrayList<BaseRecyclerModel>)	
{
val adapter =	recyclerView.adapter
adapter.setList(list)
}
val items	=	ObservableArrayList()
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
class	HomeFragment {
private	lateinit var homeViewModel:	HomeViewModel
override	fun	onCreate(savedInstanceState:	Bundle?)	{
super.onCreate(savedInstanceState)
homeViewModel=	HomeViewModel()
homeViewModel.loadData()
}
}
class	HomeFragment {
private	lateinit var homeViewModel:	HomeViewModel
override	fun	onCreate(savedInstanceState:	Bundle?)	{
super.onCreate(savedInstanceState)
val factory = ViewModelProvider
.AndroidViewModelFactory
.getInstance(application)
homeViewModel =	ViewModelProvider(this,factory)
.get(HomeViewModel::class.java)
homeViewModel.loadData()
}
}
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
public	class	BugsApplication extends	MultiDexApplication {
@Override
public	void	onCreate()	{
super.onCreate();
registerActivityLifecycleCallbacks(new	BugsActivityLifeCycleCallbacks());
}
}
public	class	BugsActivityLifeCycleCallbacks implements	
Application.ActivityLifecycleCallbacks {
private	int runningCount;	//	실행중인 액티비티 수
@Override
public	void	onActivityStarted(Activity	activity)	{
runningCount++;
if(runningCount ==	1)	{
//	포그라운드 stopFloating()
}
}
@Override
public	void	onActivityStopped(Activity	activity)	{
runningCount–
if(runningCount ==	0)	{
//	백그라운드 stopFloating()
}
}
class	BugsApplication:	Application()	{
override	fun	onCreate()	{
super.onCreate()
ProcessLifecycleOwner.get().lifecycle.addObserver(BugsLifeCycleObserver(appContext))
}
}
class	BugsLifeCycleObserver(private	val appContext: Context): LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun	startFloatingService()	{
// 백그라운드
//	startFloating()
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun	destroyFloatingService()	{
// 포그라운드
//	stopFloating()
}
}
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
ServiceStub extends IMusicService.Stub
play()
pause()
stop()
MediaSession.Callback()
onPlay()
onPause()
onStop()
ServiceStub extends IMusicService.Stub
getShuffleList()
getTrack()	
setRepeatMode()
MediaSession.Callback()
onCustomAction()
BroadcastReceiver
META_CHANGED
QUEUE_CHANGED
PLAYSTATE_CHANGED
MediaBrowser
MediaController.registerCallback
onMetaChange()
onQueueChange ()
onPlayStateChange()
MediaController.Callback()
onMetadataChanged()
onQueueChanged()
onPlaybackStateChanged()
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)
[2019] 벅스 5.0 (feat. Kotlin, Jetpack)

More Related Content

PDF
[2019] 스몰 스텝: Android 렛츠기릿!
PDF
Data binding 入門淺談
PDF
Steps to create image carousel by using angularjs
PPTX
Custom directive and scopes
PDF
Manipulating Magento - Meet Magento Belgium 2017
PDF
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
KEY
Design Patterns for Tablets and Smartphones
DOCX
How routing works in angular js
[2019] 스몰 스텝: Android 렛츠기릿!
Data binding 入門淺談
Steps to create image carousel by using angularjs
Custom directive and scopes
Manipulating Magento - Meet Magento Belgium 2017
Introduction to Magento 2 module development - PHP Antwerp Meetup 2017
Design Patterns for Tablets and Smartphones
How routing works in angular js

What's hot (20)

PDF
Dialogs in Android MVVM (14.11.2019)
PDF
Before there was Hoop Dreams, there was McDonald's: Strange and Beautiful
PDF
Data Binding in Action using MVVM pattern
PPTX
Starting with angular js
PDF
How to use data binding in android
PPTX
AngularJS in 60ish Minutes
PPTX
Lessons Learned: Migrating Tests to Selenium v2
PDF
The rise and fall of a techno DJ, plus more new reviews and notable screenings
DOCX
Different way to share data between controllers in angular js
PPTX
06. Android Basic Widget and Container
PDF
Android best practices
PDF
Android in practice
PDF
QCon 2015 - Thinking in components: A new paradigm for Web UI
PDF
Technical Preview: The New Shopware Admin
TXT
Session 2
PDF
Tutorial basicapp
PDF
A comprehensive guide on developing responsive and common react filter component
DOCX
Layout
PDF
Applications: A Series of States
PPTX
Angular Js Get Started - Complete Course
Dialogs in Android MVVM (14.11.2019)
Before there was Hoop Dreams, there was McDonald's: Strange and Beautiful
Data Binding in Action using MVVM pattern
Starting with angular js
How to use data binding in android
AngularJS in 60ish Minutes
Lessons Learned: Migrating Tests to Selenium v2
The rise and fall of a techno DJ, plus more new reviews and notable screenings
Different way to share data between controllers in angular js
06. Android Basic Widget and Container
Android best practices
Android in practice
QCon 2015 - Thinking in components: A new paradigm for Web UI
Technical Preview: The New Shopware Admin
Session 2
Tutorial basicapp
A comprehensive guide on developing responsive and common react filter component
Layout
Applications: A Series of States
Angular Js Get Started - Complete Course
Ad

Similar to [2019] 벅스 5.0 (feat. Kotlin, Jetpack) (20)

PDF
Android Jetpack: ViewModel and Testing
KEY
Android app development basics
PDF
Material Design (The Technical Essentials) by Mohammad Aljobairi @AMMxDROID
PDF
Android Materials Design
PDF
SE2016 Android Mikle Anokhin "Speed up application development with data bind...
PPTX
Data Binding - Android by Harin Trivedi
PDF
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
PDF
Slightly Advanced Android Wear ;)
PDF
Deep dive into Android Data Binding
PDF
Hybrid App using WordPress
PDF
"Android Data Binding в массы" Михаил Анохин
PDF
Responsive mobile design in practice
PDF
Fragments: Why, How, What For?
PDF
Data binding в массы!
PDF
Android por onde começar? Mini Curso Erbase 2015
PDF
Effective Android Data Binding
PDF
JSLab. Алексей Волков. "React на практике"
PDF
MVVM & Data Binding Library
PDF
Get AngularJS Started!
PPTX
React & Redux for noobs
Android Jetpack: ViewModel and Testing
Android app development basics
Material Design (The Technical Essentials) by Mohammad Aljobairi @AMMxDROID
Android Materials Design
SE2016 Android Mikle Anokhin "Speed up application development with data bind...
Data Binding - Android by Harin Trivedi
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Slightly Advanced Android Wear ;)
Deep dive into Android Data Binding
Hybrid App using WordPress
"Android Data Binding в массы" Михаил Анохин
Responsive mobile design in practice
Fragments: Why, How, What For?
Data binding в массы!
Android por onde começar? Mini Curso Erbase 2015
Effective Android Data Binding
JSLab. Алексей Волков. "React на практике"
MVVM & Data Binding Library
Get AngularJS Started!
React & Redux for noobs
Ad

More from NHN FORWARD (20)

PDF
[2019] 패션 시소러스 기반 상품 특징 분석 시스템
PDF
딥러닝, 야 너도 할 수 있어(feat. PyTorch)
PDF
NHN 베이스캠프: 신입사원들은 무엇을 배우나요?
PDF
[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기
PDF
[2019] 전기 먹는 하마의 다이어트 성공기 클라우드 데이터 센터의 에너지 절감 노력과 사례
PDF
[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)
PDF
[2019] 아직도 돈 주고 DB 쓰나요? for Developer
PDF
[2019] 아직도 돈 주고 DB 쓰나요 for DBA
PDF
[2019] 비주얼 브랜딩: Basic system
PDF
[2019] PAYCO 매거진 서버 Kotlin 적용기
PDF
[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
PDF
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
PDF
[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례
PDF
[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자
PDF
[2019] 200만 동접 게임을 위한 MySQL 샤딩
PDF
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
PDF
[2019] 글로벌 게임 서비스 노하우
PDF
[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인
PDF
[2019] 위치 기반 빅 데이터의 시각화와 지도
PDF
[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기
[2019] 패션 시소러스 기반 상품 특징 분석 시스템
딥러닝, 야 너도 할 수 있어(feat. PyTorch)
NHN 베이스캠프: 신입사원들은 무엇을 배우나요?
[2019] GIF 스티커 만들기: 스파인 2D를 이용한 움직이는 스티커 만들기
[2019] 전기 먹는 하마의 다이어트 성공기 클라우드 데이터 센터의 에너지 절감 노력과 사례
[2019] 스몰 스텝: Dooray!를 이용한 업무 효율화/자동화(고객문의 시스템 구축)
[2019] 아직도 돈 주고 DB 쓰나요? for Developer
[2019] 아직도 돈 주고 DB 쓰나요 for DBA
[2019] 비주얼 브랜딩: Basic system
[2019] PAYCO 매거진 서버 Kotlin 적용기
[2019] Java에서 Fiber를 이용하여 동시성concurrency 프로그래밍 쉽게 하기
[2019] PAYCO 쇼핑 마이크로서비스 아키텍처(MSA) 전환기
[2019] 비식별 데이터로부터의 가치 창출과 수익화 사례
[2019] 게임 서버 대규모 부하 테스트와 모니터링 이렇게 해보자
[2019] 200만 동접 게임을 위한 MySQL 샤딩
[2019] 언리얼 엔진을 통해 살펴보는 리플렉션과 가비지 컬렉션
[2019] 글로벌 게임 서비스 노하우
[2019] 배틀로얄 전장(map) 제작으로 알아보는 슈팅 게임 레벨 디자인
[2019] 위치 기반 빅 데이터의 시각화와 지도
[2019] 웹 프레젠테이션 개발기: Dooray! 발표 모드 해부하기

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Encapsulation theory and applications.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
A Presentation on Artificial Intelligence
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Electronic commerce courselecture one. Pdf
PPT
Teaching material agriculture food technology
PDF
Review of recent advances in non-invasive hemoglobin estimation
Diabetes mellitus diagnosis method based random forest with bat algorithm
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Encapsulation theory and applications.pdf
Understanding_Digital_Forensics_Presentation.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Chapter 3 Spatial Domain Image Processing.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Approach and Philosophy of On baking technology
Encapsulation_ Review paper, used for researhc scholars
Advanced methodologies resolving dimensionality complications for autism neur...
A Presentation on Artificial Intelligence
Digital-Transformation-Roadmap-for-Companies.pptx
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Electronic commerce courselecture one. Pdf
Teaching material agriculture food technology
Review of recent advances in non-invasive hemoglobin estimation

[2019] 벅스 5.0 (feat. Kotlin, Jetpack)