matcha

package module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 27, 2017 License: Apache-2.0 Imports: 2 Imported by: 0

README

Matcha - iOS and Android apps in Go

gomatcha.io

Matcha is in early development! There are many rough edges and APIs may still change. Please file issues for any bugs you find.

What is Matcha?

Matcha is a package for building iOS and Android applications and frameworks in Go. Matcha provides a UI compenent library similar to ReactNative and exposes bindings to Objective-C and Java code through reflection. The library also provides Go APIs for common app tasks.

Examples

settings-example insta-example todo-example

Installation

Matcha requires the following components to be installed. Unfortunately only macOS is supported at this time.

  • Go 1.8
  • Xcode 8.3
  • Android Studio 2.3
  • NDK
  • Protobuf 3.3 - ObjC and Java

To start, fetch the project and install the matcha command.

go get gomatcha.io/matcha/...

We build the Go standard library for iOS and Android with the following command. This may take awhile. The output is installed at $GOPATH/pkg/matcha. If your path doesn't contain $GOPATH/bin, you may need to replace these calls with $GOPATH/bin/matcha.

matcha init

Now build the example project. The output is installed at $GOPATH/src/gomatcha.io/matcha/ios/MatchaBridge/MatchaBridge/MatchaBridge.a and $GOPATH/src/gomatcha.io/matcha/android/matchabridge.aar.

matcha build gomatcha.io/matcha/examples

We can now open the sample iOS project.

open $GOPATH/src/gomatcha.io/matcha/examples/ios-app/SampleApp.xcworkspace

Set the Development Team in Xcode under General > Signing and select SampleApp in the target dropdown in the upper right. Then run the App!

For Android simply open the sample Android Studio project and hit run!

open -a /Applications/Android\ Studio.app $GOPATH/src/gomatcha.io/matcha/examples/android-app/SampleApp

You can try out other examples by replacing "gomatcha.io/matcha/examples/settings New" in AppDelegate.m and MainActivity.java with the name of the example.

Try it out!

Contact us

Documentation

Index

Constants

This section is empty.

Variables

View Source
var MainLocker sync.Locker

Functions

This section is empty.

Types

This section is empty.

Directories

Path Synopsis
Package animate implements animations, easings and interpolaters.
Package animate implements animations, easings and interpolaters.
Package application provides access to application resources.
Package application provides access to application resources.
Package bridge implements the interface between Go and Objective-C. See https://gomatcha.io/guide/native-bridge/ for more details.
Package bridge implements the interface between Go and Objective-C. See https://gomatcha.io/guide/native-bridge/ for more details.
cmd
Package cmd provides supporting functions for the matcha command line tool.
Package cmd provides supporting functions for the matcha command line tool.
matcha
Package matcha provides the implementation for the matcha command line tool.
Package matcha provides the implementation for the matcha command line tool.
Package comm provides primitives for communication.
Package comm provides primitives for communication.
Package examples provides examples for various aspects of the framework.
Package examples provides examples for various aspects of the framework.
animate
Package animate provides examples of how to use the matcha/animate package.
Package animate provides examples of how to use the matcha/animate package.
complex
Package complex provides examples of many matcha subpackages working together.
Package complex provides examples of many matcha subpackages working together.
customview
Package custom provides examples of how to import custom components.
Package custom provides examples of how to import custom components.
customview/proto
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
paint
Package paint provides examples of how to use the matcha/paint package.
Package paint provides examples of how to use the matcha/paint package.
pointer
Package pointer provides examples of how to use the matcha/pointer package.
Package pointer provides examples of how to use the matcha/pointer package.
settings
Package settings provides a skeleton implemention the iOS settings UI.
Package settings provides a skeleton implemention the iOS settings UI.
todo
Package todo provides an example of a basic Todo app.
Package todo provides an example of a basic Todo app.
view
Package imageview provides examples of how to use the matcha/view packages.
Package imageview provides examples of how to use the matcha/view packages.
Package keyboard exposes access to displaying and hiding the keyboard.
Package keyboard exposes access to displaying and hiding the keyboard.
Package layout provides geometric primitives and interfaces for view layout.
Package layout provides geometric primitives and interfaces for view layout.
absolute
Package absolute implements a fixed layout system similar to HTML absolute positioning.
Package absolute implements a fixed layout system similar to HTML absolute positioning.
constraint
Package constraint implements a constraint-based layout system.
Package constraint implements a constraint-based layout system.
full
Package full implements a layout system where the view and all direct children are positioned to the maximum size.
Package full implements a layout system where the view and all direct children are positioned to the maximum size.
table
Package table implements a vertical, single column layout system.
Package table implements a vertical, single column layout system.
Package paint implements view display properties.
Package paint implements view display properties.
Package pointer implements gesture recognizers.
Package pointer implements gesture recognizers.
Package proto is a generated protocol buffer package.
Package proto is a generated protocol buffer package.
app
Package app is a generated protocol buffer package.
Package app is a generated protocol buffer package.
env
Package env is a generated protocol buffer package.
Package env is a generated protocol buffer package.
keyboard
Package keyboard is a generated protocol buffer package.
Package keyboard is a generated protocol buffer package.
layout
Package layout is a generated protocol buffer package.
Package layout is a generated protocol buffer package.
paint
Package paint is a generated protocol buffer package.
Package paint is a generated protocol buffer package.
pointer
Package pointer is a generated protocol buffer package.
Package pointer is a generated protocol buffer package.
text
Package text is a generated protocol buffer package.
Package text is a generated protocol buffer package.
view
Package view is a generated protocol buffer package.
Package view is a generated protocol buffer package.
view/android
Package android is a generated protocol buffer package.
Package android is a generated protocol buffer package.
view/ios
Package ios is a generated protocol buffer package.
Package ios is a generated protocol buffer package.
Package text implements text styling.
Package text implements text styling.
Package view provides the component library.
Package view provides the component library.
ios
Package ios implements a native ios views.
Package ios implements a native ios views.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL