Appcelerator Hyperloop: Overview, Architecture & Demo

41
Overview & Architecture HANS KNÖCHEL | AXWAY [email protected] Zürich Edition

Transcript of Appcelerator Hyperloop: Overview, Architecture & Demo

Overview & ArchitectureHANS KNÖCHEL | [email protected]

Zürich Edition

About Me

Hans Knöchel25 years oldTitanium Developer since 201145+ Apps built with Titanium MobileiOS Core-Engineer at Appcelerator since 2015Member of the Hyperloop working-group

hansemannnnhansemannn

Agenda

Pre:HyperloopHyperloop Overview

IntroductionRequirementsFunctionality

Hyperloop ArchitectureNative WrapperMetabaseCLI

RoadmapUpcoming ReleasesFuture Ideas

Demo

Pre:Hyperloop

Pre:Hyperloop

Mobile applications using Titanium MobilePowerful cross-plaform framework

Native modules using Objective-C & Java2 required environments for module development(Advanced) knowledge in Java/Objective-C required

Core API based on Proxy systemLimited API coveragePossible delay after native OS releases because of missing wrappers

Current Situation

Hyperloop :: Overview

Hyperloop Overview - Introduction

Use native APIs in JavaScriptNo Objective-C (iOS) / Java (Android) requiredNo proxy backend programming required

Combine Titanium Mobile and HyperloopAdd a native view to a Ti.UI.* view (and vice versa)

Use 3rd-Party libraries including CocoaPods (iOS)Improved dependency managementExtend with Objective-C and Swift source

3rd-Party libraries on Android using AAR‘s and JAR‘s

Hyperloop Overview - Requirements

Project requirementsTitanium Mobile SDK 5.2.0+Hyperloop 1.x module & plugin<run-on-main-thread> enabled<use-jscore-framework> enabled

Other requirementsiOS: 9.x SDK (or later)Android: API level 23 (or later)JavaScript knowledge

Hyperloop Overview - Functionality

+

Hyperloop Overview - Functionality - iOS

Views

Hyperloop Overview - Functionality - iOS

Methods & Properties

Hyperloop Overview - Functionality - iOS

Delegates

Hyperloop Overview - Functionality - iOS

Delegates

Hyperloop Overview - Functionality - iOS

Constants, Enumerations & Functions

Hyperloop Overview - Functionality - iOS

Blocks

Hyperloop Overview - Functionality - iOS

Own classes

Hyperloop Overview - Functionality - iOS

Third-Party-Libraries (CocoaPods)

Hyperloop Overview - Functionality - iOS

Third-Party-Libraries (CocoaPods)

Hyperloop Overview - Functionality - iOS

Titanium Mobile x Hyperloop iOS

Hyperloop Overview - Functionality - iOS

XIBs

Hyperloop Overview - Functionality

+

Hyperloop Overview - Functionality - Android

Classes

Hyperloop Overview - Functionality - Android

Interfaces

Hyperloop Overview - Functionality - Android

Interfaces

Hyperloop Overview - Functionality - Android

Methods & Fields

Hyperloop Overview - Functionality - Android

Own classes

Hyperloop Overview - Functionality - Android

Own classes

Hyperloop Overview - Functionality - Android

Third-Party-Libraries (JAR‘s/AAR‘s)

Hyperloop Overview - Functionality - Android

Titanium Mobile x Hyperloop Android

Hyperloop :: Architecture

Hyperloop Architecture – Native Wrapper

Native Titanium Mobile moduleHandle Objective-C / Java objectsManage new/existing contexts

Receive wrapper (using the memory address)Map data typesProtect current Hyperloop context from GC

Unit testing

Hyperloop Architecture – Metabase

Used for Hyperloop iOS & AndroidParse native classesCompute native classes, properties etc. in ASTGenerate JS objects to be called from the frontendAlso used to parse 3rd-Party libraries

CocoaPods, local libraries

Hyperloop Architecture – CLI

Validate Hyperloop requirementsGenerate metabaseLook for local resoures (Libraries, XIB‘s, etc.)

Compile resourcesInject in Xcode project

Hook into titanium build system

Hyperloop Architecture – Metabase

Hyperloop :: Roadmap

Hyperloop Roadmap- Upcoming Releases

Hyperloop 2.0.1Release: February 27, 2017

Hyperloop 2.1.0Q2/2017 – together with SDK 6.1.0

Hyperloop Roadmap - Future Ideas

Code completionIdea: Generate a JSCA file like done with the SDKInclude all related API‘s to be auto-completedCould be used in both Appc-Studio and Atom

Improve drop-in Swift-supportAlready support, but with limitations

Live-View supportProblem: You‘d need to

Project on :

Hyperloop Demo: Speech Recognition

https://github.com/hansemannn/Ti.Speech

Thanksfor your kind attention!