Slide 1

Slide 1 text

Daniel Gallo @DanielJGallo A highly scalable cross-platform mobile app development strategy

Slide 2

Slide 2 text

‣ About me and introduction ‣ HTML5 mobile app frameworks ‣ Where Sencha fits in ‣ Sencha Architect overview ‣ Questions Overview

Slide 3

Slide 3 text

About Me ‣ Daniel Gallo (@DanielJGallo) ‣ Technical Sales Engineer for Sencha ‣ Based in the UK ‣ Using Sencha’s frameworks since 2009 ‣ Joined Sencha in February 2012 ‣ Background in web app development (ASP.NET C#)

Slide 4

Slide 4 text

A highly scalable cross-platform mobile app development strategy

Slide 5

Slide 5 text

‣ Highly scalable - must be simple to extend and support large apps A highly scalable cross-platform mobile app development strategy

Slide 6

Slide 6 text

‣ Highly scalable - must be simple to extend and support large apps ‣ Cross-platform - works on all the major platforms out of the box A highly scalable cross-platform mobile app development strategy

Slide 7

Slide 7 text

‣ Highly scalable - must be simple to extend and support large apps ‣ Cross-platform - works on all the major platforms out of the box ‣ Mobile app - works on mobile and tablet devices A highly scalable cross-platform mobile app development strategy

Slide 8

Slide 8 text

‣ Highly scalable - must be simple to extend and support large apps ‣ Cross-platform - works on all the major platforms out of the box ‣ Mobile app - works on mobile and tablet devices ‣ Development strategy - something that will support you and your projects for the years ahead A highly scalable cross-platform mobile app development strategy

Slide 9

Slide 9 text

The Choices

Slide 10

Slide 10 text

Development choices Plugin-Based HTML5 Native Easily enable cross-platform development Develop a native app for each platform Rely on third- party plugins to function

Slide 11

Slide 11 text

Plugin-Based HTML5 Native Easily enable cross-platform development Develop a native app for each platform Rely on third- party plugins to function

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

So many choices... xui

Slide 14

Slide 14 text

So many choices...

Slide 15

Slide 15 text

Sencha Rapid and easy development of rich web apps for the broadest range of devices from IE6 to the latest tablet

Slide 16

Slide 16 text

Sencha Touch Bundle ‣ Suite of mobile development tools and components: ‣ Sencha Touch - Single page mobile app dev framework ‣ Sencha Architect - HTML5 visual app builder ‣ Sencha Eclipse Plugin - Enhances coding within Eclipse ‣ Sencha Touch Charts - Interactive HTML5 charts ‣ Sencha Mobile Packaging - Device APIs and native wrapping ‣ Support - Technical support, code reviews, bug fix releases

Slide 17

Slide 17 text

Sencha Touch

Slide 18

Slide 18 text

‣ High-performance mobile HTML5 framework for building cross- platform apps ‣ Complete set of appealing and ready-to-use mobile UI components ‣ MVC application pattern ‣ Comprehensive data layer Sencha Touch Mobile HTML5 Framework

Slide 19

Slide 19 text

‣ Build applications that run on Android, Apple iOS, BlackBerry, and Windows Phone 8 ‣ Tizen support coming soon ‣ Native packaging for iOS and Android from Windows and Mac Sencha Touch Mobile HTML5 Framework

Slide 20

Slide 20 text

‣ Bring your data to life without the need for any plugins ‣ Multi-touch gestures allow users to pinch and zoom through data, spin pie charts, pan line charts, and more Sencha Touch Charts

Slide 21

Slide 21 text

Where Sencha Touch Fits In Sencha Touch - Mobile and Tablet Sencha Ext JS - Desktop and Laptop Internet / Intranet Database Server SQL Server Oracle Sybase MySql ... Application Server Java PHP ColdFusion .NET Ruby on Rails ... Web Server IIS Apache Tomcat Websphere ... JSON/XML Transport Layer

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Sencha Architect

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

No content

Slide 36

Slide 36 text

No content

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

No content

Slide 39

Slide 39 text

No content

Slide 40

Slide 40 text

No content

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

No content

Slide 44

Slide 44 text

github.com/DanielGallo/CustomerApp

Slide 45

Slide 45 text

Packaging Apps

Slide 46

Slide 46 text

‣ Build native iOS and Android applications using Sencha Touch 2 ‣ Access native APIs from a Sencha Touch 2 app ‣ Package apps on Windows and Mac Sencha Mobile Packager

Slide 47

Slide 47 text

‣ Device information ‣ In-app purchases ‣ Camera ‣ Connection ‣ Contacts ‣ Geolocation ‣ Notification ‣ Orientation ‣ Push Ext.device.Camera.capture({ success: function(image) { imageView.setSrc(image); }, quality: 75, destination: 'data' }); Sencha Mobile Packager

Slide 48

Slide 48 text

‣ Device information ‣ In-app purchases ‣ Camera ‣ Connection ‣ Contacts ‣ Geolocation ‣ Notification ‣ Orientation ‣ Push Ext.Viewport.add({ xtype: 'list', itemTpl: '{First} {Last}', store: { fields: ['First', 'Last'], data: Ext.device.Contacts.getContacts() } }); Sencha Mobile Packager

Slide 49

Slide 49 text

PhoneGap Build Sencha Mobile Packager Building Your App

Slide 50

Slide 50 text

sencha package build settings.json From command line: Building Your App

Slide 51

Slide 51 text

{ "applicationName": "Simple Camera App", "bundleSeedId": "Q8U8378N9L", "applicationId": "com.danielgallo.cameraapp", "outputPath": "../build/", "versionString": "1.0", "inputPath": "./", "icon": { "57": "resources/icons/icon.png", "72": "resources/icons/[email protected]", "114": "resources/icons/[email protected]", "144": "resources/icons/[email protected]" }, ... Building Your App

Slide 52

Slide 52 text

... "configuration": "Debug", "platform": "iOS", "deviceType": "iPad", "certificateAlias": "iPhone Developer", "minOSVersion": "4.0", "orientations": [ "portrait", "landscapeLeft", "landscapeRight", "portraitUpsideDown" ] } Building Your App

Slide 53

Slide 53 text

From Sencha Architect: Building Your App

Slide 54

Slide 54 text

Building Your App build.phonegap.com

Slide 55

Slide 55 text

App Showcase

Slide 56

Slide 56 text

Customer: Burrows For our developers, the efficiency gain is almost immeasurable. Without Sencha Touch, we would still be working out how to make a momentum-based touch scroller.” What they do Full service communications agency which helps its clients give their customers key information and creative content to inform their purchase decisions. The Problem Help Ford dealers sell cars, while immersing customers in the Ford brand. The Solution Sencha Touch provided a platform that takes full advantage of the real estate a tablet computer has to offer and provided immersive experiences to the user via full screen images, serving video and a wealth of information regarding the Ford brand. The Benefit The cost savings of not developing twice can add up to the hundreds of thousands, and during a recession every penny counts. “

Slide 57

Slide 57 text

Customer: Revolunet With Sencha Touch, we got everything we needed right out of the box — in a clean, homogeneous API. The robustness and flexibility of the data package was critical because we had to deal with various server APIs.” What they do Cutting-edge web development agency focused on rich web interfaces. The Problem Create a real estate search engine for French agencies, built as a white label application. The Solution The app allows home buyers to browse the catalogue of available properties and search for specific properties using an intuitive and beautiful interface. The results can be displayed on an interactive map, in a list view, or be saved in the user preferences for push notifications using PhoneGap. The Benefit We get a single codebase that covers multiple platforms (iOS and Android) - using only Web technologies and PhoneGap for push. This is a very appealing approach, in terms of cost savings, product maintainability, and developer resources. “

Slide 58

Slide 58 text

Getting Started

Slide 59

Slide 59 text

Sencha Touch Bundle sencha.com/products/touch-bundle ‣ Register for a 30-day trial

Slide 60

Slide 60 text

Documentation and Examples docs.sencha.com

Slide 61

Slide 61 text

Documentation and Examples docs.sencha.com

Slide 62

Slide 62 text

Community-driven forum for seeking and o ering help. ‣ Over 400,000 registered members ‣ Ask questions ‣ O er help to others ‣ Powerful search facility ‣ Premium Forums for paid support subscribers ‣ Monitored by Sencha sta Sencha Forums sencha.com/forum

Slide 63

Slide 63 text

Books senchaexamples.com/books

Slide 64

Slide 64 text

Resources

Slide 65

Slide 65 text

‣ JavaScript unit testing tool ‣ Can simulate user interactions ‣ Supports Sencha frameworks out of the box ‣ Run tests in browser and NodeJS Siesta bryntum.com/products/siesta/

Slide 66

Slide 66 text

Online resource that enables you to see Sencha framework code and quickly experiment with: Sencha Touch Ext JS Sencha Try try.sencha.com

Slide 67

Slide 67 text

Online resource for finding and sharing of Sencha framework extensions. Components Data Connectors Themes Tools Sencha Market market.sencha.com

Slide 68

Slide 68 text

Webinar recordings and product walkthroughs Vimeo vimeo.com/sencha

Slide 69

Slide 69 text

Sencha Events

Slide 70

Slide 70 text

Meetups meetup.com ‣ Sencha meetup groups organised by Sencha community ‣ Good opportunity to meet and discuss all things Sencha!

Slide 71

Slide 71 text

‣ Sencha’s annual conference ‣ Interact with Sencha engineers and fellow developers ‣ 16th - 19th July in Orlando, Florida ‣ 1,000 developers ‣ 60+ technical sessions ‣ Hackathon senchacon.com Discount Code!

Slide 72

Slide 72 text

Questions?

Slide 73

Slide 73 text

Create amazing apps built on web standards Daniel Gallo @DanielJGallo