Titanium Comparison

Download Report

Transcript Titanium Comparison

Dane Baldwin Nathan Brown David Riggleman

    Titanium is a cross platform mobile development tool Allows the java script to be compiled into native mobile code It now powers over 1,000 native apps per month Gives easy access to over 300 API’s and location information

 ◦ ◦ ◦ ◦ ◦ The top 5 RhoMobile Appcelerator (Titanium) MoSync PhoneGap WidgetPad

 ◦ ◦ ◦ ◦ ◦ Titanium Programming Language  JavaScript Debugger support   Yes (just this year) Emulator 3 rd IDE party emulators   Internal SDK Cross platform iOS, Black Berry, and android

 ◦ ◦ ◦ ◦ ◦ RhoMobile Programming Language  Ruby and HTML Debugger support  Yes Emulator   Run in win32 runner IDE  xCode or Eclipse Cross platform iOS, Mobile Windows, Black Berry, Symbian and android

◦ ◦ ◦ ◦ ◦ ◦ MoSync Programming Language  C, C++, Lua, HTML , CSS, JavaScript(experimental) Debugger support  Yes Emulator  Yes IDE   Eclipse, Visual Studio, MoBuild with text editors Cross platform Java ME, Mobin, Smartphone 2003, iOS, Mobile Windows, Black Berry, Symbian and android

◦ ◦ ◦ ◦ ◦ ◦ PhoneGap Programming Language  HTML, CSS, Java Debugger support  Yes Emulator   None included (can use 3 rd IDE  None included Cross platform party) iOS, Palm, Black Berry, Symbian and android

◦ ◦ ◦ ◦ ◦ ◦ WidgetPad Programming Language  CSS, HTML and JavaScript Debugger support  Yes Emulator   Could not find a good answer on this IDE  Yes, its own web based IDE Cross platform iOS, Android and WebOS

 ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ Titanium Studio new features April 4 th (free in June): iOS and Android debugging Code completion for Titanium Mobile SDK methods Run, Deploy and Package Titanium Mobile and Titanium Desktop Applications Full-featured HTML, JS, CSS, Ruby, PHP, and Python editing support FTP/SFTP/FTPS/Capistrano deployment options Integrated Git Support Integrated Terminal Fully scriptable and customizable

 The Titanium website states “While Titanium applications are written using HTML, CSS and JavaScript – they are compiled into native applications (dependent on the mobile device) and run on the device as standalone applications. These applications have a very powerful API for accessing mobile features such as GPS and Camera, on-device Databases and other awesome features.”

 ◦ ◦ ◦ Titanium workings Pre-compiler Front-end compiler Platform compiler and packager  ◦ ◦ Pre-compiler Optimize/format Creates a hierarchy for all of the APIs

 ◦ ◦ ◦ Front-end Compiler Generate platform specific native code Create native projects (if it needs to) Builds any specific code that is necessary to compile  ◦ ◦ Platform Compiler and Packager Uses the each native platform tool to compile Packages the app for running

 ◦ ◦ ◦ ◦ Bad things Moving too quickly Support Debugger glitches After compile glitches

 ◦ ◦ ◦ ◦ ◦ Good things Compiles to native code Progressive Many Users Documentation Developer Blog  http://developer.appcelerator.com/blog/

 ◦ ◦ ◦ ◦ Where is Titanium headed Pressing forward at a fast rate Android faster Improvements to everything Introducing Appcelerator’s Open Mobile Marketplace (September 19)

Get out your wrench…

 Python  Git  SCons  Java JDK  Android SDK Tools

 Overview ◦ Programming language  Requirements ◦ Version: 2.6 or greater (Java JDK 6) ◦ Type: 32-bit (sCons)  Recommended path: C:\Program Files\Python[nn : version]

 ◦ ◦ ◦ Overview Version control software native to Titanium Efficient Linux-based  ◦ ◦ Requirements Useful for repository access Optional if you download manually ◦ ◦ Run from Command Prompt No line-ending conversion  Recommended path: C:\Program Files\Git\bin

 Overview ◦ Software construction tool – Python script ◦ Similar to make  Requirements ◦ Must have Python installed first  Recommended path: %Python%\Scripts

 Overview ◦ Programming language  Requirements ◦ Type: 32-bit (Android SDK) ◦ Version: 1.6.0_xx

◦ ◦ JAVA_HOME = C:\Program Files\Java\jdk[n.n.n_xx : version] Both JDK and JRE  Recommended path: %JAVA_HOME%\bin

 Overview ◦ Required for Android emulation  ◦ ◦ Requirements ◦ Match Titanium SDK (see compatibility matrix) ◦ No spaces in path (use C:\Program_Files) ANDROID_SDK = C:\Program_Files\android-sdk windows Delete virtual devices after each update  Recommended path: %Android_SDK%\platform tools

 Install  Log in with username and password  Configure Android SDK settings

As intuitive as a flyswatter…

 Breakpoints  Dynamic Variable Editing  Dynamic Variable Views  Dynamic Call Stack Views  Stepping

The deep, dark insides of Titanium (feat. David Riggleman)

   ◦ ◦ tiapp.xml

◦ ◦ Main application descriptor file Contains information used by packager and runtime README ◦ Describes project ◦ Not included in final application LICENSE.txt

Contains End User License Agreement (EULA) Currently not used in mobile projects

  ◦ ◦ ◦ LICENSE ◦ ◦ Describes Appcelerator License for reference Apache License Version 2 build (Folder) Contains phone specific project files and resources Used for compiling, building, and packaging native distributions of the application Use caution in editing files in this folder  May render application unusable

  ◦ ◦ ◦ ◦ ◦ I18n (Folder) Optional Contains location resources for supporting multiple languages Resources (Folder) Contains all project resources (HTML, JavaScript, images, etc.) All items in folder are packaged and can be used in the application If working with subversion, must currently builder.py script edit the to specify ignored files and folders

 ◦ ◦ ◦ app.js

Most important file Entry point into application (“bootstrap file”) All coding of any mobile application starts here

  Allows for customization of resources for each platform ◦ ◦ Files placed in Resources/PLATFORM/ Resources/android Resources/iphone

  ◦ ◦ Example The file Resources/android/foo.png will override Resources/foo.png

When Titanium compiles a project, only one foo.png file will be included ◦ Directory structure preserved File should be referenced in application as foo.png

 Platform is not specified in reference

 ◦ ◦ Allows for different resolution of pictures depending on capability of device iPhone   Low-res version: myButton.png

High-res version: [email protected]

 In code, both referenced as myButton.png

Android (long and notlong refer to aspect ratio)    res-long-land-hdpi/myButton.png

res-long-port-mdpi/myButton.png

res-notlong-port-ldpi/myButton.png

 ◦ Splash Screen Specified by Default.png

 ◦ Application Icon Controlled by entry in tiapp.xml

 var win = Titanium.UI.createWindow({ title:'My Window', backgroundColor:'#cccccc' }); win.open(); // open window

 var label = Titanium.UI.createLabel({ color:'#999', text:'Hello World', font:{fontSize:20}, textAlign:'center' }); win.add(label); // add label to window win.open(); // open window

 Titanium Comparison/Background ◦ http://en.wikipedia.org/wiki/Mobile_application_development ◦ ◦ ◦ ◦ ◦ ◦ ◦ ◦ http://mashable.com/2010/08/11/cross-platform-mobile development-tools/ http://devlup.com/mobile/cross-platform-mobile-development tools/2416/ http://mobiledevices.about.com/od/mobileappbasics/tp/Top-5 Tools-Multi-Platform-Mobile-App-Development.htm

http://en.wikipedia.org/wiki/Appcelerator_Titanium http://surgeworks.com/blog/lab-mobile/iphone/mobile-apps cross-platform-development-challenge-phonegap-vs-titanium vs-rhodes http://wiki.appcelerator.org/display/guides/The+Titanium+Archi tecture http://developer.appcelerator.com/blog/2011 http://www.toolsjournal.com/tools-world/item/157-10-of-best cross-platform-mobile-development-tools

 http://www.python.org/download/  http://git-scm.com/download  http://www.scons.org/download.php

 http://www.oracle.com/technetwork/java/javase /downloads/index.html

 http://developer.android.com/sdk/index.html

 http://wiki.appcelerator.org/display/guides/Inst alling+on+Windows+7  http://wiki.appcelerator.org/display/guides/Tita nium+Compatibility+Matrix  http://wiki.appcelerator.org/display/guides/Inst alling+on+Windows+7+ +Install+Diagnostics+Output  http://developer.appcelerator.com/blog/2011/0 7/page/2#debugging

 ◦ Application Project Structure http://wiki.appcelerator.org/display/guides/The+Application+Project+Structure  ◦ Hello World Example http://www.sparklepod.com/myblog/appcelerator-titanium-hello-world/  ◦ Ignoring Subversion Files http://developer.appcelerator.com/question/114541/excluding-svn-files