Slide 1

Slide 1 text

! ! ! Architecting Cross-platform Apps using Titanium. iOS, Android, Windows Phone & Mobile Web

Slide 2

Slide 2 text

Background • Working in Mobile Development for 4+ years on different platforms. • iOS, Android, Titanium, Swift and Xamarin. • Worked for Fortune 500 customers across different verticals. • Currently working as a Mobile Architect at Propelics. • Architecture and Development • Mobile Strategy • Former Appcelerator Employee • Worked at the Profesional Services team. • Test and usage of Alloy since version 0.1.

Slide 3

Slide 3 text

Q: Why do we need an architecture? 3

Slide 4

Slide 4 text

Because of what we do Enterprise Mobile Strategy Services Enterprise Mobile Strategy Mobile App Portfolio Mobile App Scoping & Planning IT Readiness for Mobility Innovation through visualization Center of Excellence Creation Mobile Advisory Services Mobile Mentoring Executive Education Speaking Engagements Managed Services Application Oversight Application Development, Maintenance and Support Managed Mobile Center of Excellence Onshore and Offshore App Development We’re hiring!

Slide 5

Slide 5 text

Appcelerator Titanium Alloy MVC 5

Slide 6

Slide 6 text

Alloy MVC Framework (JS, XML and tss): Titanium App (JavaScript): Native apps for iOS and Android: Titanium SDK App Codebase Alloy Pre-compiler App Codebase M V C Overview of a Titanium App.

Slide 7

Slide 7 text

Q: How do we create a successful and maintainable Architecture? 7

Slide 8

Slide 8 text

Push Notifications Backend Offline Testing Analytics Geolocation Sync SQLite UI/UX OS Versions Supported Devices Navigation Wireframe / Prototyping Roadmap Barcode/QRCodes Security Version Control App features Animations Mobile App Dev Platform MBaaS / PaaS Camera Ads Bluetooth

Slide 9

Slide 9 text

Platform and form factor support Can you start without wireframes or mockups? ! How do we estimate code re-usage? ! Does an app with 95% code reuse is better than 70%? ! Is the app going to run on handheld and/or tablet devices? ! Don’t use Ti.platform.osname. Use OS_IOS, OS_ANDROID, etc. ! Do we need modules to extend Ti functionality? Are they available or do we need to build them? ! Are we going to use Alloy widgets and commonJS modules? !

Slide 10

Slide 10 text

Platform support 10 iOS & Android

Slide 11

Slide 11 text

Form factor support 11 iPad & iPhone

Slide 12

Slide 12 text

App Checklist What should we include in our main singleton (App core)? ! Alloy.Globals should be used for things such as ti.map (Alloy.Globals.Map) ! Alloy.CFG (config.json) should be use for constants of the app. ! App core should be used for global variables the app. ! App core should manage the navigation across the app. ! What tool are we going to use for docs and code handover?

Slide 13

Slide 13 text

Data Persistence Alloy Models Ti.Database Offline and Sync HTTP calls 13

Slide 14

Slide 14 text

It’s always good to remember… ! Don’t use global events. Handle global events wisely. ! Don’t put scroll views inside table views and viceversa. Just don’t. ! Avoid TableViews and use ListViews. (Unless you are building a POC) ! Always think about lazy loading.

Slide 15

Slide 15 text

Q: What do we achieve as a team? 15

Slide 16

Slide 16 text

• Teamwork for Success • Architecture and Development is just a part of a team PMs, UI/UX Designes, Mobile Strategists, and QA Development. ! • Technology • We don’t always use Titanium. • iOS, Android, Xamarin, Windows Phone and Blackberry. ! • Apps • Version 1.0 apps build in 2 months. • App functional prototypes in 2 weeks. • POCs build in 2-3 days. Achievements

Slide 17

Slide 17 text

Questions

Slide 18

Slide 18 text

Cesar Cavazos [email protected] @cesarcvz Let’s talk!