SlideShare a Scribd company logo
1 of 18
Download to read offline
2018/06/07 umeda.apk #4
Who are you?
▸ ( )
▸ tech vein ( )
▸
▸ GitHub: kwmt twitter: kwmt27
▸ Google I/O2018
2
▸ navigation-ui
▸ navigation-ui
▸ navigation-ui
▸
3
/18
▸ Navigation Architecture Component
▸ 1.0.0-alpha01
▸ Navigation Drawer BottomNavigation
▸ navigation-fragment
4
implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha01'
implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha01'
/185
class MainActivity : AppCompatActivity() {
private val binding: MainActivityBinding by lazy {
DataBindingUtil.setContentView<MainActivityBinding>(this, R.layout.main_activity)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setSupportActionBar(binding.toolbar)
ActionBarDrawerToggle(
this,
binding.drawerLayout,
binding.toolbar,
R.string.openDrawerContentDescRes,
R.string.closeDrawerContentDescRes
)
.also { binding.drawerLayout.addDrawerListener(it) }
.apply {
isDrawerIndicatorEnabled = true
isDrawerSlideAnimationEnabled = true
syncState()
}
binding.navView.setNavigationItemSelectedListener {
val f = when (it.itemId) {
R.id.mainFragment -> MainFragment()
R.id.repositoryListFragment -> RepositoryListFragment()
else -> MainFragment()
}
val ft = supportFragmentManager.beginTransaction()
ft.add(R.id.main_nav_host_fragment, f)
ft.commitNow()
binding.drawerLayout.closeDrawers()
true
}
}
}
/186
/187
class MainActivity : AppCompatActivity() {
private val binding: MainActivityBinding by lazy {
DataBindingUtil.setContentView<MainActivityBinding>(this, R.layout.main_activity)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setSupportActionBar(binding.toolbar)
findNavController(R.id.main_nav_host_fragment).apply {
setupActionBarWithNavController(this, binding.drawerLayout)
binding.navView.setupWithNavController(this)
}
}
override fun onSupportNavigateUp(): Boolean =
binding.drawerLayout.navigateUp(findNavController(R.id.main_nav_host_fragment))
}
/188
/189
🤔
/1810
/1811
Navigation
startDestination※
※ startDestination
/1812
/1813
/1814
/1815
😱
/1816
/18
▸ b.androd.com issue
▸ won’t fix
▸
▸ navigation-ui alpha
17
/18
▸ 6/14 Osaka Mix Leap Study #16 - Android JetPack
▸ https://yahoo-osaka.connpass.com/event/89865/
▸ 6/15 Dev #2 WWDC & Google IO
▸ https://kyoto-dev-cafe.connpass.com/event/89875/
18

More Related Content

What's hot

Android Wear Essentials
Android Wear EssentialsAndroid Wear Essentials
Android Wear EssentialsNilhcem
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]Nilhcem
 
State management in android applications
State management in android applicationsState management in android applications
State management in android applicationsGabor Varadi
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards CompatibilityAngelo Rüggeberg
 
Android Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation DrawerAndroid Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation DrawerAgus Haryanto
 
A friend in need - A JS indeed
A friend in need - A JS indeedA friend in need - A JS indeed
A friend in need - A JS indeedYonatan Levin
 
Advancing the UI — Part 1: Look, Motion, and Gestures
Advancing the UI — Part 1: Look, Motion, and GesturesAdvancing the UI — Part 1: Look, Motion, and Gestures
Advancing the UI — Part 1: Look, Motion, and GesturesSamsung Developers
 
Getting Ready For Android Wear
Getting Ready For Android WearGetting Ready For Android Wear
Getting Ready For Android WearRaveesh Bhalla
 
Implementing cast in android
Implementing cast in androidImplementing cast in android
Implementing cast in androidAngelo Rüggeberg
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Alfredo Morresi
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricksNLJUG
 
3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOSRodrigo Borges
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinPeter Friese
 

What's hot (15)

Android Wear Essentials
Android Wear EssentialsAndroid Wear Essentials
Android Wear Essentials
 
The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]The 2016 Android Developer Toolbox [MOBILIZATION]
The 2016 Android Developer Toolbox [MOBILIZATION]
 
@Ionic native/google-maps
@Ionic native/google-maps@Ionic native/google-maps
@Ionic native/google-maps
 
State management in android applications
State management in android applicationsState management in android applications
State management in android applications
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards Compatibility
 
Android Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation DrawerAndroid Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation Drawer
 
A friend in need - A JS indeed
A friend in need - A JS indeedA friend in need - A JS indeed
A friend in need - A JS indeed
 
Advancing the UI — Part 1: Look, Motion, and Gestures
Advancing the UI — Part 1: Look, Motion, and GesturesAdvancing the UI — Part 1: Look, Motion, and Gestures
Advancing the UI — Part 1: Look, Motion, and Gestures
 
Getting Ready For Android Wear
Getting Ready For Android WearGetting Ready For Android Wear
Getting Ready For Android Wear
 
Implementing cast in android
Implementing cast in androidImplementing cast in android
Implementing cast in android
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricks
 
3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS3D Touch: Preparando sua app para o futuro do iOS
3D Touch: Preparando sua app para o futuro do iOS
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & Xamarin
 

Similar to navigation-uiライブラリは、既存のアプリを置き換える ことができないかもしれない

A Single activity app with Jetpack's Navigation Component
A Single activity app with Jetpack's Navigation ComponentA Single activity app with Jetpack's Navigation Component
A Single activity app with Jetpack's Navigation ComponentBoonya Kitpitak
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzlesDanny Preussler
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil FrameworkEric ShangKuan
 
Androidaop 170105090257
Androidaop 170105090257Androidaop 170105090257
Androidaop 170105090257newegg
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best PracticesYekmer Simsek
 
Building an app with Google's new suites
Building an app with Google's new suitesBuilding an app with Google's new suites
Building an app with Google's new suitesToru Wonyoung Choi
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRAMBLER&Co
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaSAppsembler
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing ComplexityRyan Anklam
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesMichael Galpin
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsScott Gardner
 
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperThe Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperDroidConTLV
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBTAnton Yalyshev
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in AndroidRobert Cooper
 
Android App Development - 05 Action bar
Android App Development - 05 Action barAndroid App Development - 05 Action bar
Android App Development - 05 Action barDiego Grancini
 
Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your appsJuan C Catalan
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScriptAndrew Dupont
 

Similar to navigation-uiライブラリは、既存のアプリを置き換える ことができないかもしれない (20)

A Single activity app with Jetpack's Navigation Component
A Single activity app with Jetpack's Navigation ComponentA Single activity app with Jetpack's Navigation Component
A Single activity app with Jetpack's Navigation Component
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
 
The Google App Engine Oil Framework
The Google App Engine Oil FrameworkThe Google App Engine Oil Framework
The Google App Engine Oil Framework
 
Androidaop 170105090257
Androidaop 170105090257Androidaop 170105090257
Androidaop 170105090257
 
Android 3
Android 3Android 3
Android 3
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
Building an app with Google's new suites
Building an app with Google's new suitesBuilding an app with Google's new suites
Building an app with Google's new suites
 
Rambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуйRambler.iOS #6: App delegate - разделяй и властвуй
Rambler.iOS #6: App delegate - разделяй и властвуй
 
Django deployment with PaaS
Django deployment with PaaSDjango deployment with PaaS
Django deployment with PaaS
 
React & The Art of Managing Complexity
React &  The Art of Managing ComplexityReact &  The Art of Managing Complexity
React & The Art of Managing Complexity
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
 
Android swedroid
Android swedroidAndroid swedroid
Android swedroid
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
 
What's new in iOS9
What's new in iOS9What's new in iOS9
What's new in iOS9
 
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, PepperThe Mighty Power of the Accessibility Service - Guy Griv, Pepper
The Mighty Power of the Accessibility Service - Guy Griv, Pepper
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBT
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
Android App Development - 05 Action bar
Android App Development - 05 Action barAndroid App Development - 05 Action bar
Android App Development - 05 Action bar
 
Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your apps
 
Writing Maintainable JavaScript
Writing Maintainable JavaScriptWriting Maintainable JavaScript
Writing Maintainable JavaScript
 

More from Yasutaka Kawamoto

2018 05-19 google-io2018_report
2018 05-19 google-io2018_report2018 05-19 google-io2018_report
2018 05-19 google-io2018_reportYasutaka Kawamoto
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Yasutaka Kawamoto
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Yasutaka Kawamoto
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しようYasutaka Kawamoto
 

More from Yasutaka Kawamoto (6)

2018 05-19 google-io2018_report
2018 05-19 google-io2018_report2018 05-19 google-io2018_report
2018 05-19 google-io2018_report
 
Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917Introduce the activities of gdg kobe 130917
Introduce the activities of gdg kobe 130917
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
5分でわかるGoogle+API
5分でわかるGoogle+API5分でわかるGoogle+API
5分でわかるGoogle+API
 
Serviceについて
ServiceについてServiceについて
Serviceについて
 

navigation-uiライブラリは、既存のアプリを置き換える ことができないかもしれない

  • 2. Who are you? ▸ ( ) ▸ tech vein ( ) ▸ ▸ GitHub: kwmt twitter: kwmt27 ▸ Google I/O2018 2
  • 4. /18 ▸ Navigation Architecture Component ▸ 1.0.0-alpha01 ▸ Navigation Drawer BottomNavigation ▸ navigation-fragment 4 implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha01' implementation 'android.arch.navigation:navigation-ui:1.0.0-alpha01'
  • 5. /185 class MainActivity : AppCompatActivity() { private val binding: MainActivityBinding by lazy { DataBindingUtil.setContentView<MainActivityBinding>(this, R.layout.main_activity) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setSupportActionBar(binding.toolbar) ActionBarDrawerToggle( this, binding.drawerLayout, binding.toolbar, R.string.openDrawerContentDescRes, R.string.closeDrawerContentDescRes ) .also { binding.drawerLayout.addDrawerListener(it) } .apply { isDrawerIndicatorEnabled = true isDrawerSlideAnimationEnabled = true syncState() } binding.navView.setNavigationItemSelectedListener { val f = when (it.itemId) { R.id.mainFragment -> MainFragment() R.id.repositoryListFragment -> RepositoryListFragment() else -> MainFragment() } val ft = supportFragmentManager.beginTransaction() ft.add(R.id.main_nav_host_fragment, f) ft.commitNow() binding.drawerLayout.closeDrawers() true } } }
  • 7. /187 class MainActivity : AppCompatActivity() { private val binding: MainActivityBinding by lazy { DataBindingUtil.setContentView<MainActivityBinding>(this, R.layout.main_activity) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setSupportActionBar(binding.toolbar) findNavController(R.id.main_nav_host_fragment).apply { setupActionBarWithNavController(this, binding.drawerLayout) binding.navView.setupWithNavController(this) } } override fun onSupportNavigateUp(): Boolean = binding.drawerLayout.navigateUp(findNavController(R.id.main_nav_host_fragment)) }
  • 10. /1810
  • 12. /1812
  • 13. /1813
  • 14. /1814
  • 16. /1816
  • 17. /18 ▸ b.androd.com issue ▸ won’t fix ▸ ▸ navigation-ui alpha 17
  • 18. /18 ▸ 6/14 Osaka Mix Leap Study #16 - Android JetPack ▸ https://yahoo-osaka.connpass.com/event/89865/ ▸ 6/15 Dev #2 WWDC & Google IO ▸ https://kyoto-dev-cafe.connpass.com/event/89875/ 18