Presentation is loading. Please wait.

Presentation is loading. Please wait.

OVERVIEW OF NATIVE MOBILE APPS AND APPCELERATOR TITANIUM IDE

Similar presentations


Presentation on theme: "OVERVIEW OF NATIVE MOBILE APPS AND APPCELERATOR TITANIUM IDE"— Presentation transcript:

1 OVERVIEW OF NATIVE MOBILE APPS AND APPCELERATOR TITANIUM IDE http://www.flickr.com/photos/ourcage/8343799386/

2 Native apps vs mobile web apps Native apps – Install from app store – Binary executables are stored on the phone – Executables directly interact with the user Mobile web apps – Install by hitting web page, maybe bookmarking – Binary executables are stored on a server – Executables generate HTML+CSS+JS for browser

3 A multitude of mobile devices Ancient days-Personal Digital Assistants (PDAs) – Psion Organizer, Simon (first smartphone-1992), PalmPilot, Apple Newton – Typical limitations of PDAs… No support for making phone calls Inaccurate touch input (needed a stylus) Short battery life (recharge every day) Limited wireless support (usually had to "dock")

4 Rise of the smartphone Vastly improved capabilities – Sensors: GPS, accelerometers, gyroscopes, accurate touch input, camera, etc. – Output: High-resolution screens, good audio – Chipsets: Good CPU, wireless+3G, flash RAM Plenty of options… – iOS, Android, Blackberry, Windows, Ubuntu, …

5 Survey of over 2000 developers (2010 Q4 Mobile Developer Report)Q4 Mobile Developer Report http://assets.appcelerator.com.s3.amazonaws.com/docs/Appcelerator-IDC-Q4-Mobile-Developer-Report.pdf

6 Job openings as of Q1 2014 AndroidiOS On dice.com24392632 On indeed.com1544515374 Android Software Engineer salary: $96,000 iOS Software Engineer salary: $102,000 Starting salaries http://www.itcareerfinder.com/brain-food/it-salaries/computer-software-engineer-salary-range.html

7 Android rising… the death of iOS? "We estimate 152.1 million Android smartphones were shipped globally in Q4 2012, nearly doubling from 80.6 million units in Q4 2011," said Neil Mawston, executive director at Strategy Analytics. " Android's share of the global smartphone market has surged from 51% to 70% over the past year, crushing Symbian, Bada and other platforms in its wake. Almost half-a-billion Android smartphones were shipped in total worldwide during 2012. " Android is clearly the undisputed volume leader of the smartphone industry at the present time." http://www.informationweek.com/mobility/smart-phones/android-ios-leave-little-room-for-compet/240147104

8 Don’t be so sure… http://www.techtimes.com/articles/4189/20140308/ios-and-windows-phone-gain-u-s-smartphone-market-share-at-the-expense-of-android-and-blackberry.htm

9 Lessons from the market Platforms come and go from fashion – iOS -> Android -> ? – What is next? Gotta keep your code from going stale Gotta keep your skills from going stale Problem: non-portable native code

10 Differences between one platform and another and another and another and another and another and… Physical differences – Screen size – Textual input – Scrolling Stylistic differences – “Back” and “Cancel” buttons – Placement of navigation bar – Colors

11 How to target multiple platforms? Option 1: Write platform-independent code, interpose libraries Option 2: Write platform-independent code, compile to platform Option 3: Platform-specific frameworks

12 Option 1: Write platform-independent code, interpose libraries Some random platform Your code Platform-specific binary libraries This is basically how JavaScript works in mobile web apps (each browser implements the ECMA specification for JavaScript and implements specified objects with binary libraries)

13 Platform-independent frameworks Option 1: just libraries, no compiler – jQTouch – pure HTML+CSS+JS – PhoneGap – HTML+CSS+JS + binary libraries

14 Option 2: Write platform-independent code, compile to platform Some random platform Your code Compiler Platform-specific binary This is basically how C++ works (a compiler for each platform compiles the source code into binary format accepted by the target operating system and hardware) Runtime library

15 Platform-independent frameworks Option 2: compiler – Appcelerator – write JS, compile to binary – Adobe Air – write ActionScript, compile to Flash In practice, both of these require platform- specific runtime libraries, even though they theoretically could compile code to pure binaries that would not require any runtime library.

16 Option 3: Platform-specific frameworks Some random platform Platform-specific code Compiler Platform-specific binary You need different code for every platform… and probably still need runtime libraries as well. Runtime library Some random platform Platform-specific code Compiler Platform-specific binary Runtime library

17 Option 3: Platform-specific frameworks Examples of platform-specific frameworks – XCode – compiles Objective C to iOS binaries – Android SDK – compiles Java to Android binaries

18 Pros and cons OptionProsCons Platform-indep.: libraries-Use existing JS skills -Very easy to get started -Nearly 100% portable -Lowest performance -Limited API access Platform-indep.: compiler-Probably use your JS skills -Better performance -Some access to binary API -Moderately easy to learn -Nearly 100% portable Platform dependent code-Best performance -Access to full binary API -Maybe new language -Relatively hard to learn -Nearly 0% portable

19 Overview of Appcelerator Titanium Example of Option 2: Write (mostly) platform- independent code, compile to platform Write code in JS Compile to target platform – Works reasonably well for Android & iOS – Some minor differences between platforms

20 A few Titanium APIs Accelerometer Camera Compass Contacts Database Facebook Files Geolocation Gestures Gyroscope Map Network Preferences Sound Touchscreen UI widgets XML & JSON

21 (Crossing out APIs that are hard to access in just a mobile web app) Accelerometer Camera Compass Contacts Database Facebook Files Geolocation Gestures Gyroscope Map Network Preferences Sound Touchscreen UI widgets XML & JSON

22 Pros & cons of choosing Titanium as an example in this class Pros – You already know JS – we can focus on mobile – You can use Titanium on Windows, Linux, Mac – You can compile to Android or iOS Cons – Deploying Titanium to emulator slow Other options: Either (a) work on a Mac and deploy to the iOS emulator, or (b) buy a cheap Android device

23 What is next for you… Windows + Linux users – Install Oracle JDK, set PATH and JAVA_HOME – Install Firefox – Install Appcelerator’s Titanium Studio – Install Android SDK Mac users – Install Xcode – Install Appcelerator’s Titanium Studio – Optional: Install Android SDK

24 Images used in this presentation http://www.flickr.com/photos/samchurchill/5387613247/si zes/l/in/photostream/ http://www.flickr.com/photos/samchurchill/5387613247/si zes/l/in/photostream/ http://www.flickr.com/photos/incredibleguy/5980129538/s izes/s/in/photostream/ http://www.flickr.com/photos/incredibleguy/5980129538/s izes/s/in/photostream/ http://www.digitaltonto.com/wp- content/uploads/2012/01/android-share-of-smartphone- operating-system-market-nov-14-2011- e1328056252645.jpg http://www.digitaltonto.com/wp- content/uploads/2012/01/android-share-of-smartphone- operating-system-market-nov-14-2011- e1328056252645.jpg http://www.indeed.com/trendgraph/jobgraph.png?q=ipho ne%20developer%2C+android%20developer%2C+mobile% 20web%20developer%2C+blackberry%20developer http://www.indeed.com/trendgraph/jobgraph.png?q=ipho ne%20developer%2C+android%20developer%2C+mobile% 20web%20developer%2C+blackberry%20developer http://www.flickr.com/photos/eklem/6727262207/sizes/z/i n/photostream/ http://www.flickr.com/photos/eklem/6727262207/sizes/z/i n/photostream/


Download ppt "OVERVIEW OF NATIVE MOBILE APPS AND APPCELERATOR TITANIUM IDE"

Similar presentations


Ads by Google