Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Architecting Cross-platform Apps using Titanium

Architecting Cross-platform Apps using Titanium

Propelics, Inc.

César Cavazos

August 16, 2014
Tweet

More Decks by César Cavazos

Other Decks in Programming

Transcript

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

    View Slide

  2. 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.

    View Slide

  3. Q:
    Why do we need
    an architecture?
    3

    View Slide

  4. 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!

    View Slide

  5. Appcelerator
    Titanium Alloy
    MVC
    5

    View Slide

  6. 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.

    View Slide

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

    View Slide

  8. 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

    View Slide

  9. 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?
    !

    View Slide

  10. Platform support
    10
    iOS & Android

    View Slide

  11. Form factor support
    11
    iPad & iPhone

    View Slide

  12. 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?

    View Slide

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

    View Slide

  14. 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.

    View Slide

  15. Q:
    What do we
    achieve as a
    team?
    15

    View Slide

  16. • 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

    View Slide

  17. Questions

    View Slide

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

    View Slide