• Stars
    star
    2,717
  • Rank 16,774 (Top 0.4 %)
  • Language
    Objective-C
  • License
    Other
  • Created over 15 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

πŸš€ Native iOS and Android Apps with JavaScript

Titanium SDK

Welcome to the Titanium SDK open source project. Titanium SDK provides a mature platform for developers to build completely native cross-platform mobile applications using JavaScript.

Currently supported native platforms are iOS and Android.

Titanium SDK is licensed under the OSI approved Apache Public License (version 2). Please see the LICENSE file for specific details.

Table of Contents

Sponsors

This project wouldn't be possible without the help of our world wide developer community. Become a sponsor today and benefit from 1:1 sessions with the core team, exclusive modules, merchandise and more!

Learn more about sponsoring TiDev, the organization behind the Titanium SDK, here πŸš€.

Sebastian KlausRodrigo FarfΓ‘nJason KneenMatt Delmarterdlewis23Daniel EthierAvinash DalviJoe KniesekVittorio SorberaMarcus OlovssonSynaxon AGAlessandro La RoccaReshopperGusJason David MillerMichael ZaladonisRichard LustembergMighty GmbHFruugulKorelogic LimitedRomeo ManzurLibemax

Features

With Titanium SDK, you use JavaScript to code your application. Titanium's compiler will compile your application code into an efficient native executable for each target mobile platform.

  • Native apps built using JavaScript (no hybrid, no embedded WebView)
  • Apps are compiled and run locally with full offline support
  • Support for native platform UI controls (TabGroup (iOS), ActionBar (Android), AppBar (Windows), ...)
  • Support for watchOS targets
  • Support for in-application SQL database
  • Support for Geolocation (compass, geolocation, forward/reverse lookup)
  • Support for Camera (taking Photos, playing and recording Video)
  • Support for Calendar (creating & fetching Events)
  • Support for 3D-Touch (Peek and Pop, Application Shortcuts, ...)
  • Support for Photo Album (reading and writing)
  • Support for Contacts Database / Address Book
  • Support for Streaming Audio and Recording Audio, Audio Input Levels, Mic etc
  • Support for Vibration
  • Support for Social APIs such as Facebook, Twitter, etc.
  • Support for Yahoo YQL
  • Support for Web Services via REST, SOAP
  • Support for native Maps
  • Support for Push Notifications
  • Support for In-Application Email
  • Support for In-Application SMS, Telephone
  • Support for Filesystem (create, read, write, etc.)
  • Support for Gestures (such as Shake and Pinch)
  • Support for Platform and Device capabilities
  • Support for complex native views such as Coverflow, Image Views, Table Views, Grouped Views, Composites, etc.
  • Support for Web Views incorporating HTML5, CSS etc.
  • Completely extensible via Module API and Hyperloop for building your own controls or extending capabilities

And much, much more (see our Documentation for more infos).

Hyperloop

Use Hyperloop, our latest addition to the Appcelerator Platform, to extend your Titanium SDK apps by native API's using JavaScript. Prior to Hyperloop, you would use native modules to extend the Titanium SDK API. With Hyperloop, you are now able to implement native classes, 3rd-Party libraries (Cocoapods, local frameworks, .aar files) and more directly into your apps. Hyperloop is available for iOS, Android and Windows Phone (Tech Preview).

Features

Cross-Platform Reuse

Build and maintain apps in a fraction of the time with up to 95% code reuse.

Direct API Access

Access 100% of platform APIs directly, with instant support for each new OS release.

JavaScript Everywhere

Create mobile apps using the world’s most popular programming language.

3rd-Party Libraries

Incorporate 3rd-party native libraries using JavaScript, with no changes required.

Custom Animations

Easily create complex custom effects like dynamic animations using JavaScript.

Run Native

Mobile app development for every major mobile OS – with no hybrid compromises.

Example

Create a native view in iOS and Android:

// iOS
var view = new UIView();

// Android
var view = new View(activity);

Getting Started

Check out our Hyperloop Sample App and Hyperloop Programming Guide to get started with Hyperloop today!

Alloy

Alloy is the MVC application framework built on top of Titanium SDK. It is optional. It rocks. Check it out if you're considering using Titanium SDK. It is also a separate open source project available under Apache Public License.

Example

Manage your application scope by separating your code into different models, views, controllers and more:

index.xml (View)

<Alloy>
  <Window title="Titanium SDK and Alloy">
    <Button onClick="handleClick" id="myButton">Click me!</Button>
  </Window>
</Alloy>

index.js (Controller)

function handleClick() {
  alert('Hello from the Controller!');
}

index.tss (Style)

Window: {
  backgroundColor: 'white'
}

"#myButton": {
  width: 200,
  height: 30,
  backgroundColor: 'green'
}

Getting Help

There are a number of ways to get help with Titanium SDK.

Official Documentation, Tutorials and Videos

Please visit the official documentation site at https://titaniumsdk.com/ for the latest and historical documentation on Titanium SDK, Alloy and other modules.

Slack / Developer Community

Community support and discussion about Titanium SDK is available on Slack at TiSlack or at GitHub Discussions.

Twitter

Please consider following @Titanium SDK and @TiDev on Twitter for updates.

Commercial Support, Licensing

We give our software away for FREE! In order to do that, we have programs for companies that require additional level of assistance through training or commercial support, need special licensing or want additional levels of capabilities. Please visit the TiDev Website for more information about TiDev or email [email protected].

Contributing

Titanium SDK is an open source project. Titanium SDK wouldn't be where it is now without contributions by the community. Please consider forking Titanium SDK to improve, enhance or fix issues. If you feel like the community will benefit from your fork, please open a pull request.

To protect the interests of the Titanium SDK contributors, Appcelerator, customers and end users we require contributors to sign a Contributors License Agreement (CLA) before we pull the changes into the main repository. Our CLA is simple and straightforward - it requires that the contributions you make to any Appcelerator open source project are properly licensed and that you have the legal authority to make those changes. This helps us significantly reduce future legal risk for everyone involved. It is easy, helps everyone, takes only a few minutes, and only needs to be completed once.

You can digitally sign the CLA online. Please indicate your email address in your first pull request so that we can make sure that will locate your CLA. Once you've submitted it, you no longer need to send one for subsequent submissions.

Building Locally

If you'd like to build the SDK locally you can use the included npm scripts:

npm ci
npm run cleanbuild

The build and package commands will default to all target platforms on your host OS unless explicitly specified. (i.e. Android, iOS on macOS; Windows and Android on Windows). It will compile, package and install the locally-built SDK for you as well, so you can test it in your own applications without any further procedures.

The build command will look for the Android SDK directory path via the $ANDROID_SDK env variables if not explicitly passed using command line arguments.

You can use the -h flag to display the full list of comands and options.

npm ci
npm run cleanbuild -- [platform1] [platform2] --android-sdk /opt/android-sdk /Users/build/android-sdk-macosx

Unit tests

We have a unit test suite intended to run across all supported platforms.

We have npm scripts set up to run a full clean, build, package, symlinked install, ti sdk select the built sdk, and then run the unit test suite:

npm run test:android
npm run test:iphone
npm run test:ipad

How it works

The test suite generates a single Titanium SDK project targeting the specified platform(s), builds the project for emulator, launches the app on the emulator and then runs a series of tests defined via ti-mocha and should.js.

The tests spit out their results to the console log, and the test scripts listen to the logs to gather the results. We then generate an overview on the console as well as a junit report xml file (to be consume by CI build systems like Jenkins).

How to modify the tests locally and in your PRs

The tests folder contains the test suite. Any files living within that directory are copied on top of the test app's structure.

Upgrade gradle and gradle plugin

The gradle (tool, build system) and gradle plugin (plugin that adds several features that are specific to building Android apps) version numbers are located in:

  • android/build.gradle
  • android/gradle/wrapper/gradle-wrapper.properties
  • android/templates/build/root.build.gradle.

You can run ./android/gradlew wrapper --gradle-version 7.4.2 --distribution-type all to update the gradle tool. It will download the version, change the gradle-wrapper.properties link, update the gradlew file and the gradle-wrapper.jar. To update the plugin to a newer version (check https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google) you have to change the build.gradle and root.build.gradle from the links above. When you change the gradle plugin make sure to look at the Compatibility section at https://developer.android.com/studio/releases/gradle-plugin#compatibility-7-1-0 and adjust the android build tools section in android/package.json. If needed make sure the other libraries e.g. the kotlin version in build.gradle are working with the current setup.

After you've made the changes and compiled the SDK make sure to run the test suite, build the kitchensink and hyperloop example app. Create a and build a module (java and kotlin) and run those in a test app too.

Update packaged modules

Some modules like ti.map or ti.facebook are included with the SDK. To update to the latest versions you have to edit the links in support/module/packaged/modules.json and run node build/scons-modules-integrity.js. This will download the files and update the integrity values.

Contributing

Interested in contributing? There are several ways you can help contribute to this project.

New Features, Improvements, Bug Fixes, & Documentation

Source code contributions are always welcome! Before we can accept your pull request, you must sign a Contributor License Agreement (CLA). Please visit https://tidev.io/contribute for more information.

Donations

Please consider supporting this project by making a charitable donation. The money you donate goes to compensate the skilled engineeers and maintainers that keep this project going.

Code of Conduct

TiDev wants to provide a safe and welcoming community for everyone to participate. Please see our Code of Conduct that applies to all contributors.

Security

If you find a security related issue, please send an email to [email protected] instead of publicly creating a ticket.

Stay Connected

For the latest information, please find us on Twitter: Titanium SDK and TiDev.

Join our growing Slack community by visiting https://slack.tidev.io

Legal

Titanium is a registered trademark of TiDev Inc. All Titanium trademark and patent rights were transferred and assigned to TiDev Inc. on 4/7/2022. Please see the LEGAL information about using our trademarks, privacy policy, terms of usage and other legal information at https://tidev.io/legal.

More Repositories

1

alloy

Alloy is an MVC framework for the Appcelerator Titanium SDK
JavaScript
959
star
2

titanium-cli

The Titanium Command Line (CLI) project
JavaScript
221
star
3

node-ios-device

Queries connected iOS devices and installs apps
C++
116
star
4

ti.worker

Use Multi-Threading / Worker Threads in Appcelerator Titanium.
Objective-C
96
star
5

hyperloop-examples

Native Hyperloop examples in Titanium.
JavaScript
79
star
6

kitchensink-v2

An Alloy-based Titanium sample app using ES6+ and more!
JavaScript
76
star
7

ioslib

IOS Utilities Library
JavaScript
68
star
8

ti.imagefactory

The ImageFactory Module for Appcelerator Titanium
Java
68
star
9

ti.storekit

Use the native iOS StoreKit API for In-App-Purchasing with Appcelerator Titanium.
C
68
star
10

ti.barcode

QR and Barcode Scanner
Objective-C
67
star
11

ti.admob

Use the Google AdMob SDK on iOS and Android with Titanium
Objective-C
52
star
12

ti.facebook

Support for the native Facebook SDK in Titanium using JavaScript
Objective-C
50
star
13

ti.map

Use native Apple Maps & Google Maps in iOS and Android with Axway Titanium
Java
49
star
14

titanium-vue

Use Vue.js to easily create native mobile apps with Axway Appcelerator Titanium.
JavaScript
44
star
15

ti.moddevguide

Appcelerator Titanium native Module Guide
JavaScript
40
star
16

titanium-identity

A collection of API's to authenticate with your device: Keychain/Keystore, Touch ID and Face ID
Java
39
star
17

vscode-titanium

Titanium SDK development tools and UI package for Visual Studio Code.
TypeScript
37
star
18

pulsar-titanium

Titanium SDK development tools and UI package for the Pulsar text editor
JavaScript
36
star
19

v8_titanium

The patches and revision of v8 we use in Titanium Mobile
Shell
33
star
20

titanium-web-dialog

Use the SFSafariViewController (iOS) and Chrome Pages (Android) in Titanium.
Java
30
star
21

titanium-apple-sign-in

Use the iOS 13+ Apple Sign In API with Titanium
Swift
29
star
22

ti.compression

Compress your files to reduce storage
C
29
star
23

ti.paint

Touch-based painting with the Titanium SDK.
CMake
29
star
24

ti.nfc

Read Android NFC sensors with the Titanium SDK.
Java
25
star
25

titanium-socketio

Use the native Socket.io SDK's with Axway Titanium.
JavaScript
25
star
26

docs-devkit

Tooling for Axway Appcelerator open source documentation. https://titanium-docs-devkit.netlify.com/
JavaScript
24
star
27

gittio

Search & Install all Titanium Modules and Alloy Widgets on GitHub
JavaScript
24
star
28

titanium-onboarding

Material design UI slider for onboarding process
Swift
22
star
29

ti.playservices

Titanium module for Google Play Services
JavaScript
19
star
30

titanium-angular

Use the Titanium platform with Angular
TypeScript
17
star
31

organization-docs

To keep the public documents for the governance of the TiDev organization.
15
star
32

hyperloop-utilities

A collection of CommonJS modules to be used in Appcelerator Hyperloop.
JavaScript
15
star
33

ti.coremotion

Support for the native iOS CoreMotion framework in Appcelerator Titanium
JavaScript
15
star
34

ti.dragdrop

Use iOS 11 drag and drop interactions in Appcelerator Titanium.
Objective-C
14
star
35

titanium-docs

We use VuePress for Guides and API docs.
JavaScript
13
star
36

titanized

Modernized APIs and utilities for Axway Titanium
TypeScript
11
star
37

node-appc

Common Library for Node.js
JavaScript
11
star
38

titanium-cli-plugin-boilerplate

Titanium CLI Plugin Boilerplate
JavaScript
11
star
39

titanium-vue-sample

Sample app showing Vue.js on Titanium
Vue
11
star
40

ti.es6

ES6 wrapper for the Titanium API
JavaScript
11
star
41

appc-daemon

The most amazing daemon on Earth
JavaScript
8
star
42

liveview

Titanium LiveTi (live preview of Titanium applications on device)
JavaScript
7
star
43

ti.urlsession

Use the NSURLSession API to download and upload files in Titanium.
Objective-C
7
star
44

hyperloop.next

Hyperloop Next version (we forgot the version number at this point)
JavaScript
7
star
45

appcelerator.social-share

A collection of API's to Social Share
Swift
7
star
46

appcelerator.ble

A collection of API's to connect and communicate with BLE compatible devices via Bluetooth LE
JavaScript
7
star
47

eslint-plugin-alloy

Alloy specific rules for ESLint
JavaScript
6
star
48

appc-tasks

Provides an extendable base interface for file based build tasks
JavaScript
6
star
49

androidlib

Android Utility Library
JavaScript
6
star
50

ti.previewinteraction

Use the iOS 10+ UIPreviewInteraction API in Titanium!
Objective-C
6
star
51

node-titanium-sdk

JavaScript
5
star
52

ti.crypto

JavaScript
5
star
53

appcelerator.encrypteddatabase

An encrypted version of the Ti.Database namespace
C
5
star
54

titanium-vdom

A virtual DOM implementation for Titanium
TypeScript
4
star
55

appcd-dump-viewer

Appc Daemon Dump Viewer
Vue
4
star
56

titaniumlib

Titanium SDK Utility Library
JavaScript
4
star
57

appcelerator.bluetooth

A collection of API's to connect and communicate with device via Bluetooth
JavaScript
4
star
58

winreglib

Windows Registry Utility Library
C++
4
star
59

appcd-plugin-webpack

Manage Webpack builds with appcd
JavaScript
4
star
60

APSHTTPClient

APSHTTPClient (TiHTTPClient)
Objective-C
4
star
61

titanium-webpack-devkit

Development tools to bundle Titanium apps with Webpack
JavaScript
4
star
62

module-search-www

Search native Titanium modules with ease!
TypeScript
3
star
63

webpack-plugin-alloy

Titanium Alloy Plugin for Appcd Webpack
JavaScript
3
star
64

karma-titanium-launcher

Run your unit tests inside Titanium with Karma
JavaScript
3
star
65

ti.geofence

Java
3
star
66

appcd-plugin-template

A project template for creating Appc Daemon plugins.
JavaScript
3
star
67

ti.imageview

A CommonJS module to extend the "Ti.UI.ImageView" by request headers
JavaScript
3
star
68

appcelerator.https

This Titanium module prevents "Man-in-the-Middle" attacks when used with Ti.Network.HTTPClient
Objective-C
3
star
69

appcd-plugin-android

Android service for the Appc Daemon
JavaScript
2
star
70

titanium-karma-client

Karma test runner client for Titanium
JavaScript
2
star
71

alloy-loader

Webpack loader for Alloy components
JavaScript
2
star
72

titanium-editor-commons

Commons package for the Atom plugin and VS Code Extension for Titanium
TypeScript
2
star
73

appcd-plugin-system-info

The Appc Daemon plugin for detecting system info
JavaScript
2
star
74

jdklib

JDK Utility Library
JavaScript
2
star
75

ti.framemetrics

Use the Android N FrameMetrics API in Axway Titanium
Java
2
star
76

titanium-navigator

Enables Angular and Vue.js routing in Titanium
TypeScript
2
star
77

appcd-plugin-jdk

JDK service for the Appc Daemon
JavaScript
1
star
78

tidev-cla

TiDev Contributor License Agreement Portal
CSS
1
star
79

jira-archive

Appcelerator JIRA Archive
JavaScript
1
star
80

tidev-cla-action

TiDev CLA GitHub Action
JavaScript
1
star
81

webpack-plugin-babel

Babel plugin for Appcd Webpack
JavaScript
1
star
82

babel-preset-app

Default Babel preset for Titanium app projects
JavaScript
1
star
83

ti.udp

Provides access to the UDP protocol for sending packets across a network.
Objective-C++
1
star
84

tidev.github.io

HTML
1
star
85

appcd-plugin-ios

iOS service for the Appc Daemon
JavaScript
1
star
86

babel-plugin-transform-titanium

babel plugin for optimizing titanium code
JavaScript
1
star
87

RFC

This is the official home of RFCs related to the TiDev foundation and related projects.
1
star
88

tidev-www

The tidev.io website
TypeScript
1
star