golang / go

Go-alivarasto lisää tuen mobiilialustoille (Android ja iOS) ja tarjoaa työkaluja mobiilisovellusten rakentamiseen.

On kaksi strategiaa, joita voit noudattaa ottaaksesi Go:n mukaan mobiilipinoon:

  • Kokonaan Go:n natiivien mobiilisovellusten kirjoittaminen.
  • SDK-sovellusten kirjoittaminen generoimalla sidoksia Go-paketista ja kutsumalla niitä Javasta (Androidissa) ja Objective-C:stä (iOS:ssa).

Tämä artikkeli sisältää vaiheittaisia oppaita, jotka selittävät, kuinka saavuttaa nämä strategiat.

  • Työkalut
  • Natiivit sovellukset
    • Rakentaminen ja käyttöönotto Androidille
    • Rakentaminen ja käyttöönotto iOS:lle
    • Sovelluskuvake
  • SDK-sovellukset
    • Rakentaminen ja käyttöönotto Androidille
    • Rakentaminen ja käyttöönotto iOS:lle
    • iOS-simulaattori

Työkalut

Huom: Sinulla täytyy olla Go 1.5 tai uudempi, jotta voit asentaa mobiilityökalut. (Tai vähintään Go 1.7.4, jos käytät macOS Sierraa)

Go Mobile esittelee uuden työkalun, gomobile,joka auttaa sinua rakentamisessa ja sitomisessa.

gomobile tukee Go Modulesia nyt! $ gomobile bind -v -o android.aar -target=android ./package projektin hakemiston alla toimii nyt.

MacOS:ssä tarvitsetXcode-komentorivityökalut asennettuna.

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

(Seuraavat osiot auttavat sinua käyttämään gomobile-työkalua.)

Natiivit sovellukset

Natiivit kategoriaan kuuluvat sovellukset, jotka on kirjoitettu kokonaan Go-kielellä. Tällä hetkellägolang.org/x/mobilecontains only a small set of packages that focus on:

  • Sovelluksen hallinta ja konfigurointi
  • OpenGL ES 2 ja ES 3 -sidonnaisuudet
  • Varallisuudenhallinta
  • Tapahtumanhallinta
  • Kokeilullisiin paketteihin kuuluvat OpenAL-sidonnaisuudet, ääni-, fontti-, sprite- ja liiketunnistimet
  • Golangin alaisuudessa toimii erilaisia natiivien esimerkkisovellusten esimerkkejä.org/x/mobile/example. Rakennamme ja otamme käyttöön perusesimerkin sekä Android- että iOS-laitteelle.

    Nappaa sovellus.

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

Rakentaminen ja käyttöönotto Androidille

Käynnistä gomobile build rakentaaksesi Android APK:n.

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

Build-komento rakentaa APK:n nimeltä basic.apk.

Jos pakettihakemistossa on määritelty AndroidManifest.xml, se lisätään APK:n tulosteeseen. Muussa tapauksessa luodaan oletusmanifesti.

Jos koneellesi on asennettu adb-komento, voit käyttää gomobile install rakentaaksesi APK:n ja työntääksesi sen mobiililaitteeseen.

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

Rakentaminen ja käyttöönotto iOS-käyttöjärjestelmään

Käynnistä gomobile build rakentaaksesi paketin iOS-sovelluksena.

Huomautus: target=ios-komennon käyttö edellyttää, että isäntäkoneessa on macOS. Sinun on hankittava allekirjoitustunniste ja ladattava provisiointiprofiilit, jotta voit jatkaa.

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

Komento build rakentaa sovelluspaketin, jonka nimi on basic.app.

Voit ottaa .app-tiedostot käyttöön vetämällä ja pudottamalla ne laitteeseen.

  • Avaa Xcodessa ikkuna > Laitteet.
  • Valitse fyysinen laite vasemmasta ruudusta.
  • Rapauta .app-tiedosto ”Asennetut sovellukset”-osioon.
  • Valitse ”Kopioi kohteita tarvittaessa”-vaihtoehto

Sovelluskokonaisuuden käyttöönotto

Vaihtoehtoisesti voit ottaa sovelluskokonaisuuksia käyttöön iOS-laitteessasi komentoriviltä löytyvällä komennorivityökalulla (komentorivillä), joka on nimeltään [iOS-deploy] utility. Käytä ios-deploy-toimintoa sovelluksen työntämiseen laitteeseen.

$ ios-deploy -b basic.app

Sovelluskuvake

Sovelluskuvake on mahdollista asettaa luomalla assets/icon.png.

SDK-sovellukset ja luomalla sidonnat

Tässä kategoriassa näytämme, miten voit käyttää Go-pakettia olemassa olevassa Android- tai iOS-sovelluksessasi.

Tämän strategian noudattamisen edut:

  • Voit käyttää Go-paketin uudelleen mobiilisovelluksesta tekemättä merkittäviä muutoksia olemassa olevaan sovellukseesi.
  • Tapauksissa, joissa haluat jakaa yhteisen koodipohjan Android- ja iOS-sovelluksesi välillä, voit kirjoittaa yhteiset toiminnot kerran Go-kielellä ja liimata ne alustakohtaiseen koodiin kutsumalla Go-pakettia sidosten kautta.

Tämänhetkiset rajoitukset on lueteltu alla.

  • Tällä hetkellä tuetaan vain osajoukkoa Go-tyypeistä.
  • Kielisidonnaisuuksiin liittyy suorituskykyyn liittyviä yleiskustannuksia.
  • Kohdekielen rajoituksista johtuen on olemassa joitain rajoituksia sen suhteen, miltä vietyjen API-rajapintojen tulisi näyttää.

Käytämme esimerkkipakettia golangin alla.org/x/mobile/example/bind/hello luodaksemme sidoksia ja kutsuaksemme Greetings-funktiota Javasta ja Objective-C:stä.

Nappaa esimerkki suorittamalla alla oleva komento.

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

Rakentaminen ja käyttöönotto Androidille

Huomautus: Go Mobile pyörii samoilla arkkitehtuureilla kuin Go:kin, eli tällä hetkellä ARM-, ARM64-, 386- ja amd64-laitteilla ja emulaattoreilla. Huomionarvoista on, että Androidia MIPS-laitteilla ei vielä tueta.

  • Toteuta seuraava komento luodaksesi aar-tiedoston, joka soveltuu tuotavaksi Android-projekteihin:
$ gomobile bind -o app/hello.aar -target=android golang.org/x/mobile/example/bind/hello

  • Käynnistä Android Studio.
  • Tiedosto > Tuo projekti… tuodaksesi viiteprojektin osoitteesta $GOPATH/src/golang.org/x/mobile/example/bind/android.

Android Studio

  • Rakenna ja ota sovellus käyttöön laitteeseen.

Sovellus-moduuli sisältää pääasiallista sovellusta, joka kutsuu koollekutsujan hello.Greetings. Kun sovellus käynnistetään, tekstinäkymä päivitetään merkkijonon palautetulla arvolla.

Jos et käytä Android Studiota, jotta voit työskennellä Androidin sidonnaisuuksien kanssa, sinulla on oltava Android SDK asennettuna ja ANDROID_HOME-ympäristömuuttuja asetettuna SDK-polkuun. Tarvitset myös NDK:n asennettuna; helpoin tapa on ajaa SDK-komento sdkmanager ndk-bundle.

Vaihtoehtoisesti, jos et tunne android-kehitystä etkä halua asettaa kaikkia tarvittavia ympäristöjä (Android SDK, Gradle jne.), voit käyttää tätä Dockerfileä rakentaaksesi sovelluksen sen sijaan dockerissa.

Sitä paitsi, jos yrität lisätä yourmodule.aar:n omaan projektiisi, kopioinnin jälkeen yourmodule.aar-tiedoston ja yourmodule.jar-tiedoston ”android\app”-kansioon, alla oleva muokkaus ”android\app\build.gradle”-tiedostossa on tehtävä, jotta moduulisi tuodaan oikein.

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

Rakentaminen ja käyttöönotto iOS:lle

Huomautus: target=ios edellyttää, että isäntäkoneessa on macOS.

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

Gomobile bind generoi kehyspaketin nimeltä Hello.framework. Avaa Xcode-esimerkkiprojekti suorittamalla alla oleva komento.

$ open ios/bind.xcodeproj

Vedä ja pudota Hello.framework-paketti Xcode-projektiin. Merkitse ”Copy items if needed” (Kopioi kohteita tarvittaessa), jos tarvitset eri kopion kehysnipusta Xcoden sisällä muuten. Muussa tapauksessa Go-paketin lähdekoodin muokkaaminen ja gomobile bind:n uudelleen suorittaminen päivittää hello.frameworkin.

Rapauta ja pudota Hello.framework

Jos päätät pitää Hello.framework:n päähakemistossa, sinun on lisättävä päähakemisto Framework Search Paths:n kohteisiin Build Settings.

Frameworkin hakupolku Xcode-projektissa

Projektisi ulkoasun pitäisi näyttää alla olevan kuvan mukaiselta.

Xcode-projektin ulkoasu Hello.frameworkin kanssa

Buildaa ja suorita se simulaattorilla tai todellisella laitteella (Cmd+R). Kun sovellus käynnistyy, päänäkymän tarraa muutetaan merkkijonolla, joka palautetaan GoHelloGreetings:stä, joka kutsuu hello.Greetings-funktiota.

Huomaa, että voit kutsua GoHelloGreetings:tä myös Swiftistä tuomalla Hello.

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

iOS-simulaattori

Gosta 1.5:stä lähtien iOS-simulaattorissa toimii vain darwin/amd64. Jos haluat käyttää simulaattoria, sinun on määritettävä Xcode niin, että se yrittää ajaa vain 64-bittisiä binäärejä.

Xcode vastaa ARM-binäärien bittinopeutta, kun se ajetaan X86-simulaattorilla. Toisin sanoen, jos määrität Xcoden rakentamaan sekä 32-bittisiä että 64-bittisiä ARM-binääreitä (oletusarvo), se yrittää ajaa 32-bittisiä X86-binääreitä simulaattorilla, mikä ei toimi Go:n kanssa nykyään. Muuta Xcoden rakentamisasetuksia niin, että se rakentaa vain 64-bittisiä ARM-binääreitä, ja simulaattori ajaa amd64-binäärin.

Leave a Reply