SlideShare a Scribd company logo
1 of 79
Download to read offline
Go Mobileで
Androidアプリ開発
2016/02/18(木)
@Droid Kaigi 2016
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.
ハッシュタグ:
#DroidKaigiC #gomobile
アジェンダ
■ 自己紹介
■ Goについて
● Goの特徴
■ Androidアプリ開発とGo
● Goで開発ツールを作ろう
● Android上で動くツールを作ろう
■ Go Mobile
● ネイティブアプリ
● SDKアプリ
■ まとめ
2
自己紹介
KLab株式会社
KLabGames事業本部 エンジニア
上田拓也
twitter: @tenntenn
■ 好きな言語
Go, JavaScript, Lua
■ 業務
モバイルオンラインゲームの開発(クライアントサイド)
主にゲームエンジンを使ったゲーム開発
Androidのコードを直接書くことは多くない
3
Goについて
● Goの特徴
○ 強力でシンプルな言語設計と文法
○ 並行プログラミング
○ 周辺ツールの充実
○ 豊富な標準ライブラリ
○ シングルバイナリ/クロスコンパイル
4
Goとは?
Googleが開発しているプログラミング言語
■ 特徴
● 強力でシンプルな言語設計と文法
● 並行プログラミング
● 豊富な標準ライブラリ群
● 周辺ツールの充実
● シングルバイナリ/クロスコンパイル
Goについて/Goの特徴
5
強力でシンプルな言語設計と文法
Goについて/Goの特徴
■ スクリプト言語の書きやすさ
● 冗長な記述は必要ない
■ 型のある言語の厳密さ
● 曖昧な記述はできない
6
非常に書きやすい!
並行プログラム
■ ゴールーチン
● 軽量なスレッドに近いもの
● goキーワードをつけて関数呼び出し
■ チャネル
● ゴールーチン間のデータのやり取り
● 安全にデータをやり取りできる
Goについて/Goの特徴
7
チャネル
ゴールーチン
A
ゴールーチン
B
データ
データ
go f()
豊富な標準ライブラリ
■ 標準ライブラリ一覧
 https://golang.org/pkg/
基本的なライブラリは標
準で揃っている
Goについて/Goの特徴
8
net/http HTTPサーバなど
archive, compress zipやgzipなど
crypto 暗号化
encoding JSON, XML, CSVなど
html/template HTMLテンプレート
os, path/filepath ファイル操作など
周辺ツールの充実(go tool)
■ go toolとして標準/準標準として提供
Goについて/Goの特徴
9
go build ビルドを行うコマンド
go test
xxxx_test.goに書かれたテスト
コードの実行
go doc / godoc ドキュメント生成
gofmt / goimports コードフォーマッター
golint コードチェッカー、リンター
gocode コード補完
シングルバイナリ/クロスコンパイル
■ 環境変数のGOOSとGOARCHを指定する
開発環境とは違うOSやアーキテクチャ向けに
クロスコンパイルできる
# Windows(32ビット)向けにコンパイル
$ GOOS=windows GOARCH=386 go build
# Linux(64ビット)向けにコンパイル
$ GOOS=linux GOARCH=amd64 go build
シングルバイナリになるので
動作環境を用意しなくてよい
go buildはコンパイルするコマンド
Goについて/Goの特徴
10
Goを勉強するには
■ golang.org
● 公式ドキュメント類が充実
■ コミュニティ
● Gophers Slack #japan
● Google+ Golang JP
■ Qiita
● Goタグでまとまっている
● Go言語の初心者が見ると幸せになれる場所
■ 書籍
● The Go Programming Language
● Go in Action
Goについて/Goの特徴
11
Androidアプリ開発でGoは使える?
Goについて/Goの特徴
■ 特徴
● 強力でシンプルな言語設計と文法
● 並行プログラミング
● 豊富な標準ライブラリ群
● go tool
● シングルバイナリ/クロスコンパイル
これらの特徴が
どうAndroid開発で活かせるか?
12
Androidアプリ開発とGo
● Goで開発ツールを作ろう
● Android上で動くツールを作ろう
13
Goで開発ツールを作ろう その1
簡単に画像をアップロードできて、
アプリ上から確認できるツールを作って!
非エンジニア
まだAPIサーバはできていない...
専用サーバをさくっと用意できないかな...
とあるアプリ開発の序盤にて...
Android開発とGo/Goで開発ツールを作ろう
14
エンジニア
Goで開発ツールの作り方 その1
■ 簡易コンテンツ管理システム
Android開発とGo/Goで開発ツールを作ろう
15
Android端末
確認アプリ
非エンジニアのPC
Go製のサーバ
● net/httpでHTTPサーバ
● html/templateでWebアプリ
● osでファイル操作
● archive/zipで圧縮
● imageで画像処理
開発サーバ
コンテンツのアップロード コンテンツのダウンロード
開発サーバにコンパイルして
バイナリを置き実行するだけ
net/httpパッケージを使おう
■ 簡単にHTTPサーバを作れる(コード)
func main() {
http.HandleFunc("/hello", hello)
http.ListenAndServe(":8080", nil)
}
func hello(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "hello, golang!")
} HTTPハンドラ
"/hello"のパスで
ハンドラを設定
ポート8080で
HTTPサーバを起動
Goについて/Goの特徴
$ curl http://localhost:8080/hello
hello, golang!
curlでアクセスしてみると
16
Goで開発ツールを作ろう その2
とあるアプリ開発の中盤にて...
Android開発とGo/Goで開発ツールを作ろう
17
JSONをCSVに変換したい!
Windowsで動くツールを作って!
開発環境はMacだから...
D&DしたらJSONをCSVに変換するか...
エンジニア
非エンジニア
Goで開発ツールの作り方 その2
■ Windowsでも動く変換ツール
Android開発とGo/Goで開発ツールを作ろう
18
Go製のツール
● クロスコンパイル
● encoding/json
● encoding/csv
● osでファイル操作
エンジニアの
Mac
Windows用の
バイナリを渡す
非エンジニアの
Windows
ファイルをD&Dで変換クロスコンパイル
Goで開発ツールを作ろう
■ シングルバイナリ/クロスコンパイル
● Windows, Linux, Macなどで動く
● 動作環境を準備しなくていい
■ 豊富な標準ライブラリ
● HTTPサーバが簡単につくれる
● ファイル操作や各種エンコード
● 圧縮処理や画像処理
■ 並行処理
● リソースを効率的に使う
19
Android開発とGo/Goで開発ツールを作ろう
Androidアプリ開発とGo
● Goで開発ツールを作ろう
● Android上で動くツールを作ろう
20
Android上で動かそう
■ クロスコンパイルすれば、Androidで動く
21
Android端末
開発PC
AndroidもLinuxなので
Linux用にコンパイルする
クロスコンパイル
adb push
adb shellで動かす
Android開発とGo/Android上で動くツールを作ろう
Android上で動かそう
■ クロスコンパイルする
■ adb pushで端末に送る
■ adb shellで実行権限を与えて動かす
$ GOOS=linux GOARCH=arm go build mytool.go
$ adb push mytool /data/local/tmp
$ adb shell
$ chmod 755 /data/local/tmp/mytool
$ /data/local/tmp/mytool
22
Android開発とGo/Android上で動くツールを作ろう
Android上で動くツール その1
アプリ上でダウンロードしたファイルが
サイズが0になってることがある。
他に破損してるファイルがないか調べたい。
エンジニアA
特定の端末だけ発生する...
端末内に入ってファイル1つ1つ調べるか...
エンジニアB
Android開発とGo/Android上で動くツールを作ろう
23
サイズ0のファイルを探す
24
Android開発とGo/Android上で動くツールを作ろう
Youtubeで見る コード
母艦のシェル
adb shell
端末
Android上で動くツール その2
SNSの写真をダウンロードして
リストで表示する部分のテストをしたい。
SNSへの接続部分はできてない。サイズ未定。
エンジニアA
モック画像の配信サーバを用意する...
10x10.pngがきたら10x10の画像を返す...
端末からアクセスできるサーバがないから
端末でサーバを動かすか...
エンジニアB
25
Android開発とGo/Android上で動くツールを作ろう
画像配信のモックサーバ
26
Android開発とGo/Android上で動くツールを作ろう
Youtubeで見る コード
母艦のシェル
adb shell
端末
Android上で動かすツール
■ adb shell上で使えるコマンドを作る
● 動作環境を用意しないで済む
● Android上だけで完結
● ファイル操作に関するパッケージが充実
○ os, path/filepath など
■ 端末内サーバ
● ブラウザやアプリからアクセスできる
● モックサーバ
● プロキシサーバ
○ goproxyが便利
27
Android開発とGo/Android上で動くツールを作ろう
Android上で動かすツールの注意点
■ ピュアGoでないとコンパイルが難しい
● cgoで書かれてると設定が必要
○ cgoを使うとCで書かれたライブラリが使える
○ CCにNDKのCコンパイラを指定(後述)
■ OSに依存する処理には注意
● OSに依存するライブラリ
● 環境によってサイズの異なる型の扱い
○ 環境によって32ビットだったりする
○ サイズ固定の型に書き変える
■ int32, int64, float32, float64など
28
Android開発とGo/Android上で動くツールを作ろう
Go Mobile
● cgoとGo Mobile
● SDKアプリ
● Nativeアプリ
29
cgo
■ Cで書かれたコードやライブラリが使える
import "unsafe"
/*
#include <stdio.h>
#include <stdlib.h>
void hello(char *s) { printf("Hello, %sn", s); }
*/
import "C"
func main() {
str := C.CString("Droid Kaigi")
C.hello(str)
C.free(unsafe.Pointer(str))
}
import "C"の上の
コメント内にCのコードが書ける
GoからCのコードを呼び出せる
C上扱える値はGoのGCに回収されない
Cの char * の変数を用意
30
Go Mobile/cgoとGo Mobile
コード
Android向けにcgoを使ってビルド
■ cgoのコードもクロスコンパイルできる
$ CGO_ENABLED=1
CC=arm-linux-androideabi-gcc
GOOS=android
GOARCH=arm
GOARM=7
go buid -build-mode=pie hellocgo.go
$ adb push hellocgo /data/local/tmp
$ chmod 755 /data/local/tmp/hellocgo
$ /data/local/tmp/hellocgo
Hello, Droid Kaigi
Go1.5までは
-ldflags="-extldflags=-pie"
cgoを含む場合はandroid
クロスコンパイルでcgoを使う場合
31
Go Mobile/cgoとGo Mobile
build-mode
■ どうビルドするかを指定するオプション
● archive, c-archive
○ Cアーカイブ(.a)を作る
● shared, c-shared
○ 共有ライブラリ(.so)を作る
● exec
○ 実行可能ファイル
● pie
○ PIE形式の実行可能ファイル
c-{archive, shared}は
mainパッケージが対象
Android向けにも.soファイルが作れる
32
Go Mobile/cgoとGo Mobile
cgoとNDK
33
Go Mobile/cgoとGo Mobile
Go cgo NDK
・クロスコンパイル
・共有ライブラリ
・Cのライブラリ
・JNI
・NativeActivity
Go Mobile
GoでAndroidアプリの開発
Go Mobileとは?
● Goでモバイルアプリを作るツール群
○ iOS / Androidに対応
○ golang.org/x/mobile
● 2通りのスタイル
○ SDKアプリ
⇒ Goで書いたライブラリを呼び出す
○ Nativeアプリ
⇒ Goだけで書く
参考:https://github.com/golang/go/wiki/Mobile
34
Go Mobile/cgoとGo Mobile
35
https://github.com/golang/mobile
Go Mobileのインストール
■ 事前に必要なもの
● Goの開発環境(1.5以上)
● Androidの開発環境
■ インストール
$ go get golang.org/x/mobile/cmd/gomobile
$ gomobile init -v # NDKなどをインストール
他に必要なものはこの2つのコマンドで揃う
36
Go Mobile/cgoとGo Mobile
Go Mobile
● cgoとGo Mobile
● SDKアプリ
● Nativeアプリ
37
Go
aarファイル
SDKアプリとNativeアプリ
38
Go Mobile/SDKアプリとNativeアプリ
バインディングクラス(Java)
共有ライブラリ(.so)
Java
gomobile bind
■ SDKアプリ
■ Nativeアプリ
apkファイル
Go
NativeActivity
共有ライブラリ(.so)
gomobile build
メイン
ライブラリとして
メイン
SDKアプリの例
■ Ivy big number calculator(コード)
● APLっぽい言語の処理系のアプリ
● Rob Pikeが書いた実装をライブラリとして呼び出す
● Android版とiOS版でライブラリは同じ
39
Go Mobile/SDKアプリ
Google Play App Store
gomobile bindの使い方
■ aar(Androidアーカイブ)を生成
● Goをビルドした共有ライブラリ(.so)
● バインディング(Java)をビルドした.jar
■ Android Studio(AS)のプラグインを使う
● gobindPlugin
● ASからgomobile bindを走らせる
● 生成したaarをリンク
$ gomobile bind mypkg
40
Go Mobile/SDKアプリ
JavaからGoを呼び出す
41
Go Mobile/SDKアプリ
Javaバインディング
Javaのコード
Cのコード
Goのコード
JNI
cgo
gomobile bindが
自動生成する
パッケージ
GoとJavaのバインディング
42
Go Mobile/SDKアプリ
シングルトン抽象クラス
構造体 クラス
フィールド Getter/Setter
メソッド 抽象メソッド
パッケージ関数 staticメソッド
JNIをつかった呼び出しは
Seqクラスに隠蔽されている
Go Java
gomobile bindで使えるGoの型
■ 基本的な対応型
● 符号付き整数と浮動小数点数
● ブーリアン型と文字列型
● バイトスライス([]byte)
■ 関数
● 引数と戻り値が対応型の関数
○ 戻り値は原則1つまで、error型は2つ目にできる
○ 2つ目のerror型はJavaのExceptionになる
■ 構造体
● 公開された対応型のメソッドとフィールド
■ インタフェース
● 対応型のメソッド
今後増える予定
スライス
=配列の参照型
Goは多値が返せる
43
Go Mobile/SDKアプリ
Go Mobile
● cgoとGo Mobile
● SDKアプリ
● Nativeアプリ
44
Go
aarファイル
SDKアプリとNativeアプリ
45
Go Mobile/Nativeアプリ
バインディングクラス(Java)
共有ライブラリ(.so)
Java
gomobile bind
■ SDKアプリ
■ Nativeアプリ
apkファイル
Go
GoNativeActivity
共有ライブラリ(.so)
gomobile build
メイン
ライブラリとして
メイン
Go Mobileでゲーム
■ Flappy Gopher
● GoCon キーノート
○ ソースコード
● Goだけで書かれている
● タッチイベント
● 画像の描画
● 解説記事
○ KLabGames Tech Blog
46
Go Mobile/Nativeアプリ
$ go get github.com/adg/game
$ cd $GOPATH/src/github.com/adg/game
$ gomobile build
gomobile buildの使い方
■ apkを生成
● Goをビルドした.so
● GoNativeActivityをビルドしたdex
■ インストールまで行う
● 内部adb installを使う
● Androidのみ対応
$ gomobile build mypkg
$ gomobile install mypkg
47
Go Mobile/Nativeアプリ
goコマンドでビルドするとPCでも動く
Nativeアプリの機能
■ 描画
● OpenGL ES 2(gl, exp/gl/glutil)
● 2Dシーングラフ(exp/sprite)
■ イベント
● タッチイベント(event/touch)
● ライフサイクル(event/lifecycle)
■ センサー(exp/sensor)
● 加速度、ジャイロ、磁気センサ
■ 音(exp/audio)
48
Go Mobile/Nativeアプリ
パッケージ名
Nativeアプリの基本
49
Go Mobile/Nativeアプリ
イベントループ
描画イベント
タッチイベント
ライフサイクルイベント
■ ループしながらイベントを受信して処理
イベントの種類ごとに
分岐して処理
Androidの
onStartなど
Nativieアプリの描画
■ OpenGL ES 2
● gl, exp/gl/glutil
● 自前でShaderなどを書く
■ スプライトエンジン
● exp/sprite
● 2Dシーングラフ
● OpenGLの関数を余り触らなくて良い
● お手軽に2Dゲームを作れる
(OpenGLをゴリゴリ書くよりかは)
50
Go Mobile/Nativeアプリ
スプライトエンジン
51
Go Mobile/Nativeアプリ
scene
gopher
スプライトエンジン
ground1 ・・・
ノード
テクスチャ
サブテクスチャ
ゲーム画面
描画
シーングラフ
スプライトエンジンを使った描画
52
Go Mobile/Nativeアプリ
・テスクチャのロード
・シーングラフの構築
描画イベント
ライフサイクルイベント
(画面表示開始)
・ノードの再配置
・サブテクスチャの張替え
繰り返す
初期化処理
アフィン変換行列を
セットして、座標、
角度、縮尺を設定
Nativeアプリの現状の問題点
■ Google Playで公開できない
● resディレクトリが取り込めない
○ アイコンが変えれない
● 署名なしでビルドが出来ない
■ テキスト入力
● テキスト入力が出来ない
● テキストの描画は頑張ればできる
■ プラットホームのAPIが呼べない
● Go側にインタフェースがない
53
Go Mobile/Nativeアプリ
ちょっと残念な解決策
■ resディレクトリが取り込めない
● 後からapkに入れ込む
■ 署名なしでビルドが出来ない
● 一旦消して、別のkeystoreで署名する
■プラットホームのAPIが呼べない
● 内部で使ってるcgoの領域で定義された
JavaVMオブジェクトを使う(サンプル)
● apkの中の.soを持ってきて、Android Studio
のプロジェクトに読み込ませる
せっかくapkまで作ってくれるのに!
54
Go Mobile/Nativeアプリ
Google Playで公開できました
http://github.com/tenntenn/gofun
55
Go Mobile/Nativeアプリ
GoからToastが呼び出せました
56
Go Mobile/Nativeアプリ
Nativeアプリへの願望
■ apkまで自動で行わない
● .soとjarの入ったaarを作る
○ gomobile bindと同じような方法
○ Android Studioに読み込むプラグインを用意
■ Javaを呼び出すインタフェースを公開する
● 実は存在してるけど内部パッケージ
● gomobile bindのバインディングに近い
57
Go Mobile/Nativeアプリ
しかしながら...
■ iOSのことも考える必要がある
● 同じフローでいけるのか?
● Obj-C/swiftのコードを呼べるのか?
■ GoやGo Mobileのコンセプトに沿うのか
● プラットフォームごとに違う方法は取れない
● ツール(gomobileコマンド)で面倒な処理をすべて行え
るか?
58
Go Mobile/Nativeアプリ
まとめ
■ GoはAndroid開発に使える?
● さくっと開発ツールを作る
● Android上で直接動くツール
■ Go Mobile
● まだ実験段階のプロジェクト
● C/C++で書かれていた部分が置き換わっ
ていってほしい
○ それでもcgoでCを書く必要あり
59
おまけ
■ shiny
● GUIライブラリ
● Go Mobileに似ている
● まだ始まったばかり
■ 2つのレイヤーからなる
● 基礎的な機能(ドライバ)を提供
⇒ OpenGLやX11などの実装を提供
● ピュアGoで書かれたウィジェット
⇒ 特定のドライバ実装に依存しない
サンプルをMacで動かしたところ
60
61
62
以下、補足スライド
63
SDKアプリの詳細
gomobile bindで生成されるバインディング
■ Goのコード(参考)
■ 生成されるJavaのコード
package mypkg
type Counter struct{Value int}
func (c *Counter) Inc(){c.Value++}
func New() *Counter{return &Counter{5}}
public abstract class Mypkg {
private Mypkg() {}
public static final class Counter {
public void Inc();
public long GetValue();
public void SetValue(long value);
}
public static Counter New();
}
Java
Go
自動生成
JavaからGoのコードを呼び出す
■ バインディングオブジェクト経由で呼び出す
● パッケージは抽象クラス
○ パッケージレベルの関数はパッケージクラスのメソッ
ドになる
● 構造体は内部クラス
○ メソッドは内部クラスのメソッドになる
○ フィールドはGetter/Setter付きのフィールド
Counter c = Mypkg.New();
c.Inc();
String s = String.format("%d", c.GetValue());
Log.d("Mypkg", s); // 1
Java
GoからJavaを呼び出す
66
Go Mobile/SDKアプリ
Javaバインディング
Javaのコード
Cのコード
Goのコード
インタフェースを実装
インタフェースを
引数に関数呼び出し
Javaバインディング
Javaのコード
Cのコード
インタフェースの
メソッドを呼び出し
インタフェースの
スタブは自動生成
Javaで実装したものをGoで呼び出せる
GoからJavaのコードを呼び出す
■ Go側でインタフェースとそれを使う関数を用意
■ Java側でインタフェースを実装する
public class SysPrint extends Myfmt.Printer.Stub {
public void Print(String s) {
System.out.println(s);
}
} Java
package myfmt
type Printer interface {Print(s string)}
func PrintHello(p Printer) {
p.Print("Hello, World!")
}
Go
スタブクラスが
自動生成される
GoからJavaのコードを呼び出す
■ gomobile bindで生成されるバインディング
public abstract class Myfmt {
private Myfmt() {}
public interface Printer {
public void Print(String s);
public static abstract class Stub implements Printer {
・・・
}
・・・
}
public static void PrintHello(Printer p) { ・・・ }
}
Java
GoのPrintHelloを
呼び出すメソッド
Printerを実装
GoからJavaのコードを呼び出す
Myfmt.Printer printer = new SysPrint();
Myfmt.PrintHello(printer);
Java
■ Java側からPinterを使用する関数を呼び出す
■ 手順まとめ
● Goでインタフェースとインタフェースを引数に取
る関数を用意
● gomobile bindでスタブを作る
● Java側でスタブを継承して実装する
● Java側からインタフェースを引数に取るGoの関
数を呼ぶ
SDKアプリでアプリ内サーバ
70
Go Mobile/SDKアプリ
Androidアプリ
Javaのコード
Go製アプリ内サーバ
HTTPリクエスト
アプリ内サーバへHTTPリクエストを投げ
るという選択肢も
APIサーバ
DBサーバ
HTTPリクエスト
71
Nativeアプリの詳細
app.Main
■ イベントループを行う関数
func main() {
app.Main(func(a app.App) {
// イベントループを書く
})
}
イベントループ
■ app.App.Events()からイベントを取得
// Events() <-chan interface{}
for e := range a.Events() {
switch e := a.Filter(e).(type) {
case lifecycle.Event:
// ...
case paint.Event:
// ...
}
}
テクスチャのロード
■ アセットのオープン
a, err := asset.Open("gopher.png")
■ 画像のデコード
img, err := image.Decode(a)
■ テクスチャのロード
t, err := eng.LoadTexture(img)
assetsディレクトリ以下
のファイルを見に行く
シーングラフの構築
■ ノードの作成と登録
■ 子ノードの追加
scene := &sprite.Node{}
eng.Register(scene)
n := &sprite.Node{}
eng.Register(n)
scene.AppendChild(n)
サブテクスチャの作成と設定
■ サブテクスチャの作成
st := sprite.Subtex {
T:t, // テクスチャ
R:iamge.Rect(0, 0, 100, 200)
}
■ サブテクスチャの設定
eng.SetSubTex(n, st)
テクスチャ上の該当の領
域を指定する
アフィン変換行列の設定
■ アフィン変換行列の設定
ルートノードは、サイズ:1pt x 1pt、
座標:(0,0)、角度:0に対して変換行列を掛け合わせる
// Scale(2,2)して、(5,5)だけ並行移動
eng.SetTransform(root, f32.Affine{
{2, 0, 5},
{0, 2, 5},
})
1pt = 1/72 inch
アフィン変換行列の計算
■ 親ノードから子ノードへ
親ノードの変換結果に子ノードの変換行列を
掛けわせて子ノードの描画位置を決める
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)
ノードの配置
■ Node.Arranger.Arrange
● 毎フレーム呼ばれる
● ノードの位置を変更したりする
type Arranger interface{
Arrange(e Engine, n *Node, t clock.Time)
}

More Related Content

What's hot

こわくない Git
こわくない Gitこわくない Git
こわくない GitKota Saito
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴Takuto Wada
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織Takafumi ONAKA
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門大樹 小倉
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビューTakafumi ONAKA
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発infinite_loop
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)Mikiya Okuno
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南Mikiya Okuno
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendationssuser3e398d
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方Shigenori Sagawa
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学MITSUNARI Shigeo
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道nishio
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説するTaishiYamada1
 
C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話Masahiko Hashimoto
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説Hironori Washizaki
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーSaeko Yamamoto
 

What's hot (20)

こわくない Git
こわくない Gitこわくない Git
こわくない Git
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴SQLアンチパターン - 開発者を待ち受ける25の落とし穴
SQLアンチパターン - 開発者を待ち受ける25の落とし穴
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
 
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
なぜ、いま リレーショナルモデルなのか(理論から学ぶデータベース実践入門読書会スペシャル)
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation
[論文解説]KGAT:Knowledge Graph Attention Network for Recommendation
 
良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方良い?悪い?コードコメントの書き方
良い?悪い?コードコメントの書き方
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
If文から機械学習への道
If文から機械学習への道If文から機械学習への道
If文から機械学習への道
 
継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する継承やめろマジやめろ。 なぜイケないのか 解説する
継承やめろマジやめろ。 なぜイケないのか 解説する
 
C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話C++アプリをCmakeとEclipseで開発するお話
C++アプリをCmakeとEclipseで開発するお話
 
(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説(修正)機械学習デザインパターン(ML Design Patterns)の解説
(修正)機械学習デザインパターン(ML Design Patterns)の解説
 
はじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダーはじめてのGit forデザイナー&コーダー
はじめてのGit forデザイナー&コーダー
 

Viewers also liked

Talknoteとgolangと私
Talknoteとgolangと私Talknoteとgolangと私
Talknoteとgolangと私Kenyu Miura
 
FiNCとマイクロサービス
FiNCとマイクロサービスFiNCとマイクロサービス
FiNCとマイクロサービスFumiya Shinozuka
 
Usecase examples of Packer
Usecase examples of Packer Usecase examples of Packer
Usecase examples of Packer Hiroshi SHIBATA
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraNaotoshi Seo
 
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで実践Go ツールの作成から配布まで
実践Go ツールの作成から配布までYusuke Miyake
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料Yuji Otani
 
PFN Spring Internship Final Report: Autonomous Drive by Deep RL
PFN Spring Internship Final Report: Autonomous Drive by Deep RLPFN Spring Internship Final Report: Autonomous Drive by Deep RL
PFN Spring Internship Final Report: Autonomous Drive by Deep RLNaoto Yoshida
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Ryosuke Okuta
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキストEtsuji Nakai
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)徹 上野山
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~nlab_utokyo
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル敦志 金谷
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話Ryota Kamoshida
 

Viewers also liked (18)

Talknoteとgolangと私
Talknoteとgolangと私Talknoteとgolangと私
Talknoteとgolangと私
 
FiNCとマイクロサービス
FiNCとマイクロサービスFiNCとマイクロサービス
FiNCとマイクロサービス
 
Usecase examples of Packer
Usecase examples of Packer Usecase examples of Packer
Usecase examples of Packer
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
 
実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで実践Go ツールの作成から配布まで
実践Go ツールの作成から配布まで
 
TalknoteとGolang
TalknoteとGolangTalknoteとGolang
TalknoteとGolang
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 
PFN Spring Internship Final Report: Autonomous Drive by Deep RL
PFN Spring Internship Final Report: Autonomous Drive by Deep RLPFN Spring Internship Final Report: Autonomous Drive by Deep RL
PFN Spring Internship Final Report: Autonomous Drive by Deep RL
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
 
機械学習概論 講義テキスト
機械学習概論 講義テキスト機械学習概論 講義テキスト
機械学習概論 講義テキスト
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
Deep Learningと画像認識   ~歴史・理論・実践~
Deep Learningと画像認識 ~歴史・理論・実践~Deep Learningと画像認識 ~歴史・理論・実践~
Deep Learningと画像認識   ~歴史・理論・実践~
 
scikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアルscikit-learnを用いた機械学習チュートリアル
scikit-learnを用いた機械学習チュートリアル
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 
Deep parking
Deep parkingDeep parking
Deep parking
 
機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話機械学習によるデータ分析まわりのお話
機械学習によるデータ分析まわりのお話
 

Similar to Go MobileでAndroidアプリ開発

Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうTakuya Ueda
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発Hiroshi Kurokawa
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選Takuya Ueda
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioSoichiro Kashima
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileTakahiro Yoshimura
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜShinobu Okano
 
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作るGoだけでモバイルアプリを作る
Goだけでモバイルアプリを作るTakuya Ueda
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発Takuya Ueda
 
Adobe XDプラグインをつくってみよう
Adobe XDプラグインをつくってみようAdobe XDプラグインをつくってみよう
Adobe XDプラグインをつくってみようYoshiki Takeoka
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidSENSY Inc
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)Tetsuyuki Kobayashi
 
いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門Monaca
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化Takashi Okamoto
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会mokelab
 
Go一緒にいかが?
Go一緒にいかが?Go一緒にいかが?
Go一緒にいかが?Ryuji Iwata
 
Androidレイアウトのスタンダードアプローチ
AndroidレイアウトのスタンダードアプローチAndroidレイアウトのスタンダードアプローチ
AndroidレイアウトのスタンダードアプローチTakao Sumitomo
 

Similar to Go MobileでAndroidアプリ開発 (20)

Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
go.mobile で Android 開発
go.mobile で Android 開発go.mobile で Android 開発
go.mobile で Android 開発
 
Golang handson
Golang handsonGolang handson
Golang handson
 
gomobile
gomobilegomobile
gomobile
 
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
 
Golang入門
Golang入門Golang入門
Golang入門
 
ちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜちょっとGoogle Analyticsの話しようぜ
ちょっとGoogle Analyticsの話しようぜ
 
Goだけでモバイルアプリを作る
Goだけでモバイルアプリを作るGoだけでモバイルアプリを作る
Goだけでモバイルアプリを作る
 
GoによるiOSアプリの開発
GoによるiOSアプリの開発GoによるiOSアプリの開発
GoによるiOSアプリの開発
 
Adobe XDプラグインをつくってみよう
Adobe XDプラグインをつくってみようAdobe XDプラグインをつくってみよう
Adobe XDプラグインをつくってみよう
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
 
組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)組み込みLinuxでのGolangのススメ(Go con版)
組み込みLinuxでのGolangのススメ(Go con版)
 
いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門いまさら聞けない!HTML5超入門
いまさら聞けない!HTML5超入門
 
PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化PhoneGapでWebアプリをスマホアプリ化
PhoneGapでWebアプリをスマホアプリ化
 
Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会Android Studio 2.2の紹介@Google I/O 2016東京報告会
Android Studio 2.2の紹介@Google I/O 2016東京報告会
 
Go一緒にいかが?
Go一緒にいかが?Go一緒にいかが?
Go一緒にいかが?
 
android_on_groovy
android_on_groovyandroid_on_groovy
android_on_groovy
 
Androidレイアウトのスタンダードアプローチ
AndroidレイアウトのスタンダードアプローチAndroidレイアウトのスタンダードアプローチ
Androidレイアウトのスタンダードアプローチ
 

More from Takuya Ueda

Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Takuya Ueda
 
WebAssembly with Go
WebAssembly with GoWebAssembly with Go
WebAssembly with GoTakuya Ueda
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/GoとsyncパッケージTakuya Ueda
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発Takuya Ueda
 
そうだ、Goを始めよう
そうだ、Goを始めようそうだ、Goを始めよう
そうだ、Goを始めようTakuya Ueda
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージTakuya Ueda
 
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新Takuya Ueda
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App EngineTakuya Ueda
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選Takuya Ueda
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in GoTakuya Ueda
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話Takuya Ueda
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?Takuya Ueda
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGoTakuya Ueda
 
Go静的解析ハンズオン
Go静的解析ハンズオンGo静的解析ハンズオン
Go静的解析ハンズオンTakuya Ueda
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Takuya Ueda
 
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポートGopher Fest 2017参加レポート
Gopher Fest 2017参加レポートTakuya Ueda
 
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめGoogle Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめTakuya Ueda
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介Takuya Ueda
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するTakuya Ueda
 
Cloud Functionsの紹介
Cloud Functionsの紹介Cloud Functionsの紹介
Cloud Functionsの紹介Takuya Ueda
 

More from Takuya Ueda (20)

Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −Goにおけるバージョン管理の必要性 − vgoについて −
Goにおけるバージョン管理の必要性 − vgoについて −
 
WebAssembly with Go
WebAssembly with GoWebAssembly with Go
WebAssembly with Go
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
 
そうだ、Goを始めよう
そうだ、Goを始めようそうだ、Goを始めよう
そうだ、Goを始めよう
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
 
メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新メルカリ カウルのマスタデータの更新
メルカリ カウルのマスタデータの更新
 
Go1.8 for Google App Engine
Go1.8 for Google App EngineGo1.8 for Google App Engine
Go1.8 for Google App Engine
 
Go Friday 傑作選
Go Friday 傑作選Go Friday 傑作選
Go Friday 傑作選
 
Static Analysis in Go
Static Analysis in GoStatic Analysis in Go
Static Analysis in Go
 
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
 
メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?メルカリ・ソウゾウでは どうGoを活用しているのか?
メルカリ・ソウゾウでは どうGoを活用しているのか?
 
エキスパートGo
エキスパートGoエキスパートGo
エキスパートGo
 
Go静的解析ハンズオン
Go静的解析ハンズオンGo静的解析ハンズオン
Go静的解析ハンズオン
 
Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用Goにおける静的解析と製品開発への応用
Goにおける静的解析と製品開発への応用
 
Gopher Fest 2017参加レポート
Gopher Fest 2017参加レポートGopher Fest 2017参加レポート
Gopher Fest 2017参加レポート
 
Google Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめGoogle Assistant関係のセッションまとめ
Google Assistant関係のセッションまとめ
 
Cloud functionsの紹介
Cloud functionsの紹介Cloud functionsの紹介
Cloud functionsの紹介
 
goパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現するgoパッケージで型情報を用いたソースコード検索を実現する
goパッケージで型情報を用いたソースコード検索を実現する
 
Cloud Functionsの紹介
Cloud Functionsの紹介Cloud Functionsの紹介
Cloud Functionsの紹介
 

Recently uploaded

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (8)

20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

Go MobileでAndroidアプリ開発