Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Takuya Ueda
PDF, PPTX
9,921 views
Goだけでモバイルアプリを作ろう
Goオールスターズ!で発表した資料です。 http://eventdots.jp/event/571126
Technology
◦
Read more
23
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 32
2
/ 32
3
/ 32
4
/ 32
5
/ 32
6
/ 32
7
/ 32
8
/ 32
9
/ 32
10
/ 32
11
/ 32
12
/ 32
13
/ 32
14
/ 32
15
/ 32
16
/ 32
17
/ 32
18
/ 32
19
/ 32
20
/ 32
21
/ 32
22
/ 32
23
/ 32
24
/ 32
25
/ 32
26
/ 32
27
/ 32
28
/ 32
29
/ 32
30
/ 32
31
/ 32
32
/ 32
More Related Content
PDF
Goだけでモバイルアプリを作る
by
Takuya Ueda
PDF
go.mobile で Android 開発
by
Hiroshi Kurokawa
PDF
Go mobileでモバイルアプリを作ろう
by
Takuya Ueda
PDF
粗探しをしてGoのコントリビューターになる方法
by
Takuya Ueda
PDF
過去に自作したGoプロダクトの紹介 - Goオールスターズ
by
Shogo Ichinose
PDF
GoによるiOSアプリの開発
by
Takuya Ueda
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
by
Takuya Ueda
PDF
gopher-lua
by
Takuya Ueda
Goだけでモバイルアプリを作る
by
Takuya Ueda
go.mobile で Android 開発
by
Hiroshi Kurokawa
Go mobileでモバイルアプリを作ろう
by
Takuya Ueda
粗探しをしてGoのコントリビューターになる方法
by
Takuya Ueda
過去に自作したGoプロダクトの紹介 - Goオールスターズ
by
Shogo Ichinose
GoによるiOSアプリの開発
by
Takuya Ueda
Namespace API を用いたマルチテナント型 Web アプリの実践
by
Takuya Ueda
gopher-lua
by
Takuya Ueda
What's hot
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
by
Takuya Ueda
PDF
Cloud functionsの紹介
by
Takuya Ueda
PDF
GAE/GoでLINE Messaging API を使う
by
Takuya Ueda
PDF
Go初心者向けハンズオン コマンドラインツールを作ろう
by
Takuya Ueda
PDF
goパッケージで型情報を用いたソースコード検索を実現する
by
Takuya Ueda
PDF
エディタの壁を越えるGoの開発ツールの文化と作成法
by
Takuya Ueda
PDF
オススメの標準・準標準パッケージ20選
by
Takuya Ueda
PDF
Gopher Fest 2017参加レポート
by
Takuya Ueda
PDF
Cloud Functionsの紹介
by
Takuya Ueda
PDF
Goでwebアプリを開発してみよう
by
Takuya Ueda
PDF
Golang入門
by
Yukihiro Kitazawa
PDF
Go MobileでAndroidアプリ開発
by
Takuya Ueda
PPTX
ネットワークの切り替えを感知する方法
by
Keisuke Yamaguchi
PDF
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
PDF
Go Friday 傑作選
by
Takuya Ueda
PDF
Google Assistant関係のセッションまとめ
by
Takuya Ueda
PDF
GoでMinecraftっぽいの作る
by
京大 マイコンクラブ
PDF
実践Go ツールの作成から配布まで
by
Yusuke Miyake
PDF
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
by
Takahiro Yoshimura
PDF
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
by
Masataka Kono
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
by
Takuya Ueda
Cloud functionsの紹介
by
Takuya Ueda
GAE/GoでLINE Messaging API を使う
by
Takuya Ueda
Go初心者向けハンズオン コマンドラインツールを作ろう
by
Takuya Ueda
goパッケージで型情報を用いたソースコード検索を実現する
by
Takuya Ueda
エディタの壁を越えるGoの開発ツールの文化と作成法
by
Takuya Ueda
オススメの標準・準標準パッケージ20選
by
Takuya Ueda
Gopher Fest 2017参加レポート
by
Takuya Ueda
Cloud Functionsの紹介
by
Takuya Ueda
Goでwebアプリを開発してみよう
by
Takuya Ueda
Golang入門
by
Yukihiro Kitazawa
Go MobileでAndroidアプリ開発
by
Takuya Ueda
ネットワークの切り替えを感知する方法
by
Keisuke Yamaguchi
GoによるWebアプリ開発のキホン
by
Akihiko Horiuchi
Go Friday 傑作選
by
Takuya Ueda
Google Assistant関係のセッションまとめ
by
Takuya Ueda
GoでMinecraftっぽいの作る
by
京大 マイコンクラブ
実践Go ツールの作成から配布まで
by
Yusuke Miyake
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
by
Takahiro Yoshimura
PHP開発からAndroid開発をするようになって学んだWebとモバイルの違い
by
Masataka Kono
Viewers also liked
PPTX
【初心者向け】Go言語勉強会資料
by
Yuji Otani
PDF
マスター・オブ・reflectパッケージ II
by
Takuya Ueda
PDF
Go言語オーバービュー201507
by
エンジニア勉強会 エスキュービズム
PDF
今日から始めるGopher - スタートGo #0 @GDG名古屋
by
Takuya Ueda
PDF
私なりのGo言語のご紹介
by
Ryuji Iwata
PDF
Goでかんたんソースコードの静的解析
by
Takuya Ueda
PDF
Go入門
by
Takuya Ueda
PDF
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
PDF
Mix and Match / Swift and Objective-C
by
Goichi Hirakawa
PDF
Server Side Swift with Swag
by
Jens Ravens
PDF
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
by
Kosuke Ogawa
PDF
Swiftでの関数型プログラミングについて考えていること
by
Shingo Sato
PDF
Xcode tips
by
Motoki Narita
PDF
iOS9/iPadとマルチタスキング
by
Akinori Adachi
PDF
Xcode 7で始めるCI
by
yuki0211s
PDF
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
PDF
マスター・オブ・Reflectパッケージ
by
Takuya Ueda
PDF
Beyond JSON with FlatBuffers
by
Maxim Zaks
PDF
Go for Mobile Games
by
Takuya Ueda
PDF
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
by
Tomohiro Kumagai
【初心者向け】Go言語勉強会資料
by
Yuji Otani
マスター・オブ・reflectパッケージ II
by
Takuya Ueda
Go言語オーバービュー201507
by
エンジニア勉強会 エスキュービズム
今日から始めるGopher - スタートGo #0 @GDG名古屋
by
Takuya Ueda
私なりのGo言語のご紹介
by
Ryuji Iwata
Goでかんたんソースコードの静的解析
by
Takuya Ueda
Go入門
by
Takuya Ueda
メルカリアッテの実務で使えた、GAE/Goの開発を効率的にする方法
by
Takuya Ueda
Mix and Match / Swift and Objective-C
by
Goichi Hirakawa
Server Side Swift with Swag
by
Jens Ravens
自作アプリを watchOS 2 対応した話 〜FastCheckin編〜
by
Kosuke Ogawa
Swiftでの関数型プログラミングについて考えていること
by
Shingo Sato
Xcode tips
by
Motoki Narita
iOS9/iPadとマルチタスキング
by
Akinori Adachi
Xcode 7で始めるCI
by
yuki0211s
iOSでのFramework導入のおさらい #関モバ
by
Syo Ikeda
マスター・オブ・Reflectパッケージ
by
Takuya Ueda
Beyond JSON with FlatBuffers
by
Maxim Zaks
Go for Mobile Games
by
Takuya Ueda
コードを書きやすくしてくれる Xcode の基本機能 #NSStudy #devsap
by
Tomohiro Kumagai
Similar to Goだけでモバイルアプリを作ろう
PDF
GAE/GoでWebアプリ開発入門
by
Takuya Ueda
PDF
今日から始める Go言語 と appengine
by
a know
KEY
Chrome osとgo言語からgoogleの今後を妄想してみる
by
Masakazu Muraoka
PDF
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
by
Satoshi Noda
PDF
できる!スマホアプリ:Webからはじまるアプリ for CMU16
by
Masami Yabushita
PDF
Androiderとi os屋さんがfirefoxosアプリを作ったら
by
Kazuhiro Furue
PDF
メルカリ・ソウゾウでは どうGoを活用しているのか?
by
Takuya Ueda
PDF
gomobile
by
naoty_bot
PDF
関東Firefox OS勉強会6th「Firefox OS」
by
Noritada Shimizu
PPT
ブラウザで作るスマートフォンアプリ統合環境Monacaの紹介
by
Kenichi Yamada
PDF
Firefox OS 1.0 Application Development
by
dynamis
GAE/GoでWebアプリ開発入門
by
Takuya Ueda
今日から始める Go言語 と appengine
by
a know
Chrome osとgo言語からgoogleの今後を妄想してみる
by
Masakazu Muraoka
2015/02/21 GDG神戸 Go on Android ハンズオン&もくもく会
by
Satoshi Noda
できる!スマホアプリ:Webからはじまるアプリ for CMU16
by
Masami Yabushita
Androiderとi os屋さんがfirefoxosアプリを作ったら
by
Kazuhiro Furue
メルカリ・ソウゾウでは どうGoを活用しているのか?
by
Takuya Ueda
gomobile
by
naoty_bot
関東Firefox OS勉強会6th「Firefox OS」
by
Noritada Shimizu
ブラウザで作るスマートフォンアプリ統合環境Monacaの紹介
by
Kenichi Yamada
Firefox OS 1.0 Application Development
by
dynamis
More from Takuya Ueda
PDF
Goにおけるバージョン管理の必要性 − vgoについて −
by
Takuya Ueda
PDF
WebAssembly with Go
by
Takuya Ueda
PDF
GAE/Goとsyncパッケージ
by
Takuya Ueda
PDF
静的解析を使った開発ツールの開発
by
Takuya Ueda
PDF
そうだ、Goを始めよう
by
Takuya Ueda
PDF
マスター・オブ・goパッケージ
by
Takuya Ueda
PDF
メルカリ カウルのマスタデータの更新
by
Takuya Ueda
PDF
Go1.8 for Google App Engine
by
Takuya Ueda
PDF
Static Analysis in Go
by
Takuya Ueda
PDF
エキスパートGo
by
Takuya Ueda
PDF
Go静的解析ハンズオン
by
Takuya Ueda
PDF
Goにおける静的解析と製品開発への応用
by
Takuya Ueda
PDF
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
PDF
Mobile Apps by Pure Go with Reverse Binding
by
Takuya Ueda
Goにおけるバージョン管理の必要性 − vgoについて −
by
Takuya Ueda
WebAssembly with Go
by
Takuya Ueda
GAE/Goとsyncパッケージ
by
Takuya Ueda
静的解析を使った開発ツールの開発
by
Takuya Ueda
そうだ、Goを始めよう
by
Takuya Ueda
マスター・オブ・goパッケージ
by
Takuya Ueda
メルカリ カウルのマスタデータの更新
by
Takuya Ueda
Go1.8 for Google App Engine
by
Takuya Ueda
Static Analysis in Go
by
Takuya Ueda
エキスパートGo
by
Takuya Ueda
Go静的解析ハンズオン
by
Takuya Ueda
Goにおける静的解析と製品開発への応用
by
Takuya Ueda
条件式評価器の実装による管理ツールの抽象化
by
Takuya Ueda
Mobile Apps by Pure Go with Reverse Binding
by
Takuya Ueda
Goだけでモバイルアプリを作ろう
1.
Goだけで モバイルアプリを 作ろう 2015/10/11(日) @Goオールスターズ! The Go gopher
was designed by Renee French. The gopher stickers was made by Takuya Ueda. Licensed under the Creative Commons 3.0 Attributions license.
2.
アジェンダ ● 自己紹介 ● Go
Mobileとは? ● どうやって作るのか? ● イベント ● spriteパッケージ ● その他できること ● Google Playに公開するまでの道のり
3.
自己紹介 KLab株式会社 KLabGames事業本部 エンジニア 上田拓也 twitter: @tenntenn ■
好きな言語 Go, JavaScript, Lua ■ 業務 モバイルオンラインゲームの開発(クライアントサイド)
4.
Go Mobileとは?
5.
https://github.com/golang/mobile
6.
Goとクロスコンパイル ■ $GOOSと$GOARCHを指定する $ GOOS=linux
GOARCH=arm go build main.go ■ Android上で実行 $ adb push main /data/local/tmp $ adb shell $ run-as pkgname $ cat /data/local/tmp/main > main $ chmod 766 main findやgrepが使えない時に便利
7.
Go Mobileとは ● Goでモバイルアプリを作るツール群 ○
iOS / Androidに対応 ○ golang.org/x/mobile ● 2通りのスタイル ○ Goだけで書く ⇒ OpenGL を使う ○ 一部だけ書く ⇒ Java, Obj-c/Swiftから 参考:https://github.com/golang/go/wiki/Mobile
8.
Goだけでモバイルアプリを作ってみた http://github.com/tenntenn/gofun
9.
どうやって作るの?
10.
gomobileコマンド ■ gomobile init ●
ツールチェインのインストールや初期化を行う ● 最初の1回だけ実行すればよい ■ gomobile build ● ビルドを行う ● apk(Android)やapp(iOS)の生成を行う ■ gomobile install ● gomobile build後にadb installまで行う ● Android限定 PCで動かす場合は go buildで行う
11.
Go Mobileのパッケージ ■ glパッケージ ●
golang.org/x/mobile/gl ● OpenGL ES で頑張る ■ eventパッケージ ● golang.org/x/mobile/event/touch ● golang.org/x/mobile/event/paint ● golang.org/x/mobile/event/lifecycle など ■ spriteパッケージ ● golang.org/x/mobile/exp/sprite ● 2次元のシーングラフ
12.
イベントループとspriteパッケージ 参考:サンプルコード
13.
イベントループとspriteパッケージ 参考:サンプルコード
14.
app.Main ■ イベントループを行う関数 func main()
{ app.Main(func(a app.App) { // イベントループを書く }) }
15.
イベントループ ■ app.App.Events()からイベントを取得 // Events()
<-chan interface{} for e := range a.Events() { switch e := a.Filter(e).(type) { case lifecycle.Event: // ... case paint.Event: // ... } }
16.
spriteパッケージ ■ sprite.Engine ● 描画エンジンを表すインタフェース ●
具体的な実装は別のパッケージに任せる sprite/glsprite, sprite/portable ■ sprite.Node ● シーングラフのノードを表す構造体 ■ sprite.Texture ● テクスチャを表すインタフェース ■ sprite.SubTex ● テクスチャの一部を表す構造体 ● ノードに設定される テクスチャ サブテクスチャ
17.
イベントループとspriteパッケージ 参考:サンプルコード
18.
テクスチャのロード ■ アセットのオープン a, err
:= asset.Open("gopher.png") ■ 画像のデコード img, err := image.Decode(a) ■ テクスチャのロード t, err := eng.LoadTexture(img) assetsディレクトリ以下の ファイルを見に行く
19.
イベントループとspriteパッケージ 参考:サンプルコード
20.
シーングラフの構築 ■ ノードの作成と登録 ■ 子ノードの追加 scene
:= &sprite.Node{} eng.Register(scene) n := &sprite.Node{} eng.Register(n) scene.AppendChild(n)
21.
サブテクスチャの作成と設定 ■ サブテクスチャの作成 st :=
sprite.Subtex { T:t, // テクスチャ R:iamge.Rect(0, 0, 100, 200) } ■ サブテクスチャの設定 eng.SetSubTex(n, st) テクスチャ上の該当の領域 を指定する
22.
アフィン変換行列の設定 ■ アフィン変換行列の設定 ルートノードは、サイズ:1pt x
1pt、 座標:(0,0)、角度:0に対して変換行列を掛け合わせる eng.SetTransform(root, f32.Affine{ {2, 0, 5}, {0, 2, 5}, }) 1pt = 1/72 inch
23.
アフィン変換行列の計算 ■ 親ノードから子ノードへ 親ノードの変換結果に子ノードの変換行列を 掛けわせて子ノードの描画位置を決める root n eng.SetTransform(root, f32.Affine{ {2,
0, 5}, {0, 2, 5}, }) eng.SetTransform(n, f32.Affine{ {100, 0, 10}, {0, 100, 10}, }) 2x2, (5, 5) 200x200, (25, 25)
24.
イベントループとspriteパッケージ 参考:サンプルコード
25.
ノードの配置 ■ Node.Arranger.Arrange ● 毎フレーム呼ばれる ●
ノードの位置を変更したりする type Arranger interface{ Arrange(e Engine, n *Node, t clock.Time) }
26.
シーングラフの描画 ■ Engine.Render シーングラフを描画する 現在の時刻と、画面サイズ(size.Event)が必要 // 60FPS now
:= clock.Time( time.Since(st)*60/time.Second) // szはsize.Event eng.Render(root, now, sz)
27.
実行例
28.
その他できること ■ touch.Event ● タッチイベント ■
sensor.Event ● センサーイベント ■ Goの標準パッケージ ● ほとんどのパッケージは使える ● net/httpでWebサーバを立てる ○ Androidはandroid.permission.INTERNETがいる ○ 参考:サンプルコード
29.
Google Play に公開するまでの道のり ●
Goでモバイルアプリを書く ● apkを作る ○ gomobile build pkg_name ● アイコンを作る ○ apkにresがない ● apkにresを突っ込む ○ apk-toolで一度展開して突っ込む ● 署名+zipaligne
30.
詳しくはブログに書いています http://klabgames.tech.blog.jp.klab.com/
31.
結構変わってる! ■テクスチャ開放ができる ● sprite.Engine.Release ● glutil.Images.Release ■
テクスチャロード ● 1回目のペイントイベントでなくてよい ● lifecycle.EventのStageVisible(CrossOn)で よい
Download