SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
LINE Creators Studio ❤ Kotlin
, 8 0 4 5 1 6 4 2 6
LINE Fukuoka 1
8 #
LINE Creators Studio ❤ Kotlin
LINE Creators Studio?
L I
E :
N
/ . /
LINE Creators Studio ❤ Kotlin
LINE Creators Studio
H- A D A A J
H
H E E A E 2 2
A GA , AA 3
2 A A
Android
LINE Creators Studio ❤ Kotlin
History
. 1 0 678 4
. V[U
. ]e 2 e0 e0 e 0 e3
. 9 4
. 5 I
. 1I
.
. 4
. 1
LINE Creators Studio ❤ Kotlin
History
. 1 0 678 4
. V[U
. ]e 2 e0 e0 e 0 e3
. 9 4
. 5 I
. 1I
.
. 4
. 1
LINE Creators Studio ❤ Kotlin
:
: a
.885 6 8 6
2 - 1/ 2 0 6 ./ 7 .821
LINE Creators Studio ❤ Kotlin
History
. 1 0 678 4
. V[U
. ]e 2 e0 e0 e 0 e3
. 9 4
. 5 I
. 1I
.
. 4
. 1
LINE Creators Studio ❤ Kotlin
History
. 1 0 678 4
. V[U
. ]e 2 e0 e0 e 0 e3
. 9 4
. 5 I
. 1I
.
. 4
. 1
LINE Creators Studio ❤ Kotlin
…
LINE Creators Studio ❤ Kotlin
Ver.1.0
LINE Creators Studio ❤ Kotlin
Ver.1.3
LINE Creators Studio ❤ Kotlin
Ver.1.4
LINE Creators Studio ❤ Kotlin
Ver.1.5
LINE Creators Studio ❤ Kotlin
4 2.
1 5
1 3
1 2 3
4
Ver.2.1 (Android only)
LINE Creators Studio ❤ Kotlin
LINE Creators Studio ❤ Kotlin
Roadmap
LINE Creators Studio ❤ Kotlin
/ :
/
.
GrabCut
LINE Creators Studio ❤ Kotlin
GrabCut
3 1 G 3 1
. 2
2 . M
GrabCut
LINE Creators Studio ❤ Kotlin
GrabCut
z e rp a p GM8
p rp mu t M8
s g p:rp M hw M M8
c G M8
GrabCut
.330 2 14 6 1 2 1 . /
LINE Creators Studio ❤ Kotlin
GrabCut
a: : 8 M 8h Mg
c g pe
c g z t c w
c G c
c r s
r u m
GrabCut
/441 666 3 25 2 3 2 / . 0
LINE Creators Studio ❤ Kotlin
GrabCut
g t M m M :
c m w r :
a m c :
c a he :
a z :
spM M :
g M u G z :
GrabCut
0552 777 4 36 8 3.4. 3 0 / 1
LINE Creators Studio ❤ Kotlin
% C 0
12 .
0
G % 0
C
LINE Creators Studio ❤ Kotlin
03 2
7
.( 0 1 M
)
)
LINE Creators Studio ❤ Kotlin
2 2
CG 1
1 .
1
LINE Creators Studio ❤ Kotlin
Why Kotlin?
- DEC
I
J
-
Kotlin
LINE Creators Studio ❤ Kotlin
Why Kotlin?
val color = Color.CYAN
val alpha = (color shr 24) and 0xff
val red = (color shr 16) and 0xff
val green = (color shr 8) and 0xff
val blue = (color ) and 0xff
LINE Creators Studio ❤ Kotlin
Why Kotlin?
inline val @receiver:ColorInt Int.alpha get() = (this shr 24) and 0xff
inline val @receiver:ColorInt Int.red get() = (this shr 16) and 0xff
inline val @receiver:ColorInt Int.green get() = (this shr 8) and 0xff
inline val @receiver:ColorInt Int.blue get() = (this ) and 0xff
LINE Creators Studio ❤ Kotlin
Why Kotlin?
val a = color.alpha
val r = color.red
val g = color.green
val b = color.blue
LINE Creators Studio ❤ Kotlin
Why Kotlin?
inline operator fun @receiver:ColorInt Int.component1() = this.alpha
inline operator fun @receiver:ColorInt Int.component2() = this.red
inline operator fun @receiver:ColorInt Int.component3() = this.green
inline operator fun @receiver:ColorInt Int.component4() = this.blue
LINE Creators Studio ❤ Kotlin
Why Kotlin?
val (alpha, red, green, blue) = color
LINE Creators Studio ❤ Kotlin
Why Kotlin?
https://developer.android.com/kotlin/ktx
/ J / Ii P / X
/ r P / ae c t K
/ IplJ / I a ec k ed ed
I r P / P / o I I
P
/ I / n P J KAT
Android KTX
LINE Creators Studio ❤ Kotlin
Creators Studio Extensions for
OpenCV
val bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888)
val mat = Mat()
Utils.bitmapToMat(bitmap, mat)
val newBitmap = Bitmap.createBitmap(mat.width(), mat.height(),
Bitmap.Config.ARGB_8888)
Utils.matToBitmap(mat, newBitmap)
LINE Creators Studio ❤ Kotlin
Creators Studio Extensions for
OpenCVinterface OpenCVUtils {
fun Bitmap.toMat(): Mat {
val mat = Mat()
Utils.bitmapToMat(this, mat)
return mat
}
fun Mat.toBitmap(): Bitmap {
val bitmap = Bitmap.createBitmap(width(), height(),
Bitmap.Config.ARGB_8888)
Utils.matToBitmap(this, bitmap)
return bitmap
}
}
LINE Creators Studio ❤ Kotlin
Creators Studio Extensions for
OpenCV
val bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888)
val mat = bitmap.toMat()
val newBitmap = mat.toBitmap()
I ❤ Kotlin.
LINE Creators Studio ❤ Kotlin
Kotlin
) /
(
Kotlin 1.3 Released!
LINE Creators Studio ❤ Kotlin
Cross platform framework…?
Flutter, React Native, Xamarin etc.
LINE Creators Studio ❤ Kotlin
Multiplatform Kotlin
Kotlin(.kt)
Android
iOS
Kotlin/Native
Kotlin/JVM
Java bytecode
Native code
LINE Creators Studio ❤ Kotlin
Multiplatform Kotlin
Kotlin(.kt)
Android
iOS
Android library
(.jar)
iOS library
(.framework)
Kotlin/Native
Import
Java bytecode
Native code
Kotlin(.kt)
Swift(.swift)Kotlin/Native Import
LINE Creators Studio ❤ Kotlin
Multiplatform Kotlin
Data Model
Repositories
Utils
View Interfaces
Android
iOS
View
View
LINE Creators Studio ❤ Kotlin
Multiplatform Kotlin
/
Thank you.

Mais conteúdo relacionado

Mais de LINE Corporation

LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE Corporation
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享LINE Corporation
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE Corporation
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享LINE Corporation
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Corporation
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed KubernetesLINE Corporation
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE Corporation
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE Corporation
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Corporation
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Corporation
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Corporation
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發LINE Corporation
 
LINE Ads Platformの開発を支えるKafka
LINE Ads Platformの開発を支えるKafkaLINE Ads Platformの開発を支えるKafka
LINE Ads Platformの開発を支えるKafkaLINE Corporation
 
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したかI/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したかLINE Corporation
 
生粋のKotlin LoverによるLINEのKotlinの話
生粋のKotlin LoverによるLINEのKotlinの話生粋のKotlin LoverによるLINEのKotlinの話
生粋のKotlin LoverによるLINEのKotlinの話LINE Corporation
 
LINEで広告プラットフォームをJava+Golangで立ち上げた話
LINEで広告プラットフォームをJava+Golangで立ち上げた話LINEで広告プラットフォームをJava+Golangで立ち上げた話
LINEで広告プラットフォームをJava+Golangで立ち上げた話LINE Corporation
 
Efficient And Invincible Big Data Platform
Efficient And Invincible Big Data PlatformEfficient And Invincible Big Data Platform
Efficient And Invincible Big Data PlatformLINE Corporation
 
LINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tipsLINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tipsLINE Corporation
 
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)JavaからKotlinへのスムーズな移行を目指して(サーバサイド)
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)LINE Corporation
 
あなたは本当に信頼されているだろうか?
あなたは本当に信頼されているだろうか?あなたは本当に信頼されているだろうか?
あなたは本当に信頼されているだろうか?LINE Corporation
 

Mais de LINE Corporation (20)

LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享LINE 新星計劃介紹與新創團隊分享
LINE 新星計劃介紹與新創團隊分享
 
​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享​LINE 技術合作夥伴與應用分享
​LINE 技術合作夥伴與應用分享
 
LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣LINE 開發者社群經營與技術推廣
LINE 開發者社群經營與技術推廣
 
日本開發者大會短講分享
日本開發者大會短講分享日本開發者大會短講分享
日本開發者大會短講分享
 
LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享LINE Chatbot - 活動報名報到設計分享
LINE Chatbot - 活動報名報到設計分享
 
在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes在 LINE 私有雲中使用 Managed Kubernetes
在 LINE 私有雲中使用 Managed Kubernetes
 
LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧LINE TODAY高效率的敏捷測試開發技巧
LINE TODAY高效率的敏捷測試開發技巧
 
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
LINE 區塊鏈平台及代幣經濟 - LINK Chain及LINK介紹
 
LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享LINE Things - LINE IoT平台新技術分享
LINE Things - LINE IoT平台新技術分享
 
LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗LINE Pay - 一卡通支付新體驗
LINE Pay - 一卡通支付新體驗
 
LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務LINE Platform API Update - 打造一個更好的Chatbot服務
LINE Platform API Update - 打造一個更好的Chatbot服務
 
Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發Keynote - ​LINE 的技術策略佈局與跨國產品開發
Keynote - ​LINE 的技術策略佈局與跨國產品開發
 
LINE Ads Platformの開発を支えるKafka
LINE Ads Platformの開発を支えるKafkaLINE Ads Platformの開発を支えるKafka
LINE Ads Platformの開発を支えるKafka
 
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したかI/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
I/O intensiveなKafka ConsumerアプリケーションのスループットをLINE Ads Platformではどのように改善したか
 
生粋のKotlin LoverによるLINEのKotlinの話
生粋のKotlin LoverによるLINEのKotlinの話生粋のKotlin LoverによるLINEのKotlinの話
生粋のKotlin LoverによるLINEのKotlinの話
 
LINEで広告プラットフォームをJava+Golangで立ち上げた話
LINEで広告プラットフォームをJava+Golangで立ち上げた話LINEで広告プラットフォームをJava+Golangで立ち上げた話
LINEで広告プラットフォームをJava+Golangで立ち上げた話
 
Efficient And Invincible Big Data Platform
Efficient And Invincible Big Data PlatformEfficient And Invincible Big Data Platform
Efficient And Invincible Big Data Platform
 
LINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tipsLINE iOS開発で実践しているGit tips
LINE iOS開発で実践しているGit tips
 
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)JavaからKotlinへのスムーズな移行を目指して(サーバサイド)
JavaからKotlinへのスムーズな移行を目指して(サーバサイド)
 
あなたは本当に信頼されているだろうか?
あなたは本当に信頼されているだろうか?あなたは本当に信頼されているだろうか?
あなたは本当に信頼されているだろうか?
 

Último

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialJoão Esperancinha
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...amber724300
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessWSO2
 

Último (20)

Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
Kuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorialKuma Meshes Part I - The basics - A tutorial
Kuma Meshes Part I - The basics - A tutorial
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
JET Technology Labs White Paper for Virtualized Security and Encryption Techn...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Accelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with PlatformlessAccelerating Enterprise Software Engineering with Platformless
Accelerating Enterprise Software Engineering with Platformless
 

LINE Creators StudioでのKotlin利用について

  • 1. LINE Creators Studio ❤ Kotlin , 8 0 4 5 1 6 4 2 6 LINE Fukuoka 1 8 #
  • 2.
  • 3. LINE Creators Studio ❤ Kotlin LINE Creators Studio? L I E : N / . /
  • 4. LINE Creators Studio ❤ Kotlin LINE Creators Studio H- A D A A J H H E E A E 2 2 A GA , AA 3 2 A A Android
  • 5. LINE Creators Studio ❤ Kotlin History . 1 0 678 4 . V[U . ]e 2 e0 e0 e 0 e3 . 9 4 . 5 I . 1I . . 4 . 1
  • 6. LINE Creators Studio ❤ Kotlin History . 1 0 678 4 . V[U . ]e 2 e0 e0 e 0 e3 . 9 4 . 5 I . 1I . . 4 . 1
  • 7. LINE Creators Studio ❤ Kotlin : : a .885 6 8 6 2 - 1/ 2 0 6 ./ 7 .821
  • 8. LINE Creators Studio ❤ Kotlin History . 1 0 678 4 . V[U . ]e 2 e0 e0 e 0 e3 . 9 4 . 5 I . 1I . . 4 . 1
  • 9. LINE Creators Studio ❤ Kotlin History . 1 0 678 4 . V[U . ]e 2 e0 e0 e 0 e3 . 9 4 . 5 I . 1I . . 4 . 1
  • 10. LINE Creators Studio ❤ Kotlin …
  • 11. LINE Creators Studio ❤ Kotlin Ver.1.0
  • 12. LINE Creators Studio ❤ Kotlin Ver.1.3
  • 13. LINE Creators Studio ❤ Kotlin Ver.1.4
  • 14. LINE Creators Studio ❤ Kotlin Ver.1.5
  • 15. LINE Creators Studio ❤ Kotlin 4 2. 1 5 1 3 1 2 3 4 Ver.2.1 (Android only)
  • 16. LINE Creators Studio ❤ Kotlin
  • 17. LINE Creators Studio ❤ Kotlin Roadmap
  • 18. LINE Creators Studio ❤ Kotlin / : / . GrabCut
  • 19. LINE Creators Studio ❤ Kotlin GrabCut 3 1 G 3 1 . 2 2 . M GrabCut
  • 20. LINE Creators Studio ❤ Kotlin GrabCut z e rp a p GM8 p rp mu t M8 s g p:rp M hw M M8 c G M8 GrabCut .330 2 14 6 1 2 1 . /
  • 21. LINE Creators Studio ❤ Kotlin GrabCut a: : 8 M 8h Mg c g pe c g z t c w c G c c r s r u m GrabCut /441 666 3 25 2 3 2 / . 0
  • 22. LINE Creators Studio ❤ Kotlin GrabCut g t M m M : c m w r : a m c : c a he : a z : spM M : g M u G z : GrabCut 0552 777 4 36 8 3.4. 3 0 / 1
  • 23. LINE Creators Studio ❤ Kotlin % C 0 12 . 0 G % 0 C
  • 24. LINE Creators Studio ❤ Kotlin 03 2 7 .( 0 1 M ) )
  • 25. LINE Creators Studio ❤ Kotlin 2 2 CG 1 1 . 1
  • 26. LINE Creators Studio ❤ Kotlin Why Kotlin? - DEC I J - Kotlin
  • 27. LINE Creators Studio ❤ Kotlin Why Kotlin? val color = Color.CYAN val alpha = (color shr 24) and 0xff val red = (color shr 16) and 0xff val green = (color shr 8) and 0xff val blue = (color ) and 0xff
  • 28. LINE Creators Studio ❤ Kotlin Why Kotlin? inline val @receiver:ColorInt Int.alpha get() = (this shr 24) and 0xff inline val @receiver:ColorInt Int.red get() = (this shr 16) and 0xff inline val @receiver:ColorInt Int.green get() = (this shr 8) and 0xff inline val @receiver:ColorInt Int.blue get() = (this ) and 0xff
  • 29. LINE Creators Studio ❤ Kotlin Why Kotlin? val a = color.alpha val r = color.red val g = color.green val b = color.blue
  • 30. LINE Creators Studio ❤ Kotlin Why Kotlin? inline operator fun @receiver:ColorInt Int.component1() = this.alpha inline operator fun @receiver:ColorInt Int.component2() = this.red inline operator fun @receiver:ColorInt Int.component3() = this.green inline operator fun @receiver:ColorInt Int.component4() = this.blue
  • 31. LINE Creators Studio ❤ Kotlin Why Kotlin? val (alpha, red, green, blue) = color
  • 32. LINE Creators Studio ❤ Kotlin Why Kotlin? https://developer.android.com/kotlin/ktx / J / Ii P / X / r P / ae c t K / IplJ / I a ec k ed ed I r P / P / o I I P / I / n P J KAT Android KTX
  • 33. LINE Creators Studio ❤ Kotlin Creators Studio Extensions for OpenCV val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val mat = Mat() Utils.bitmapToMat(bitmap, mat) val newBitmap = Bitmap.createBitmap(mat.width(), mat.height(), Bitmap.Config.ARGB_8888) Utils.matToBitmap(mat, newBitmap)
  • 34. LINE Creators Studio ❤ Kotlin Creators Studio Extensions for OpenCVinterface OpenCVUtils { fun Bitmap.toMat(): Mat { val mat = Mat() Utils.bitmapToMat(this, mat) return mat } fun Mat.toBitmap(): Bitmap { val bitmap = Bitmap.createBitmap(width(), height(), Bitmap.Config.ARGB_8888) Utils.matToBitmap(this, bitmap) return bitmap } }
  • 35. LINE Creators Studio ❤ Kotlin Creators Studio Extensions for OpenCV val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888) val mat = bitmap.toMat() val newBitmap = mat.toBitmap()
  • 37. LINE Creators Studio ❤ Kotlin Kotlin ) / ( Kotlin 1.3 Released!
  • 38. LINE Creators Studio ❤ Kotlin Cross platform framework…? Flutter, React Native, Xamarin etc.
  • 39. LINE Creators Studio ❤ Kotlin Multiplatform Kotlin Kotlin(.kt) Android iOS Kotlin/Native Kotlin/JVM Java bytecode Native code
  • 40. LINE Creators Studio ❤ Kotlin Multiplatform Kotlin Kotlin(.kt) Android iOS Android library (.jar) iOS library (.framework) Kotlin/Native Import Java bytecode Native code Kotlin(.kt) Swift(.swift)Kotlin/Native Import
  • 41. LINE Creators Studio ❤ Kotlin Multiplatform Kotlin Data Model Repositories Utils View Interfaces Android iOS View View
  • 42. LINE Creators Studio ❤ Kotlin Multiplatform Kotlin /