SlideShare a Scribd company logo
Navigation Architecture Component
2018/06/15 Dev #2 WWDC & Google IO
tech vein (@kwmt27)
Who are you?
▸ ( )
▸ tech vein ( )
▸ (Android iOS)
▸ GitHub: kwmt twitter: kwmt27
▸ Google I/O2018
2
3
RPG
ChiiQ
Android/iOS
4
https://www.slideshare.net/yasi_life/navigation-architecture-component
▸ Navigation & Navigation
5
▸ Navigation
▸
▸
▸
▸ Google IO 2018 ←
▸
6
▸ Navigation
▸ Navigation
▸ New Destination Type
▸ Navigation Architecture Component
/37Navigation 7
/37Navigation
▸
▸ 1.0.0-alpha02 (6/7 updated)
8
/37Navigation
▸ Fragment
▸ DeepLink
▸
▸
9
Navigation
▸ Navigation & Navigation
10
▸ Navigation
▸
▸
▸
▸ Google IO 2018
/37Navigation
▸
11
implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha02'
implementation ‘android.arch.navigation:navigation-ui:1.0.0-alpha02'
implementation ‘android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha02’
implementation ‘android.arch.navigation:navigation-ui-ktx:1.0.0-alpha02’
classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha02'
▸ Navigation Drawer Bottom Navigation
▸ Kotlin
▸ Safe Args Gradle
/37Navigation 12
▸
▸ Destination
▸ Destination Fragment Activity
/37Navigation
▸ Android Studio 3.2
▸
▸ navigation
▸ xml
13
/37Navigation 14
/37Navigation 15
action
/37
<navigation …
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name=“net.kwmt27.codesearch.ui.HomeFragment">
<action
android:id="@+id/nextAction"
app:destination="@id/nextFragment" />
</fragment>
<fragment
android:id=“@+id/nextFragment“
android:name="net.kwmt27.codesearch.ui.NextFragment"/>
</navigation>
<navigation …
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name=“net.kwmt27.codesearch.ui.HomeFragment">
<action
android:id="@+id/nextAction"
app:destination="@id/nextFragment" />
</fragment>
<fragment
android:id=“@+id/nextFragment“
android:name="net.kwmt27.codesearch.ui.NextFragment"/>
</navigation>
Navigation 16
<navigation …
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name=“net.kwmt27.codesearch.ui.HomeFragment">
<action
android:id="@+id/nextAction"
app:destination="@id/nextFragment" />
</fragment>
<fragment
android:id=“@+id/nextFragment“
android:name="net.kwmt27.codesearch.ui.NextFragment"/>
</navigation>
<navigation …
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name=“net.kwmt27.codesearch.ui.HomeFragment">
<action
android:id="@+id/nextAction"
app:destination="@id/nextFragment" />
</fragment>
<fragment
android:id=“@+id/nextFragment“
android:name="net.kwmt27.codesearch.ui.NextFragment"/>
</navigation>
<navigation …
app:startDestination="@id/homeFragment">
<fragment
android:id="@+id/homeFragment"
android:name=“net.kwmt27.codesearch.ui.HomeFragment">
<action
android:id="@+id/nextAction"
app:destination="@id/nextFragment" />
</fragment>
<fragment
android:id=“@+id/nextFragment“
android:name="net.kwmt27.codesearch.ui.NextFragment"/>
</navigation>
/37Navigation 17
NavHost
/37Navigation 18
<LinearLayout…>
<android.support.v7.widget.Toolbar … />
<fragment…
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
/>
<android.support.design.widget.BottomNavigationView…/>
</LinearLayout>
<LinearLayout…>
<android.support.v7.widget.Toolbar … />
<fragment…
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
/>
<android.support.design.widget.BottomNavigationView…/>
</LinearLayout>
<LinearLayout…>
<android.support.v7.widget.Toolbar … />
<fragment…
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
/>
<android.support.design.widget.BottomNavigationView…/>
</LinearLayout>
<LinearLayout…>
<android.support.v7.widget.Toolbar … />
<fragment…
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/mobile_navigation"
app:defaultNavHost="true"
/>
<android.support.design.widget.BottomNavigationView…/>
</LinearLayout>
/37Navigation 19
val button: Button = view.findViewById(R.id.next)
button.setOnClickListener {
Navigation.findNavController(it).navigate(R.id.nextFragment)
}
R.id.nextAction
action id
▸ NavController#navigate
▸ NavController
▸ Navigation#findNavController
/37Navigation 20
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout" … >
<LinearLayout …>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar" … />
<fragment
android:id="@+id/main_nav_host_fragment"
android:name=“androidx.navigation.fragment.NavHostFragment"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_main" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
…
app:menu="@menu/menu_nav_drawer" />
</android.support.v4.widget.DrawerLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout" … >
<LinearLayout …>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar" … />
<fragment
android:id="@+id/main_nav_host_fragment"
android:name=“androidx.navigation.fragment.NavHostFragment"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_main" />
</LinearLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
…
app:menu="@menu/menu_nav_drawer" />
</android.support.v4.widget.DrawerLayout>
/37Navigation 21
<menu …>
<item
android:id=“@id/homeFragment" …/>
<item
android:id=“@id/nextFragment" … />
</menu>
Navigation Graph
Destination id
/37
class MainActivity : AppCompatActivity() {
private lateinit var drawerLayout: DrawerLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
drawerLayout = findViewById(R.id.drawer_layout)
findNavController(R.id.main_nav_host_fragment).apply {
val navView : NavigationView = findViewById(R.id.nav_view)
NavigationUI.setupWithNavController(navView, this)
NavigationUI.setupActionBarWithNavController(
this@MainActivity, this, drawerLayout)
}
}
override fun onSupportNavigateUp(): Boolean =
navigateUp(
drawerLayout,
Navigation.findNavController(this, R.id.main_nav_host_fragment)
)
}
Navigation 22
class MainActivity : AppCompatActivity() {
private lateinit var drawerLayout: DrawerLayout
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.main_activity)
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
drawerLayout = findViewById(R.id.drawer_layout)
findNavController(R.id.main_nav_host_fragment).apply {
val navView : NavigationView = findViewById(R.id.nav_view)
NavigationUI.setupWithNavController(navView, this)
NavigationUI.setupActionBarWithNavController(
this@MainActivity, this, drawerLayout)
}
}
override fun onSupportNavigateUp(): Boolean =
navigateUp(
drawerLayout,
Navigation.findNavController(this, R.id.main_nav_host_fragment)
)
}
DrawerLatyoute NavigationVIew ActionBar
NavController
/37Navigation
▸ Bundle
▸ Safe Args Gradle
23
/37Navigation 24
apply plugin: 'com.android.application'
apply plugin: 'androidx.navigation.safeargs'
classpath 'android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha02'
build.gradle
app/build.gradle
/37Navigation 25
<fragment
android:id="@+id/nextFragment"
android:name="net.kwmt27.codesearch.ui.repository.NextFragment"
android:label="@string/title_repository"
tools:layout="@layout/next_fragment" >
<argument
android:name="step"
android:defaultValue="1"
app:type="integer"/>
</fragment>
/37Navigation
▸ Fragment + Directions
▸ ( )HomeFragmentDirections
▸ Fragment + Args
▸ ( )NextFragmentArgs
26
/37Navigation
▸
27
button.setOnClickListener {
val action = HomeFragmentDirections.nextAction().setStep(5)
Navigation.findNavController(it).navigate(action)
}
val step = arguments?.let {
val safeArgs = NextFragmentArgs.fromBundle(it)
safeArgs.step
}
▸
/37Navigation
▸
28
PendingIntent deeplink = Navigation.findNavController(v).createDeepLink()
.setDestination(R.id.android)
.setArguments(args)
.createPendingIntent();
/37Navigation
▸ URL
29
<fragment
android:id="@+id/deepLinkFragment"
android:name="net.kwmt27.codesearch.ui.DeepLinkFragment">
<argument
android:name="myarg"
android:defaultValue="Android!"/>
<deepLink app:uri="www.example.com/{myarg}"/>
</fragment>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<nav-graph android:value="@navigation/nav_main"/>
</activity>
▸ Navigation Graph
▸ AndroidManifest
▸ Navigation & Navigation
30
▸ Navigation
▸
▸
▸
▸ Google IO 2018
/37
▸ https://issuetracker.google.com/issues/79672220
▸ navigateForResult
▸ 5/15
31
▸ https://issuetracker.google.com/issues/80267254
▸ 5/25
/37
▸ https://issuetracker.google.com/issues/79665225
▸ 5/14
32
▸ https://issuetracker.google.com/issues/79993862
▸ 5/19
▸ Navigation & Navigation
33
▸ Navigation
▸
▸
▸
▸ Google IO 2018
/37
▸ Navigation
▸ Navigation Graph
▸
▸
▸
34
/37
▸ Implement navigation with the Navigation Architecture Component
▸ https://developer.android.com/topic/libraries/architecture/
navigation/navigation-implementing
▸ Codelabs
▸ https://codelabs.developers.google.com/codelabs/android-
navigation/index.html?index=..%2F..%2Findex#2
▸ Issue Tracker
▸ https://issuetracker.google.com/issues?q=componentid:
409828%20status:open&p=1
35
▸ Navigation & Navigation
36
▸ Navigation
▸
▸
▸
▸ Google IO 2018 ←
/3737

More Related Content

What's hot

Android Wear Essentials
Android Wear EssentialsAndroid Wear Essentials
Android Wear Essentials
Nilhcem
 
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
 
@Ionic native/google-maps
@Ionic native/google-maps@Ionic native/google-maps
@Ionic native/google-maps
Masashi Katsumata
 
State management in android applications
State management in android applicationsState management in android applications
State management in android applications
Gabor Varadi
 
Android Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation DrawerAndroid Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation Drawer
Agus Haryanto
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
Alfonso Torres
 
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
Samsung Developers
 
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
Yonatan Levin
 
The Glass Class - Tutorial 4 - GDK-Live Cards
The Glass Class - Tutorial 4 - GDK-Live CardsThe Glass Class - Tutorial 4 - GDK-Live Cards
The Glass Class - Tutorial 4 - GDK-Live Cards
Gun Lee
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards Compatibility
Angelo Rüggeberg
 
Getting Ready For Android Wear
Getting Ready For Android WearGetting Ready For Android Wear
Getting Ready For Android Wear
Raveesh Bhalla
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricks
NLJUG
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)
Alfredo Morresi
 
Implementing cast in android
Implementing cast in androidImplementing cast in android
Implementing cast in android
Angelo Rüggeberg
 
Vlad Nedomovniy "Navigation with less pain"
Vlad Nedomovniy "Navigation with less pain"Vlad Nedomovniy "Navigation with less pain"
Vlad Nedomovniy "Navigation with less pain"
Provectus
 
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
Rodrigo Borges
 
Google Fit, Android Wear & Xamarin
Google Fit, Android Wear & XamarinGoogle Fit, Android Wear & Xamarin
Google Fit, Android Wear & Xamarin
Peter Friese
 

What's hot (17)

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
 
Android Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation DrawerAndroid Sliding Menu dengan Navigation Drawer
Android Sliding Menu dengan Navigation Drawer
 
Sequence diagrams
Sequence diagramsSequence diagrams
Sequence diagrams
 
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
 
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
 
The Glass Class - Tutorial 4 - GDK-Live Cards
The Glass Class - Tutorial 4 - GDK-Live CardsThe Glass Class - Tutorial 4 - GDK-Live Cards
The Glass Class - Tutorial 4 - GDK-Live Cards
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards Compatibility
 
Getting Ready For Android Wear
Getting Ready For Android WearGetting Ready For Android Wear
Getting Ready For Android Wear
 
Android code puzzlers + tips & tricks
Android code puzzlers + tips & tricksAndroid code puzzlers + tips & tricks
Android code puzzlers + tips & tricks
 
Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)Slightly Advanced Android Wear ;)
Slightly Advanced Android Wear ;)
 
Implementing cast in android
Implementing cast in androidImplementing cast in android
Implementing cast in android
 
Vlad Nedomovniy "Navigation with less pain"
Vlad Nedomovniy "Navigation with less pain"Vlad Nedomovniy "Navigation with less pain"
Vlad Nedomovniy "Navigation with less pain"
 
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 Architecture Component(京都Devかふぇ バージョン)

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
Boonya Kitpitak
 
Modular Navigation with React Navigation
Modular Navigation with React NavigationModular Navigation with React Navigation
Modular Navigation with React Navigation
William Santos
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Yuji Hato
 
Android JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation ControllerAndroid JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation Controller
Leonardo Pirro
 
Android 3
Android 3Android 3
Android 3
Robert Cooper
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
Robert Cooper
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBT
Anton Yalyshev
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads France
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
Scott Gardner
 
Android App Development - 05 Action bar
Android App Development - 05 Action barAndroid App Development - 05 Action bar
Android App Development - 05 Action bar
Diego Grancini
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
Michael Galpin
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recievers
Utkarsh Mankad
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
Yekmer Simsek
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
Yasin Yildirim
 
Package org dev
Package org devPackage org dev
Package org dev
jaya lakshmi
 
package org dev
package org devpackage org dev
package org dev
jaya lakshmi
 
Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your apps
Juan C Catalan
 
Jetpack Navigation Component
Jetpack Navigation ComponentJetpack Navigation Component
Jetpack Navigation Component
James Shvarts
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QA
Ted Drake
 
07_UIAndroid.pdf
07_UIAndroid.pdf07_UIAndroid.pdf
07_UIAndroid.pdf
ImranS18
 

Similar to Navigation Architecture Component(京都Devかふぇ バージョン) (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
 
Modular Navigation with React Navigation
Modular Navigation with React NavigationModular Navigation with React Navigation
Modular Navigation with React Navigation
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
 
Android JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation ControllerAndroid JetPack: easy navigation with the new Navigation Controller
Android JetPack: easy navigation with the new Navigation Controller
 
Android 3
Android 3Android 3
Android 3
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
Android development with Scala and SBT
Android development with Scala and SBTAndroid development with Scala and SBT
Android development with Scala and SBT
 
CocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIViewCocoaHeads Toulouse - Guillaume Cerquant - UIView
CocoaHeads Toulouse - Guillaume Cerquant - UIView
 
SwiftUI and Combine All the Things
SwiftUI and Combine All the ThingsSwiftUI and Combine All the Things
SwiftUI and Combine All the Things
 
Android App Development - 05 Action bar
Android App Development - 05 Action barAndroid App Development - 05 Action bar
Android App Development - 05 Action bar
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
 
Android activity, service, and broadcast recievers
Android activity, service, and broadcast recieversAndroid activity, service, and broadcast recievers
Android activity, service, and broadcast recievers
 
Android Best Practices
Android Best PracticesAndroid Best Practices
Android Best Practices
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
 
Package org dev
Package org devPackage org dev
Package org dev
 
package org dev
package org devpackage org dev
package org dev
 
Adopting 3D Touch in your apps
Adopting 3D Touch in your appsAdopting 3D Touch in your apps
Adopting 3D Touch in your apps
 
Jetpack Navigation Component
Jetpack Navigation ComponentJetpack Navigation Component
Jetpack Navigation Component
 
Android accessibility for developers and QA
Android accessibility for developers and QAAndroid accessibility for developers and QA
Android accessibility for developers and QA
 
07_UIAndroid.pdf
07_UIAndroid.pdf07_UIAndroid.pdf
07_UIAndroid.pdf
 

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_report
Yasutaka 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 130917
Yasutaka Kawamoto
 
Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方Go言語によるwebアプリの作り方
Go言語によるwebアプリの作り方
Yasutaka Kawamoto
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
Yasutaka Kawamoto
 
5分でわかるGoogle+API
5分でわかるGoogle+API5分でわかるGoogle+API
5分でわかるGoogle+API
Yasutaka Kawamoto
 
Serviceについて
ServiceについてServiceについて
Serviceについて
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について
 

Recently uploaded

FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 

Recently uploaded (20)

FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 

Navigation Architecture Component(京都Devかふぇ バージョン)