在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 產(chǎn)品經(jīng)理/ 用 Go 語言來看 Android! 出發(fā), Android, 出發(fā)!
5 個提示助你設(shè)計出精妙的 Apple Watch 應(yīng)用軟件
如何使用安卓密鑰庫存儲密碼和其他敏感信息
從 HDFS 中使用分布式的 MAP REDUCE JOB 寫入 CASSANDRA
現(xiàn)代 Javascript 工具漫游指南
理解 Cassandra 壓縮儲存的作用
不懂 JavaScript?那你就不是一個 Web 開發(fā)者
如何開發(fā)一個簡單的 Android Wear 應(yīng)用程序
Angular 與 React 的比拼
谷歌加入 OpenStack 基金會的 4 個理由
15個很有用的面向設(shè)計師的 UI 和 UX 設(shè)計工具及資源
DevTools 摘要: 處理條帶化數(shù)據(jù)時給條帶化數(shù)據(jù)的一個新家
為什么是 Node.js ? 什么時候使用 Node.js ?
玩轉(zhuǎn) Dcoker:Hello World, 開發(fā)環(huán)境和你的應(yīng)用
運行時的掛鉤 C 函數(shù)
在游戲開發(fā)中獲得成功
在 iOS 開發(fā)中使用 TWITTERKIT & DIGITS
使用 ionic 將數(shù)據(jù)保存到本地存儲中
20 個有用的 Angular.js 工具
如何成為一個超級軟件開發(fā)者
用 Go 語言來看 Android! 出發(fā), Android, 出發(fā)!

用 Go 語言來看 Android! 出發(fā), Android, 出發(fā)!

文章翻譯:王韜懿
發(fā)表時間:2015 年 7 月 23 日
原文作者:Chester
文章分類:移動應(yīng)用開發(fā)

關(guān)于本文

如今移動開發(fā)雖然三分天下,但主要市場還是 Android 和 IOS ,但是對于一些中小型公司來說單獨開發(fā)的成本明顯比較大。2014 年蘋果推出了全新的語言 Swift ,而作為對頭的 Google 也有一門自己獨特的語言,那就是 Go 語言,Go 語言不僅能用來進行 Android 開發(fā),而且也正在適配 IOS 平臺,下面讓我們來入個門吧。

文章內(nèi)容

隨著 Go 1.5 的即將發(fā)布,在 Android 和 IOS 上編譯 Go 語言的代碼正在被引進。你既可以完全用 Go 語言來寫你的應(yīng)用并用 opengl 來做 UI 界面,也可以寫一個可以和原生的 Android 和 IOS 交互的 Go 類庫。這為跨平臺類庫打開了大門,這讓我激動不已。Google 為了確保用 Go 語言寫出來的 apps 不會被 apple store 拒之門外而做了很多跑腿兒活,比如Ivy

入門指南

讓我們開始吧,首先你必須安裝一個可運行的 go 1.5. 你可以從源代碼編譯或者使用一個之前編譯好的版本。我在寫這篇博客的時候在一臺 Linux 機器上使用的是 的 go 1.5 beta2. 我注意到在 Windows 上面使用的時候在 Go 語言源代碼里面會有一些警告信息,因此如果你正在使用 Windows 開發(fā),這可能不會起作用。

一旦你要安裝 Go 語言,你可以通過下面的命令行來安裝:

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

Android 平臺:你需要安裝 Android sdk 并且確保你的 adb 在你的環(huán)境變量里面,并且你的設(shè)備要能夠使用 adb 調(diào)試。

IOS 平臺:很不幸的是 IOS 并不是 100% 適配,因此可能不會有作用。通常在 IOS 上編譯你需要安裝 xcode 并寫使用 OSX 系統(tǒng)。

安裝一個示例

讓我們看看可不可以編譯并且安裝一些 go 語言的代碼。Google 已經(jīng)提供了一些我們可以使用的例子 。為了簡便起見我這里只安裝 android 版本(主要原因是因為我沒有 IOS 設(shè)備)。

接下來的命令就會安裝示例應(yīng)用:

gomobile install golang.org/x/mobile/example/basic
gomobile install golang.org/x/mobile/example/audio
gomobile install golang.org/x/mobile/example/sprite 

雖然看起來不多,但是我覺得這相當(dāng)酷。上面的應(yīng)用使用純 go 語言寫的,并且使用 opengl 來做渲染。目前還有一些 api 限制,但是我相信不久就會改善。

分析跨平臺開發(fā)的應(yīng)用

好,我們可以編譯他人的代碼,但是它在干什么?讓我們看看在這個基本的示例應(yīng)用里面發(fā)生了什么。

//excerpt from golang.org/x/mobile/example/basic
func main() {
    app.Main(func(a app.App) {
        var c config.Event
        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:
                c = e
                touchLoc = geom.Point{c.Width / 2, c.Height / 2}
            case paint.Event:
                onPaint(c)
                a.EndPaint()
            case touch.Event:
                touchLoc = e.Loc
            }
        }
    })
}

用 Go 語言寫的應(yīng)用會從 app 包里面調(diào)用主函數(shù)。在這里你可以定義應(yīng)該發(fā)生什事件,你可以在事件文檔了解更多細節(jié)。這些事件基于注冊在應(yīng)用里面的接口。

上面的代碼遍歷在事件頻道里面所有的事件。配置事件定義了屏幕的大小,繪圖事件正在繪制我們長方形的顏色。點擊事件改變了長方形的位置,生命周期事件構(gòu)造或者析構(gòu)這個基于應(yīng)用焦點的項目。

更多閱讀

我希望我已經(jīng)激起了你的興趣,研究 Go 語言可以參考這些文章。

所有的示例都可以在這里找到 http://golang.org/x/mobile/example

在這里可以找到文檔https://godoc.org/golang.org/x/mobile

源代碼在這里 https://github.com/golang/mobile

更多IT技術(shù)干貨: wiki.jikexueyuan.com
加入極客星球翻譯團隊: http://wiki.jikexueyuan.com/project/wiki-editors-guidelines/translators.html

版權(quán)聲明:
本譯文僅用于學(xué)習(xí)和交流目的。非商業(yè)轉(zhuǎn)載請注明譯者、出處,并保留文章在極客學(xué)院的完整鏈接
商業(yè)合作請聯(lián)系 wiki@jikexueyuan.com
原文地址:http://www.codingvelocity.com/2015/07/23/go-mobile-intro.html