2015/gophercon-go-on-mobile: move demo source code out.
This will be hosted in a separate repo.
Change-Id: I612d478ae03c47fd24478cb7116087cc2f8f759c
Reviewed-on: https://go-review.googlesource.com/12338
Reviewed-by: Francesc Campoy Flores <campoy@golang.org>
diff --git a/2015/gophercon-go-on-mobile/README b/2015/gophercon-go-on-mobile/README
index 1732cd8..ff64cf0 100644
--- a/2015/gophercon-go-on-mobile/README
+++ b/2015/gophercon-go-on-mobile/README
@@ -1,38 +1,2 @@
-Demo Setup
-----------------------
-
-- Download and install Android SDK
-
-https://developer.android.com/sdk/index.html
-Or, easiest way is to install Android Studio.
-
-
-- Download go1.5 and build for your host.
-
-- Set the following environment variables.
-
-GOPATH: your go path
-ANDROID_HOME: Android SDK directory
-PATH: make sure $GOROOT/bin, $GOPATH/bin are included in the path
-
-- Install the gomobile tool and run init before demo.
-
-% go install golang.org/x/mobile/cmd/gomobile
-% gomobile init
-
-- Hello Gopher demo
-
-% demo1.bash
-
-For android screen mirroring, I used Mobizen (mobizen.com).
-For ios screen mirroring, you can use quicktime.
-
-- Gobind demo
-
-% demo2.bash
-
-- Ivy demo: In my gophercon talk, I used pre-recorded video
-clips for mobile versions and ran the command line version from
-my laptop in order to emphasize the cross-platform support.
-
-Enjoy.
+Demo source code and set up instruction is in
+https://github.com/hyangah/slides/tree/master/2015-gophercon-mobile
diff --git a/2015/gophercon-go-on-mobile/demo1.bash b/2015/gophercon-go-on-mobile/demo1.bash
deleted file mode 100755
index 8d750ed..0000000
--- a/2015/gophercon-go-on-mobile/demo1.bash
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-prompt() {
- read -p "$1"
-}
-
-cd hello
-
-declare -a arr=(
-"wc -l main.go"
-"go run main.go"
-"gomobile install -target=android"
-)
-
-for i in "${arr[@]}"
-do
- prompt "\$ $i"
- $i
- echo
-done
diff --git a/2015/gophercon-go-on-mobile/demo2.bash b/2015/gophercon-go-on-mobile/demo2.bash
deleted file mode 100755
index d377162..0000000
--- a/2015/gophercon-go-on-mobile/demo2.bash
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-
-prompt() {
- read -p "$1"
-}
-
-declare -a arr=(
-"cd mypkg"
-"tree"
-"cat mypkg.go"
-"export ANDROID_HOME=${ANDROID_HOME}"
-"gomobile bind ."
-"tree"
-"unzip -l mypkg.aar"
-)
-
-for i in "${arr[@]}"
-do
- prompt "\$ $i"
- $i
- echo
-done
-
-rm mypkg.aar
diff --git a/2015/gophercon-go-on-mobile/hello/assets/gophersmall.png b/2015/gophercon-go-on-mobile/hello/assets/gophersmall.png
deleted file mode 100644
index 53b4b4a..0000000
--- a/2015/gophercon-go-on-mobile/hello/assets/gophersmall.png
+++ /dev/null
Binary files differ
diff --git a/2015/gophercon-go-on-mobile/hello/assets/hello.wav b/2015/gophercon-go-on-mobile/hello/assets/hello.wav
deleted file mode 100644
index 1551ebf..0000000
--- a/2015/gophercon-go-on-mobile/hello/assets/hello.wav
+++ /dev/null
Binary files differ
diff --git a/2015/gophercon-go-on-mobile/hello/main.go b/2015/gophercon-go-on-mobile/hello/main.go
deleted file mode 100644
index 32aba94..0000000
--- a/2015/gophercon-go-on-mobile/hello/main.go
+++ /dev/null
@@ -1,207 +0,0 @@
-// Copyright 2015 The Go Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style
-// license that can be found in the LICENSE file.
-
-// Based on golang.org/x/mobile/example/audio
-
-package main
-
-import (
- "image"
- "log"
- "time"
-
- _ "image/png"
-
- "golang.org/x/mobile/app"
- "golang.org/x/mobile/asset"
- "golang.org/x/mobile/event/config"
- "golang.org/x/mobile/event/lifecycle"
- "golang.org/x/mobile/event/paint"
- "golang.org/x/mobile/event/touch"
- "golang.org/x/mobile/exp/app/debug"
- "golang.org/x/mobile/exp/audio"
- "golang.org/x/mobile/exp/f32"
- "golang.org/x/mobile/exp/sprite"
- "golang.org/x/mobile/exp/sprite/clock"
- "golang.org/x/mobile/exp/sprite/glsprite"
- "golang.org/x/mobile/geom"
- "golang.org/x/mobile/gl"
-)
-
-func main() {
- app.Main(func(a app.App) {
- for e := range a.Events() {
- switch e := app.Filter(e).(type) {
- case lifecycle.Event:
- switch e.Crosses(lifecycle.StageVisible) {
- case lifecycle.CrossOn:
- onStart()
- case lifecycle.CrossOff:
- onStop()
- }
- case config.Event:
- globalCfg = e // dimension change. move to the center.
- touchLoc = geom.Point{globalCfg.Width / 2, globalCfg.Height / 2}
- case paint.Event:
- onPaint(globalCfg)
- a.EndPaint()
- case touch.Event:
- onTouch(e)
- }
- }
- })
-}
-
-const (
- width = 72
- height = 74
-)
-
-var (
- startClock = time.Now()
- eng = glsprite.Engine()
- scene *sprite.Node
-
- player *audio.Player
-
- started = false
- activate = false
- acceptTouch = false
- touchLoc geom.Point
- globalCfg config.Event
-)
-
-func onTouch(t touch.Event) {
- if t.Type != touch.TypeStart {
- return
- }
-
- touchLoc = t.Loc
- acceptTouch = true
- if !activate {
- activate = true
- }
-}
-
-func onStart() {
- gl.Enable(gl.BLEND)
- gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
-
- rc, err := asset.Open("hello.wav")
- if err != nil {
- log.Fatal(err)
- }
- player, err = audio.NewPlayer(rc, 0, 0)
- if err != nil {
- log.Fatal(err)
- }
-}
-
-func onStop() {
- player.Close()
-}
-
-func onPaint(c config.Event) {
- if !started {
- touchLoc = geom.Point{c.Width / 2, c.Height / 2}
- started = true
- }
- if scene == nil {
- loadScene()
- }
- gl.ClearColor(242/255.0, 240/255.0, 217/255.0, 1) // gophercon bg color
- gl.Clear(gl.COLOR_BUFFER_BIT)
-
- now := clock.Time(time.Since(startClock) * 60 / time.Second)
- eng.Render(scene, now, c)
- debug.DrawFPS(c)
-}
-
-func newNode() *sprite.Node {
- n := &sprite.Node{}
- eng.Register(n)
- scene.AppendChild(n)
- return n
-}
-
-func loadScene() {
- gopher := loadGopher()
- scene = &sprite.Node{}
- eng.Register(scene)
- eng.SetTransform(scene, f32.Affine{
- {1, 0, 0},
- {0, 1, 0},
- })
-
- var x, y float32
- dx, dy := float32(1), float32(1)
-
- n := newNode()
- n.Arranger = arrangerFunc(func(eng sprite.Engine, n *sprite.Node, t clock.Time) {
- eng.SetSubTex(n, gopher)
-
- if acceptTouch {
- dx = (float32(touchLoc.X) - x) / 60
- dy = (float32(touchLoc.Y) - y) / 60
- acceptTouch = false
- hello()
- x += dx
- y += dy
- } else if activate {
- if x < 0 {
- dx = 1
- }
- if y < 0 {
- dy = 1
- }
- if x+width > float32(globalCfg.Width) {
- dx = -1
- }
- if y+height > float32(globalCfg.Height) {
- dy = -1
- }
- x += dx
- y += dy
- }
-
- if dx < 0 {
- eng.SetTransform(n, f32.Affine{ // change direction
- {-width, 0, x + width},
- {0, height, y},
- })
- } else {
- eng.SetTransform(n, f32.Affine{
- {width, 0, x},
- {0, height, y},
- })
- }
- })
-}
-
-func hello() {
- player.Seek(0)
- player.Play()
-}
-
-func loadGopher() sprite.SubTex {
- a, err := asset.Open("gophersmall.png")
- if err != nil {
- log.Fatal(err)
- }
- defer a.Close()
-
- img, _, err := image.Decode(a)
- if err != nil {
- log.Fatal(err)
- }
- t, err := eng.LoadTexture(img)
- if err != nil {
- log.Fatal(err)
- }
- return sprite.SubTex{t, image.Rect(0, 0, 360, 370)}
-}
-
-type arrangerFunc func(e sprite.Engine, n *sprite.Node, t clock.Time)
-
-func (a arrangerFunc) Arrange(e sprite.Engine, n *sprite.Node, t clock.Time) { a(e, n, t) }
diff --git a/2015/gophercon-go-on-mobile/mypkg/assets/myassets.txt b/2015/gophercon-go-on-mobile/mypkg/assets/myassets.txt
deleted file mode 100644
index 7e2f179..0000000
--- a/2015/gophercon-go-on-mobile/mypkg/assets/myassets.txt
+++ /dev/null
@@ -1 +0,0 @@
-assets
diff --git a/2015/gophercon-go-on-mobile/mypkg/mypkg.go b/2015/gophercon-go-on-mobile/mypkg/mypkg.go
deleted file mode 100644
index 12c88ec..0000000
--- a/2015/gophercon-go-on-mobile/mypkg/mypkg.go
+++ /dev/null
@@ -1,7 +0,0 @@
-package mypkg
-
-import "fmt"
-
-func Hello(name string) string {
- return fmt.Sprintf("Hello, %s!", name)
-}