Mobile App Development on Multiple Platforms Using Titanium Campus Compass Team Student Led Seminar Adam Plisch, Brian Russell, Jonathan LeFeber.

Slides:



Advertisements
Similar presentations
Intro to Android and iOS CS-328 Dick Steflik. The Players Android – Open source mobile OS developed ny the Open Handset Alliance led by Google. Based.
Advertisements

Programming Mobile Applications with Android
Chapter 6 Preparing and Publishing Applications. Chapter 6 Lessons 1.Publish movies 2.Reduce file size to optimize a movie 3.Create a preloader 4.Publish.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
UFCFX5-15-3Mobile Device Development iOS Development Framework.
Mobile Application Development
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
Friday, August 29, 2014 CSCI 351 – Mobile Applications Development.
UFCFX5-15-3Mobile Device Development iOS Development Review.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
By Ms.A.C.Sumathi AP(SG)/ Dept of CSE SNS College of Engineering, CBE.
The PhoneGap History Doncho Minkov Telerik Academy academy.telerik.com Technical Trainer
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
© Strategic Mapping & Data Services LLC – Dr. Michael Stachiw – February 2012© Strategic Mapping & Data Services LLC Android Programming Dr. Michael A.
SEEM4570: XAMPP, Eclipse, Summary of Html Kangfei Zhao Room 711,ERB
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Android Introduction Platform Overview.
Android and Eclipse Thaddeus Diamond CPSC 112. A Quick Introduction Eclipse is an IDE (Integrated Development Environment Open Source Much more full-featured.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Vs. Ease of Developing 3 rd Party Applications. Points of Interest Closed Source vs. Open Source – Does It Matter? Objective-C vs. Java – Implementation.
Chapter 1: Voilà! Meet the Android
FINAL PRESENTATION SYDNEY TOUR. Divya Nalla Raja Kandasamy RajaShekar Donti Ren Zhu Sadah Omar Sulaiman
Introduction to Mobile Programming. Slide 2 Overview Fundamentally, it all works the same way You get the SDK for the device (Droid, Windows, Apple) You.
Java Mobile Apps with GWT & PhoneGap Josh Marinacci, webOS Developer Advocate.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Ali Shahrokni Application Components Activities Services Content providers Broadcast receivers.
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Android for Java Developers Denver Java Users Group Jan 11, Mike
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
Presented By: Muhammad Tariq Software Engineer Android Training course.
Mobile Device Programming
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Monday, August 31, 2015 CSCI 351 – Mobile Applications Development.
Social Media Apps Programming Min-Yuh Day, Ph.D. Assistant Professor Department of Information Management Tamkang University
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
JAVA Programming “When you are willing to make sacrifices for a great cause, you will never be alone.” Instructor: รัฐภูมิ เถื่อนถนอม
The way of hybrid mobile development Hybrid Mobile Applications Telerik Software Academy
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
Created by Presented by James Schultz Titanium. What is Titanium? An open, extensible development environment for creating beautiful native apps across.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
If you are thinking about developing mobile application for your customer, this is an important aspect to consider the platform.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
APP DESIGN AND DEVELOPMENT WITH THE IONIC FRAMEWORK Chuck Leone
Accelerometer based motion gestures for mobile devices Presented by – Neel Parikh Advisor Committee members Dr. Chris Pollett Dr. Robert Chun Dr. Mark.
Build Cross-Platform Mobile Apps Using Visual Studio A Telerik webinar by Jeffrey T. Fritz March 27, 2014 AND.
Android apps development - Eclipse, Android SDK, and ADT plugin Introduction of.
Guide To Develop Mobile Apps With Titanium. Agenda Overview Installation of Platform SDKs Pros of Appcelerator Titanium Cons of Appcelerator Titanium.
CHAPTER 1 part 1 Introduction. Chapter objectives: Understand Android Learn the differences between Java and Android Java Examine the Android project.
Introduction to Android Chapter 1 1. Objectives Understand what Android is Learn the differences between Java and Android Java Examine the Android project.
COM594: Mobile Technology Practical – Week 1 Android and Android Studio.
Mobile Device Development
ET-570 Smart Phone Apps.
CSCI 351 – Mobile Applications Development
Android Studio, Android System Basics and Git
Android.
iOS Development Framework
CSCI 351 – Mobile Applications Development
CA16R405 - Mobile Application Development (Theory)
CMPE419 Mobile Application Development
CMPE419 Mobile Application Development
Presentation transcript:

Mobile App Development on Multiple Platforms Using Titanium Campus Compass Team Student Led Seminar Adam Plisch, Brian Russell, Jonathan LeFeber

Team/Project Introduction Project: Campus Compass Mobile App Android and iOS app for Cedarville Admissions Department Designed to provide information about Cedarville as well as directions Team and Roles: Adam Plisch: GUI guru, on-campus connections and testing Brian Russell: Data master, in-depth code analysis and development environment Jonathan LeFeber: Team leader and head of organization/communication

Seminar Introduction Titanium, Difficulties with Cross-Platform Development, Handling These Difficulties

Titanium Development Environment Free-to-use multi-platform development environment Handles multiple target OSs with (mainly) one set of code Write your App in Javascript Ports out to iOS, Android, Blackberry and HTML5 versions Can be run on Mac or PC

Difficulties With Cross-Platform Development Code is being ported from Javascript to several different languages Restricts what can be done Functionality added with environment-specific APIs Designing for a large variety of device configurations Different hardware specifications and software options available depending on device Special ways of handling platform-specific code within the development environment

Handling These Difficulties Built in functions/APIs in the development environment Using special cases to determine available features/settings Simplifying everything as much as possible Can result in convoluted code

Cross-Platform Development The Development Environment

Requirements iOS and Android have specific development paths and environments Titanium works within these processes

iOS Applications built with Xcode using Objective-C iOS SDK iOS Simulator Xcode obtained via Apple App Store, others obtained via Xcode Requires OSX

Android C allowed, but limits targets Java preferred, requires JDK Android SDK Android Emulator Eclipse is endorsed Java IDE, but not necessary

Titanium Titanium uses Javascript and provides libraries with access to platform functionality IDE with debugging capabilities on both real and virtual devices

Cross-Platform Development Handling Cross-Platform Issues

Differences between Android and iOS Titanium handles most differences between iOS and Android behind the scenes, but not all of them Titanium.Platform.name can be used in an if-statement to make platform specific decisions

API Examples Example 1: Titanium.Platform.openURL(‘tel:’+phoneNum); Example 2: var = Titanium.UI.create Dialog(); .open() Example 3: var button = Titanium.UI.createButton(); Example 4: var view = Titanium.UI.createView();

Some Differences not handled by Titanium Back button Android’s has a back button implemented in hardware and needs no added code iPhone requires the addition of a navigation bar at the top of your app which can include a simple back button Gradient colors Only supported by iOS Set a gradient image as the background You can review the whole API at:

GUI While Titanium.Platform.name allows you to separate functionality by platform, only careful planning can make a robust GUI that works on all devices There are many different types and sizes of devices for both Android and iOS Screen resolution and orientation provide added challenge There are 2 different screen sizes and 3 different resolutions for iPhone, and a really wide variety for Android Not even counting tablets!

GUI – Dynamic Sizing Titanium provides a call to get the height and width of the current platform Titanium.Platform.displayCaps.platformWidth Titanium.Platform.displayCaps.platformHeight Start by dividing these values into separate views Titanium.UI.SIZE Titanium.UI.FILL Each view has its own height and width and an array of children Each child is confined to a maximum height and width of the parent view Can contain text, images, or buttons

GUI – Portrait-mode only If your app does not support Landscape mode, you must account for what happens when your app launches from a device held in landscape mode Your platform height and width values will be reversed The API does not support a call to determine orientation If height > width, portrait mode Else, landscape mode

GUI – Splash Screen Required for all apps in iOS Displays an image while the rest of the application loads in the background If your portrait-mode only app is launched from a device in landscape mode, your splash screen will rotate There is no good solution to this in Titanium You could use a black splash screen to get around this problem

GUI – Font Size Every other aspect of a GUI is a percentage of its parent. What about font size? A font size of 18 will use the same number of pixels on any device Density Pixels 1 dp should look the same relative to the rest of the GUI on any device Javascript is not a strongly-typed language fontsize = 18 + “dp”;

Cross-Platform Deployment Getting your iOS and Android Apps compiled and out there

Overall Compilation Process Platform project is created Javascript code is optimized Code is either compiled or stored to be interpreted Result is packaged and signed

iOS Compilation Javascript code compressed and included as a string in a C file Interpreted at runtime through interpreter provided by Titanium

Android Compilation Javascript compiled to Java bytecode with Rhino Runs directly on Android’s Dalvik VM

Deployment iOS requires distribution through App Store Android has official Play Store, but can download apps from anywhere Both require certified accounts App Store has a manual review process Play Store has automated dynamic analysis

In Closing… Summary of experience, what you’ll need, where to get started

Summary of Experience

What You’ll Need PC Mac if developing for iOS Apple Developer Account to test on iOS Apple Developer License to deploy to App Store Google Development License to deploy to Play Store Testing devices Best to have one of every type of device you plan on deploying to iPhone, iPad, Android phone, Android tablet

Where to get started Example program Titanium’s ‘kitchen sink’ app Great resources to help you get started

Any questions?