SlideShare a Scribd company logo
Go goes Mobile!
~Quick Exploration on Go 1.5 and Gomobile~

Takahiro Yoshimura (@alterakey)
26.9.2015
Who am I?
株式会社モノリスワークスR&D
Twitter→@alterakey
What's Go?
Googleが開発している言語
ビルドが速い静的型付け言語
並列・ネットワーク系処理
自動メモリ管理
軽量かつ強力な型システム
… https://golang.org/
What's Android?
Google主導で開発している

モバイルプラットフォーム
全世界で81.8%のシェア

(IDC 2014)
言わずもがな…

https://www.android.com/
Photo by flickr user khamtram, used on CC BY 2.0 license
Go and Android
Goが生成するのはネイティブバイナリ
AndroidはDalvik VM+JNI
Gomobile!
AndroidやiOSのバイナリを出せるツールチェイン

(ARM only; Go 1.5~)
https://github.com/golang/mobile
Go 1.5
ここからダウンロードしてインストール

https://golang.org/dl/
GOPATHの設定について

https://gist.github.com/taky/bac1cb4956ea19a0bce5

→<path>/bin/activateとしておき、sourceする前提
Gomobile
ツールチェインの初期設定
source ./bin/activate

go get golang.org/x/mobile/cmd/gomobile

gomobile init
Example: basic
OpenGLを使って描画するア
プリ
go get -d golang.org/x/mobile/
example/basic

gomobile build golang.org/x/
mobile/example/basic

# install APK

gomobile install golang.org/x/
mobile/example/basic
Example: bind
Goで書いたロジックをJavaか
ら呼びだす
bindingを生成するGradle
Pluginがある
golang.org/x/mobile/example/
bind/android
build.gradle: GOPATH and GO
Example: bind
android/app/...MainActivity.java:

String ... = Hello.Greetings("...")
hello/hello.go:

func Greetings(name string) ...

return fmt.Sprintf("Hello, %s!",
name)

→ "Hello, Android and Gopher!"
Conclusion
AndroidとiOS用のバイナリをGoから生成可能
アプリを0から書くこともできるが……
共通ロジックを記述する一つの方法
fin.

More Related Content

PDF
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
 
PDF
Goだけでモバイルアプリを作ろう
Takuya Ueda
 
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
 
PDF
Goだけでモバイルアプリを作る
Takuya Ueda
 
PDF
go.mobile で Android 開発
Hiroshi Kurokawa
 
PDF
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
 
PDF
GoによるiOSアプリの開発
Takuya Ueda
 
PDF
Android App Development with Gradle & Android Studio
Soichiro Kashima
 
粗探しをしてGoのコントリビューターになる方法
Takuya Ueda
 
Goだけでモバイルアプリを作ろう
Takuya Ueda
 
Namespace API を用いたマルチテナント型 Web アプリの実践
Takuya Ueda
 
Goだけでモバイルアプリを作る
Takuya Ueda
 
go.mobile で Android 開発
Hiroshi Kurokawa
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
 
GoによるiOSアプリの開発
Takuya Ueda
 
Android App Development with Gradle & Android Studio
Soichiro Kashima
 

What's hot (20)

PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
 
PDF
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
 
PDF
僕がAndroid開発する時にちょっと便利だと思うtips
Masataka Kono
 
PDF
[Lt]versionごとにurlを自動生成
shouta yoshikai
 
PDF
North Starアプリ作り,海外コミュニティ,Tips
Tasuku Takahashi
 
PPTX
ネットワークの切り替えを感知する方法
Keisuke Yamaguchi
 
PDF
最近作ったもの
onozaty
 
PDF
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
 
PDF
FlutterでAndroid/iOS両対応のアプリ開発
najeira
 
PDF
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
 
PDF
View Customize Pluginで出来ること
onozaty
 
PDF
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Takeshi Mikami
 
PDF
Go MobileでAndroidアプリ開発
Takuya Ueda
 
PDF
開発を効率的に進めるられるまでの道程
Takao Sumitomo
 
PDF
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
 
PDF
Chrome Devtools for beginners (v1.1)
yoshikawa_t
 
PDF
potatotips (iOS/Android開発Tips共有会) 第19回 資料
Takao Sumitomo
 
PDF
これからのモバイルWebと最新動向
yoshikawa_t
 
PDF
AndroidLint #DroidKaigi
Yukiya Nakagawa
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
Takuya Ueda
 
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Makoto Yamazaki
 
僕がAndroid開発する時にちょっと便利だと思うtips
Masataka Kono
 
[Lt]versionごとにurlを自動生成
shouta yoshikai
 
North Starアプリ作り,海外コミュニティ,Tips
Tasuku Takahashi
 
ネットワークの切り替えを感知する方法
Keisuke Yamaguchi
 
最近作ったもの
onozaty
 
困った時のDev toolsの使い方(初心者向け)
yoshikawa_t
 
FlutterでAndroid/iOS両対応のアプリ開発
najeira
 
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
 
View Customize Pluginで出来ること
onozaty
 
CircleCIを使ったSpringBoot/GAEアプリ開発の効率化ノウハウ
Takeshi Mikami
 
Go MobileでAndroidアプリ開発
Takuya Ueda
 
開発を効率的に進めるられるまでの道程
Takao Sumitomo
 
Chrome Apps & Chromeウェブストア概要
yoshikawa_t
 
Chrome Devtools for beginners (v1.1)
yoshikawa_t
 
potatotips (iOS/Android開発Tips共有会) 第19回 資料
Takao Sumitomo
 
これからのモバイルWebと最新動向
yoshikawa_t
 
AndroidLint #DroidKaigi
Yukiya Nakagawa
 
Ad

Similar to Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile (20)

PDF
Androidとは何か
Koji Shigemura
 
PDF
Html5 seminar 1_pac
1PAC. INC.
 
PDF
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
嶋 是一 (Yoshikazu SHIMA)
 
PPT
Android Abc2009 Fall Shima091130 1
shimay
 
PPTX
Androidが起こしたオープン・イノベーション
Koji Shigemura
 
PDF
[Jagys]android41+開発ツール紹介
Kenichi Kambara
 
PPTX
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
PDF
Realm meetup LT大会(Androidアプリへの適用経験談)
Kenichi Kambara
 
PDF
Firefox OS - Blaze Your Own Path
dynamis
 
PPT
Androidとセキュリティ ~ユーザーを脅威から守る~
Naoya Niwa
 
PPTX
ABC2012Spring 20120324
Tak Inamori
 
PDF
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
 
ODP
Yapf2013
l_b__
 
PDF
Mebic Creative Business Forum 2013
Takashi EGAWA
 
PDF
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
Kenichi Kambara
 
PDF
Google I/O 2018報告 ~現地で見たAndroidと未来~ (Wireless Japan2018 Androidセッション<1>登壇資料)
嶋 是一 (Yoshikazu SHIMA)
 
PDF
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Osamu Monoe
 
PPTX
Hardware control by .NET Core 3.1
Atomu Hidaka
 
PDF
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
嶋 是一 (Yoshikazu SHIMA)
 
PDF
[potatotips #18] Android M Developer Preview & Wear 最新トピック
Kenichi Kambara
 
Androidとは何か
Koji Shigemura
 
Html5 seminar 1_pac
1PAC. INC.
 
Kotlin/Golang Developer seminor. 「Androidが生み出す開発言語の多様性」 リックテレコム主催
嶋 是一 (Yoshikazu SHIMA)
 
Android Abc2009 Fall Shima091130 1
shimay
 
Androidが起こしたオープン・イノベーション
Koji Shigemura
 
[Jagys]android41+開発ツール紹介
Kenichi Kambara
 
Phone gap+javascriptスマホアプリ開発(入門編)
Monaca
 
Realm meetup LT大会(Androidアプリへの適用経験談)
Kenichi Kambara
 
Firefox OS - Blaze Your Own Path
dynamis
 
Androidとセキュリティ ~ユーザーを脅威から守る~
Naoya Niwa
 
ABC2012Spring 20120324
Tak Inamori
 
PhoneGapでWebアプリをスマホアプリ化
Takashi Okamoto
 
Yapf2013
l_b__
 
Mebic Creative Business Forum 2013
Takashi EGAWA
 
[Stack Overflow Dev Days 2015]Android 6.0 Marshmallow App Permissions 応用編
Kenichi Kambara
 
Google I/O 2018報告 ~現地で見たAndroidと未来~ (Wireless Japan2018 Androidセッション<1>登壇資料)
嶋 是一 (Yoshikazu SHIMA)
 
Visual Studio 2013 と HTML5 で実現するマルチデバイス/マルチプラットフォーム アプリの開発
Osamu Monoe
 
Hardware control by .NET Core 3.1
Atomu Hidaka
 
Android登場10年目 ~Androidのイマを魅る~ 【ABC2017A】
嶋 是一 (Yoshikazu SHIMA)
 
[potatotips #18] Android M Developer Preview & Wear 最新トピック
Kenichi Kambara
 
Ad

More from Takahiro Yoshimura (20)

PDF
Looking Back 2023
Takahiro Yoshimura
 
PDF
Fill In The Blank
Takahiro Yoshimura
 
PDF
Ticket To The Dark World
Takahiro Yoshimura
 
PDF
Looking back 2022
Takahiro Yoshimura
 
PDF
Hazy Datagrams
Takahiro Yoshimura
 
PDF
Wartime Pigeons
Takahiro Yoshimura
 
PDF
Securing Supply Chains
Takahiro Yoshimura
 
PDF
Looking Back: CIS on Managed K8S
Takahiro Yoshimura
 
PDF
Beijing Report 2022
Takahiro Yoshimura
 
PDF
Asynchronicity
Takahiro Yoshimura
 
PDF
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
 
PDF
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
 
PDF
Outsmarting Smartphone Apps
Takahiro Yoshimura
 
PDF
Drawing Dataflow On Dalvik Bytecodes
Takahiro Yoshimura
 
PDF
Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
Takahiro Yoshimura
 
PDF
10 (about make 10 with 4 numbers challenge)
Takahiro Yoshimura
 
PDF
Android Wear: Good Parts
Takahiro Yoshimura
 
PDF
DEFCON21×S2 REPORT
Takahiro Yoshimura
 
KEY
伝授の巻について #スクエアフリーセミナー #yochiand
Takahiro Yoshimura
 
KEY
GroovyなAndroidテスト #atest_hack
Takahiro Yoshimura
 
Looking Back 2023
Takahiro Yoshimura
 
Fill In The Blank
Takahiro Yoshimura
 
Ticket To The Dark World
Takahiro Yoshimura
 
Looking back 2022
Takahiro Yoshimura
 
Hazy Datagrams
Takahiro Yoshimura
 
Wartime Pigeons
Takahiro Yoshimura
 
Securing Supply Chains
Takahiro Yoshimura
 
Looking Back: CIS on Managed K8S
Takahiro Yoshimura
 
Beijing Report 2022
Takahiro Yoshimura
 
Asynchronicity
Takahiro Yoshimura
 
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
 
Outsmarting Smartphone Apps 2
Takahiro Yoshimura
 
Outsmarting Smartphone Apps
Takahiro Yoshimura
 
Drawing Dataflow On Dalvik Bytecodes
Takahiro Yoshimura
 
Trueseeing: Effective Dataflow Analysis over Dalvik Opcodes
Takahiro Yoshimura
 
10 (about make 10 with 4 numbers challenge)
Takahiro Yoshimura
 
Android Wear: Good Parts
Takahiro Yoshimura
 
DEFCON21×S2 REPORT
Takahiro Yoshimura
 
伝授の巻について #スクエアフリーセミナー #yochiand
Takahiro Yoshimura
 
GroovyなAndroidテスト #atest_hack
Takahiro Yoshimura
 

Recently uploaded (11)

PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
 

Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile