SlideShare a Scribd company logo
1 of 17
Alloy Framework Overview

         Mads Møller
       Head of Development
           Napp CMS
           @nappdev
          mm@napp.dk
What is Alloy?


                 • MVC Framework

                 • XML based UI markup

                 • Highly customizable

                 • Run by Appcelerator

                 • Awesome. Yes, awesome.
Titanium App
Alloy App




  $.index.open();
Structure

            • Primary
               • views
               • controllers
               • styles
               • models
               • assets

            • Optional
              • lib
              • migrations
              • widgets

            • Platform-specific folders
Views



        • IDs and classes

        • Platform and form
          factor specific markup

        • Inline events

        • API parsers
Styles


         • TSS format
            • Titanium constants
            • Localization
            • Alloy configuration items

         • Group by ID, class, or Ti API

         • Device queries

         • Global style
Controllers


              • Element access via $

              • Public interface via exports

              • Compiler directives

              • Backbone eventing

              • Underscore and builtins

              • Anything Titanium can do
Models



         • Backbone Models &
           Collections

         • Persistence adapters

         • Migration support
Widgets



          • Self-contained UI and logic

          • Work in any Alloy app

          • Cross-platform

          • Simple to complex
Compilation



              • Generates CommonJS
                controller modules

              • builtins

              • Optimizations

              • Catch errors before
                runtime
Error output




               • Faster development iterations

               • Surfaces potential errors
Getting Started


                  • Quick Start: bit.ly/alloyqs

                  • Ti SDK 2.1 or later

                  • More Information
                    • Wiki docs: http://bit.ly/RzU6Ra
                    • Google Groups: bit.ly/alloy_group
                    • Github: github.com/appcelerator/alloy
Showcase


           • Lets see some code
Scaffolding
github.com/appcelerator/Codestrong
Mads Møller
 @nappdev

mm@napp.dk

More Related Content

What's hot

SPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePointSPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePoint
Greg Hurlman
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
philipjting
 
Tools of the trade
Tools of the tradeTools of the trade
Tools of the trade
Nicole Ryan
 

What's hot (20)

SPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePointSPSNJ 2014: EmberJS & SharePoint
SPSNJ 2014: EmberJS & SharePoint
 
Going mobile with RichFaces
Going mobile with RichFacesGoing mobile with RichFaces
Going mobile with RichFaces
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approach
 
RichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component DevelopmentRichFaces CDK: Rapid JSF Component Development
RichFaces CDK: Rapid JSF Component Development
 
Node ts1
Node ts1Node ts1
Node ts1
 
A practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization systemA practical approach on - How to design offline-online synchronization system
A practical approach on - How to design offline-online synchronization system
 
SD PHP Zend Framework
SD PHP Zend FrameworkSD PHP Zend Framework
SD PHP Zend Framework
 
Design for scale
Design for scaleDesign for scale
Design for scale
 
Riding IronRuby on Rails
Riding IronRuby on RailsRiding IronRuby on Rails
Riding IronRuby on Rails
 
DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1DevOps in the Microsoft world part 1
DevOps in the Microsoft world part 1
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?
 
TheApp v1
TheApp v1TheApp v1
TheApp v1
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
AWS Elastic Container Registry
AWS Elastic Container RegistryAWS Elastic Container Registry
AWS Elastic Container Registry
 
Tools of the trade
Tools of the tradeTools of the trade
Tools of the trade
 
Codename one
Codename oneCodename one
Codename one
 
Microservices
MicroservicesMicroservices
Microservices
 
Entity Framework 7: What's New?
Entity Framework 7: What's New?Entity Framework 7: What's New?
Entity Framework 7: What's New?
 
A Framework Driven Development
A Framework Driven DevelopmentA Framework Driven Development
A Framework Driven Development
 
Php Zen with Zend
Php Zen with ZendPhp Zen with Zend
Php Zen with Zend
 

Viewers also liked (7)

Báo cáo dtht
Báo cáo dthtBáo cáo dtht
Báo cáo dtht
 
physio livre
physio livrephysio livre
physio livre
 
Welcome to london
Welcome to londonWelcome to london
Welcome to london
 
Arum W --- Portfolio
Arum W --- PortfolioArum W --- Portfolio
Arum W --- Portfolio
 
Ssh oficial resumida sergio
Ssh oficial resumida sergioSsh oficial resumida sergio
Ssh oficial resumida sergio
 
Li 804 alphild dick
Li 804 alphild dickLi 804 alphild dick
Li 804 alphild dick
 
Steve Ray Vaughan Coldn't Stand The Weather
Steve Ray Vaughan Coldn't Stand The WeatherSteve Ray Vaughan Coldn't Stand The Weather
Steve Ray Vaughan Coldn't Stand The Weather
 

Similar to Alloy Framework

Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
Ricardo Alcocer
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page Apps
Pop Apps
 

Similar to Alloy Framework (20)

Alloy - Codestrong 2012
Alloy - Codestrong 2012Alloy - Codestrong 2012
Alloy - Codestrong 2012
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013
 
Rapid development with Rails
Rapid development with RailsRapid development with Rails
Rapid development with Rails
 
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
DC Titanium User Group Meetup: Appcelerator Titanium Alloy jan2013
 
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
The Big Easy: Native Mobile App Development with Appcelerator Titanium and Ja...
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
 
iOS团队开发实践经验
iOS团队开发实践经验iOS团队开发实践经验
iOS团队开发实践经验
 
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentationmodeveast 2012 Appcelerator Alloy & Cloud Services Presentation
modeveast 2012 Appcelerator Alloy & Cloud Services Presentation
 
Logic appsforbeginners
Logic appsforbeginnersLogic appsforbeginners
Logic appsforbeginners
 
CI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page AppsCI/CD and Asset Serving for Single Page Apps
CI/CD and Asset Serving for Single Page Apps
 
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator Titanium
 
Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?Visual studio 2012 - What's in it for me?
Visual studio 2012 - What's in it for me?
 
Rhodes
RhodesRhodes
Rhodes
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
 
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
DevOpsDays Houston 2019 - Shaun Ladewig, Robert Stone - From OverTheWallOps t...
 
Gwt cdi jud_con_berlin
Gwt cdi jud_con_berlinGwt cdi jud_con_berlin
Gwt cdi jud_con_berlin
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page Apps
 
Sitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helixSitecore development approach evolution – destination helix
Sitecore development approach evolution – destination helix
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

Alloy Framework

  • 1. Alloy Framework Overview Mads Møller Head of Development Napp CMS @nappdev mm@napp.dk
  • 2. What is Alloy? • MVC Framework • XML based UI markup • Highly customizable • Run by Appcelerator • Awesome. Yes, awesome.
  • 4. Alloy App $.index.open();
  • 5. Structure • Primary • views • controllers • styles • models • assets • Optional • lib • migrations • widgets • Platform-specific folders
  • 6. Views • IDs and classes • Platform and form factor specific markup • Inline events • API parsers
  • 7. Styles • TSS format • Titanium constants • Localization • Alloy configuration items • Group by ID, class, or Ti API • Device queries • Global style
  • 8. Controllers • Element access via $ • Public interface via exports • Compiler directives • Backbone eventing • Underscore and builtins • Anything Titanium can do
  • 9. Models • Backbone Models & Collections • Persistence adapters • Migration support
  • 10. Widgets • Self-contained UI and logic • Work in any Alloy app • Cross-platform • Simple to complex
  • 11. Compilation • Generates CommonJS controller modules • builtins • Optimizations • Catch errors before runtime
  • 12. Error output • Faster development iterations • Surfaces potential errors
  • 13. Getting Started • Quick Start: bit.ly/alloyqs • Ti SDK 2.1 or later • More Information • Wiki docs: http://bit.ly/RzU6Ra • Google Groups: bit.ly/alloy_group • Github: github.com/appcelerator/alloy
  • 14. Showcase • Lets see some code

Editor's Notes

  1. MVC FrameworkCommon, uniform development patternSeparation of concernsViews, controllers, models… also styles, migrations, and a few other powerful featuresDeclarative UIXML-based representation of Ti APIMakes API usage much easierIncreased readability and scalabilityFree and open sourceAvailable on githubLots of contributions already (50+ forks, 250+ stars)Project transparencyHighly customizableOpen sourceWidgetsAdaptersawesome- No “why” slide, because it’s obvious- Will change the way you write Titanium apps forever
  2. Hard to identify the overall structure of the UIComments are essentially making this readableRepetitive assignments of stylesNecessary to understand how certain APIs interact (addTab() or window as a creation time property)
  3. UI very clearSeparation of view hierarchy and styleAPI level styling, less repetitionNo JS code yet
  4. Brief overview of each folder in the structure.
  5. Alloy.CFGGenerated from your config.jsonGlobally available values based on deployment type and OSBuiltinsUseful JS libraries integrated with AlloyBackbone & underscoreGrowing list, string operations, titanium animations, social networkingOptimizationsUglifyjsEliminate dead codeCompiler directives (platform, deploy type)Errors- Catch all view, style, and JS errorsTabGroup will tell you if you aren’t adding tabs to it, or if you forget to add a window to the tabSame with navGroup
  6. Surfaces potential errors- We’ll be able to catch errors that would occur under only certain circumstances at runtime at compile time instead. Think of the case of a Window that opens from a button click and that Window has invalid code/markup.
  7. 175 lines of code Doesn’t even account for how you would interface with the widget (creating tables, handling the returned book data)You need to carry it aroundIt also wouldn’t manage the dependency on the loading widget