golang / go

Podúložiště Go mobile přidává podporu pro mobilní platformy (Android a iOS) a poskytuje nástroje pro vytváření mobilních aplikací.

Existují dvě strategie, kterými se můžete řídit při začleňování jazyka Go do svého mobilního zásobníku:

  • Psaní nativních mobilních aplikací zcela ve formátu Go.
  • Psaní aplikací SDK generováním vazeb z balíčku Go a jejich voláním z jazyka Java (v systému Android) a Objective-C (v systému iOS).

Tento článek bude obsahovat návody krok za krokem, které vysvětlí, jak těchto strategií dosáhnout.

  • Nástroje
  • Nativní aplikace
    • Tvorba a nasazení na Androidu
    • Tvorba a nasazení na iOS
    • Ikona aplikace
  • .

  • Aplikace SDK
    • Tvorba a nasazení pro Android
    • Tvorba a nasazení pro iOS
    • Simulátor iOS

Nástroje

Pozn: Musíte mít Go 1.5 nebo vyšší, abyste mohli nainstalovat mobilní nástroje. (Nebo alespoň Go 1.7.4, pokud používáte macOS Sierra)

Go Mobile představuje nový nástroj, gomobile,který vám pomůže s procesem sestavení a vazby.

gomobile nyní podporuje moduly Go! $ gomobile bind -v -o android.aar -target=android ./package pod adresářem projektu nyní funguje.

V systému MacOS budete muset mít nainstalované nástroje příkazového řádkuXcode.

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

(Následující části vám pomohou, jak nástroj gomobile používat.)

Nativní aplikace

Kategorie nativních aplikací zahrnuje aplikace kompletně napsané v jazyce Go. V současné době je k dispozici aplikacegolang.org/x/mobileobsahuje pouze malou sadu balíčků, které se zaměřují na:

  • Ovládání a konfigurace aplikací
  • Vazby na OpenGL ES 2 a ES 3
  • Správa majetku
  • Správa událostí
  • Experimentální balíčky zahrnují vazby na OpenAL, zvuk, písmo, sprity a pohybové senzory

Pod golangem existují různé ukázkové nativní aplikace.org/x/mobile/example. Základní příklad sestavíme a nasadíme jak na zařízení se systémem Android, tak na zařízení se systémem iOS.

Sestavte aplikaci.

$ go get -d golang.org/x/mobile/example/basic

Sestavení a nasazení na Android

Spuštěním gomobile build sestavíte APK pro Android.

$ gomobile build -target=android golang.org/x/mobile/example/basic

Příkaz Build sestaví APK s názvem basic.apk.

Pokud je v adresáři balíčku definován soubor AndroidManifest.xml, je přidán do výstupu APK. V opačném případě se vygeneruje výchozí manifest.

Pokud máte v počítači nainstalovaný příkaz adb, můžete pomocí gomobile install sestavit a odeslat APK do mobilního zařízení.

$ gomobile install golang.org/x/mobile/example/basic

Sestavení a nasazení do systému iOS

Spuštěním gomobile build sestavíte balíček jako aplikaci pro systém iOS.

Poznámka: target=ios vyžaduje hostitelský počítač se systémem macOS. Abyste mohli pokračovat, musíte získat podpisovou identitu a stáhnout profily provisioningu.

$ gomobile build -target=ios golang.org/x/mobile/example/basic

Příkaz build sestaví balíček aplikace s názvem basic.app.

Soubory .app můžete nasadit přetažením na zařízení.

  • V Xcode otevřete okno > Zařízení.
  • V levém podokně vyberte fyzické zařízení.
  • Přetáhněte soubor .app do sekce „Nainstalované aplikace“.
  • Zaškrtněte možnost „V případě potřeby kopírovat položky“

Nasazení balíčku aplikací

Alternativně můžete balíčky aplikací nasadit do zařízení iOS pomocí nástroje příkazového řádku ios-deploy. Pomocí ios-deploy můžete aplikaci odeslat do zařízení.

$ ios-deploy -b basic.app

Ikona aplikace

Ikonu aplikace je možné nastavit vytvořením assets/icon.png.

Aplikace SDK a generování vazeb

V této kategorii si ukážeme, jak můžete použít balíček Go ve své stávající aplikaci pro Android nebo iOS.

Výhody použití této strategie:

  • Můžete znovu použít balíček Go z mobilní aplikace, aniž byste museli výrazně měnit stávající aplikaci.
  • V případech, kdy chcete sdílet společnou kódovou základnu mezi aplikací pro Android a iOS, můžete jednou napsat společné funkce v jazyce Go a přilepit je ke kódu specifickému pro danou platformu voláním balíčku Go prostřednictvím vazeb.

Současná omezení jsou uvedena níže.

  • V současné době je podporována pouze podmnožina typů Go.
  • Vazby jazyka mají výkonnostní režii.
  • Existuje několik omezení, jak by měla vypadat exportovaná API kvůli omezením cílového jazyka.

Použijeme ukázkový balíček pod golangem.org/x/mobile/example/bind/hello pro generování vazeb a volání funkce Greetings z jazyků Java a Objective-C.

Příklad získáte spuštěním níže uvedeného příkazu.

$ go get -d golang.org/x/mobile/example/bind/...

Sestavení a nasazení na Android

Poznámka: Go Mobile běží na stejných architekturách jako Go, což v současné době znamená zařízení a emulátory ARM, ARM64, 386 a amd64. Pozoruhodné je, že Android na zařízeních MIPS zatím není podporován.

  • Spuštěním následujícího příkazu vygenerujete soubor aar, který je vhodný pro import do projektů Android:
$ gomobile bind -o app/hello.aar -target=android golang.org/x/mobile/example/bind/hello
  • Spustit Android Studio.
  • Soubor > Import projektu… importovat referenční projekt z $GOPATH/src/golang.org/x/mobile/example/bind/android.

Android Studio

  • Sestavte a nasaďte aplikaci do zařízení.

Modul aplikace obsahuje hlavní aplikaci, která vyvolá hello.Greetings. Po spuštění aplikace se textové zobrazení aktualizuje o vrácenou hodnotu řetězce.

Pokud nepoužíváte Android Studio, musíte mít pro práci s vazbami pro Android nainstalovaný Android SDK a proměnnou prostředí ANDROID_HOME nastavenou na cestu k SDK. Potřebujete také nainstalovat NDK; nejjednodušší způsob je spustit příkaz SDK sdkmanager ndk-bundle.

Případně, pokud nejste obeznámeni s vývojem pro Android a nechcete nastavovat všechna potřebná prostředí (Android SDK, Gradle atd.), můžete místo toho použít tento soubor Dockerfile pro sestavení aplikace v dockeru.

Pokud se pokusíte přidat svůjmodul.aar do vlastního projektu, po zkopírování svéhomodulu.aar a souboru yourmodule.jar do složky „android\app“, je třeba provést níže uvedené úpravy v souboru „android\app\build.gradle“, aby byl váš modul správně importován.

+ repositories {+ flatDir {+ dirs '.'+ }+ }
dependencies {...+ implementation (name:'yourmodulename', ext:'aar')}

Sestavení a nasazení pro iOS

Poznámka: target=ios vyžaduje, aby na hostitelském počítači běžel systém macOS.

$ cd $GOPATH/src/golang.org/x/mobile/example/bind$ gomobile bind -target=ios golang.org/x/mobile/example/bind/hello

Gomobile bind vygeneruje framework bundle s názvem Hello.framework. Otevřete ukázkový projekt Xcode spuštěním níže uvedeného příkazu.

$ open ios/bind.xcodeproj

Přetáhněte a pusťte svazek Hello.framework do projektu Xcode. Zaškrtněte políčko „Kopírovat položky v případě potřeby“, pokud jinak potřebujete jinou kopii rámcového svazku v rámci Xcode. V opačném případě úprava zdrojového kódu balíčku Go a opětovné spuštění gomobile bind aktualizuje hello.framework.

Přetáhněte a pusťte Hello.framework

Pokud se rozhodnete ponechat Hello.framework v hlavním adresáři, musíte přidat hlavní adresář do Framework Search Paths v nastavení sestavení cílů.

Cesta hledání frameworku v projektu Xcode

Rozložení vašeho projektu by mělo vypadat tak, jak je uvedeno níže.

Rozložení projektu Xcode s Hello.framework

Sestavte a spusťte jej na simulátoru nebo skutečném zařízení (Cmd+R). Po spuštění aplikace se popisek v hlavním zobrazení změní na řetězec vrácený z funkce GoHelloGreetings, která vyvolá funkci hello.Greetings.

Poznamenejte, že funkci GoHelloGreetings můžete vyvolat také ze Swiftu importem Hello.

@import Hello// ...let msg = Hello.GoHelloGreetings("gopher")

Simulátor iOS

Od verze Go 1.5 funguje na simulátoru iOS pouze darwin/amd64. Chcete-li používat simulátor, musíte nakonfigurovat Xcode tak, aby se pokoušel spouštět pouze 64bitové binární soubory.

Xcode odpovídá bitové šířce binárních souborů ARM při spuštění na simulátoru X86. To znamená, že pokud nakonfigurujete Xcode tak, aby sestavoval 32bitové i 64bitové binární soubory ARM (výchozí nastavení), bude se na simulátoru pokoušet spustit 32bitové binární soubory X86, což dnes s Go nebude fungovat. Upravte nastavení sestavení Xcode tak, aby sestavovalo pouze 64bitové binární soubory ARM, a simulátor spustí binární soubor amd64.

Leave a Reply