Upload
jay-graves
View
350
Download
0
Embed Size (px)
Citation preview
What’s New in Hybrid App Development
Jay Graves - CTO POSSIBLE Mobile@skabber
Native Apps Are the Best!SO WHY ARE WE TALKING ABOUT HYBRID?
• Times Change • Technology moves forward
3 Classes of Hybrid App Platoforms
• The Wrapper • Any Other Language • Shared Code
What is not new?BUT STILL AROUND AND GETTING UPDATES
• Phone Gap
• Ruby Motion
• Xamarin
PhoneGapOR IS IT CORDOVA?
• Wrapper App
• HTML 5, JavaScript, CSS
• iOS, Android, Fire, Blackeberry 10, Firefox OS
• Ubuntu, Windows Phone 8, Tizen
• Adobe & Apache License
PhoneGap
“I think a big reason why PhoneGap was created is that we wanted to get back to building web apps and using HTML, CSS and JavaScript and not get locked in to a proprietary vendor platform.”
Ruby Motion
• Any Other Language
• Ruby (obviously)
• iOS, Android, OS X
• Can use 3rd party frameworks on both platforms
• $16.5 a month, $29 a month, Enterprise
Ruby MotionHOW DOES IT WORK?
Xamarin800LB GORILLA
• Any Other Language
• C#
• iOS, Android, OS X, Windows Phone
• 3rd party frameworks must be specially wrapped “components”.
• $25 a month, $83 a month or $158 a month, per developer per platform!
XamarinCOMPONENTS
Xamarin StudioIDE
Xamarin Visual StudioMICROSOFT
Xamarin.iOS Build HostBUILD ON OS X FROM WINDOWS
Xamarin Test CloudDEVICES
Xamarin InsightsANALYTICS
Xamarin UniversityE-LEARNING
What is new?NKOTB
• Silver
• Apportable Tengu
• Go
SilverFROM REM OBJECTS
• Any Other Language
• Swift 1.2
• iOS, Android, Windows
• 3rd party frameworks …. ?
• Free, $799, $4999
Silver FIRE IDE
SilverFIRE IDE
SilverOXIDIZER - CODE CONVERTER
SilverCODE CONVERTER
Apportable TenguBETA
• Any Other Language / Shared Code
• Swift, Obj-C, Java - Android only
• iOS, Android
• 3rd Party Frameworks …?
• Pricing $?
Apportable TenguHOW DOES IT WORK?
Go
Go1.5 RELEASE CANDIDATE
• Shared Code / Any Other Language
• Go (obviously)
• iOS, Android, OS X, Windows, Linux
• 3rd Party Frameworks - Yes
• Free
Go 1.5HOW DOES IT WORK?
• Cross compilation
• Example: compiling for arm from amd64
• gomobile tool
gomobileTHIS IS WHERE WHERE THE MAGIC HAPPENS
go get golang.org/x/mobile/cmd/gomobile
Commands:
bind build a shared library for android APK and iOS app build compile android APK and iOS app init install android compiler toolchain install compile android APK and install on device version print version
gomobileBUILD VS. BIND
• Your package must have a main function.
• Very limited “App” functionality.
• OpenGL, Audio, Sprites.
• No native UI.
• Not very useful at this point.
gomobile build -target=[ios | android ]
gomobileBUILD VS. BIND
• Your package must not have a function.
• Android outputs an .aar archive.
• Wraps Java Native Interface (JNI).
• iOS outputs a .framework.
• Complete with Obj-C header files.
gomobile bind -target=[ios | android ]
Go / iOS ExamplePUTTING IT TOGETHER
Go / iOS ExamplePUTTING IT TOGETHER
Go / iOS ExampleHEADER FILE
Go / iOS ExampleCALLING FROM SWIFT
Go / Android ExamplePROJECT & AAR
Go / Android ExampleIMPORTS
Go / Android ExampleCALLING FROM JAVA
Go Standard LibraryWHAT CAN YOU DO WITH GO?
Go Standard LibraryMY GOD, IT’S FULL OF STARS
runtime
unicode/utf8
io
strings
crypto html
time
image os
zip
sql
csv
json
xml mime
rand
templatemail
tls
http
testing
url
GoDOWNSIDES
• Very early days.
• Only a subset of Go types are supported.
• int, float, string, bool
• functions, interfaces, structs
• Work in progress
• Debugging.
• Tooling
• Bitcode? •
Questions?
Jay Graves - CTO POSSIBLE Mobile@skabber