SlideShare a Scribd company logo
1 of 18
Alloy App
Framework Overview

        Tony Lukasavage
       Lead Alloy Engineer
          Appcelerator
        @tonylukasavage

  tlukasavage@appcelerator.com
What is Alloy?


                 • MVC Framework

                 • Declarative UI

                 • Free and open source

                 • Highly customizable

                 • Awesome. Yes, awesome.
Titanium App
Alloy App
index.js
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
Traditional
Library
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

                  • [sudo] npm install –g alloy

                  • TiStudio/TiSDK 3.0

                  • More Information
                    • Wiki docs: bit.ly/alloy_docs
                    • Google Groups: bit.ly/alloy_group
                    • Github: github.com/appcelerator/alloy
github.com/appcelerator/Codestrong
Tony Lukasavage
     @tonylukasavage

tlukasavage@appcelerator.com
Scaffolding

More Related Content

What's hot

Developing JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroDeveloping JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroPayara
 
Software architecture : From project management to deployment
Software architecture : From project management to deploymentSoftware architecture : From project management to deployment
Software architecture : From project management to deploymentFoyzul Karim
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?Christian Nagel
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approachFoyzul Karim
 
2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code CampVictor Hurdugaci
 
TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009Ed Anuff
 
Kickstart android development with xamarin
Kickstart android development with xamarinKickstart android development with xamarin
Kickstart android development with xamarinFoyzul Karim
 
A Framework Driven Development
A Framework Driven DevelopmentA Framework Driven Development
A Framework Driven Development정민 안
 
JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara ServerPayara
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementFoyzul Karim
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development LetsConnect
 
Sinatraで触れる生SQL
Sinatraで触れる生SQLSinatraで触れる生SQL
Sinatraで触れる生SQLtreby
 
FishEye's Commit Graph: Visualize Your Code Repository
FishEye's Commit Graph: Visualize Your Code RepositoryFishEye's Commit Graph: Visualize Your Code Repository
FishEye's Commit Graph: Visualize Your Code RepositoryAtlassian
 
Ruby on Rails Vs. ASP.NET MVC
Ruby on Rails Vs. ASP.NET MVCRuby on Rails Vs. ASP.NET MVC
Ruby on Rails Vs. ASP.NET MVCShay Friedman
 
Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservicesahmadezzeir
 

What's hot (20)

Developing JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara MicroDeveloping JavaEE 7 based apps with Payara Micro
Developing JavaEE 7 based apps with Payara Micro
 
Software architecture : From project management to deployment
Software architecture : From project management to deploymentSoftware architecture : From project management to deployment
Software architecture : From project management to deployment
 
Blazor - The New Silverlight?
Blazor - The New Silverlight?Blazor - The New Silverlight?
Blazor - The New Silverlight?
 
IGN's V3 API
IGN's V3 APIIGN's V3 API
IGN's V3 API
 
Microservices: A developer's approach
Microservices: A developer's approachMicroservices: A developer's approach
Microservices: A developer's approach
 
2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp2017.09.09 Orbit - Seattle Code Camp
2017.09.09 Orbit - Seattle Code Camp
 
TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009TypePad Platform FOWA London 2009
TypePad Platform FOWA London 2009
 
Logic appsforbeginners
Logic appsforbeginnersLogic appsforbeginners
Logic appsforbeginners
 
Kickstart android development with xamarin
Kickstart android development with xamarinKickstart android development with xamarin
Kickstart android development with xamarin
 
A Framework Driven Development
A Framework Driven DevelopmentA Framework Driven Development
A Framework Driven Development
 
JPA 2.1 on Payara Server
JPA 2.1 on Payara ServerJPA 2.1 on Payara Server
JPA 2.1 on Payara Server
 
Planidoo & Zotonic
Planidoo & ZotonicPlanidoo & Zotonic
Planidoo & Zotonic
 
SDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product managementSDLC, Agile methodologies and Career in Product management
SDLC, Agile methodologies and Career in Product management
 
SGCE 2015 REST APIs
SGCE 2015 REST APIsSGCE 2015 REST APIs
SGCE 2015 REST APIs
 
CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development CrossWorlds: Unleash the Power of Domino for Connections Development
CrossWorlds: Unleash the Power of Domino for Connections Development
 
Node ts1
Node ts1Node ts1
Node ts1
 
Sinatraで触れる生SQL
Sinatraで触れる生SQLSinatraで触れる生SQL
Sinatraで触れる生SQL
 
FishEye's Commit Graph: Visualize Your Code Repository
FishEye's Commit Graph: Visualize Your Code RepositoryFishEye's Commit Graph: Visualize Your Code Repository
FishEye's Commit Graph: Visualize Your Code Repository
 
Ruby on Rails Vs. ASP.NET MVC
Ruby on Rails Vs. ASP.NET MVCRuby on Rails Vs. ASP.NET MVC
Ruby on Rails Vs. ASP.NET MVC
 
Monoliths vs microservices
Monoliths vs microservicesMonoliths vs microservices
Monoliths vs microservices
 

Viewers also liked (15)

Zinc alloy-SGS Report-.PDF
Zinc alloy-SGS Report-.PDFZinc alloy-SGS Report-.PDF
Zinc alloy-SGS Report-.PDF
 
Lead and it’s alloys
Lead and it’s alloys Lead and it’s alloys
Lead and it’s alloys
 
Tin and it’s alloy
Tin and it’s alloyTin and it’s alloy
Tin and it’s alloy
 
Non-Ferrous Alloy
Non-Ferrous AlloyNon-Ferrous Alloy
Non-Ferrous Alloy
 
Zinc and zinc alloy plating
Zinc and zinc alloy platingZinc and zinc alloy plating
Zinc and zinc alloy plating
 
aluminium production process
aluminium production processaluminium production process
aluminium production process
 
Aluminium Metal and Aluminium Products, Cast Aluminium Alloys, Alumina Extrac...
Aluminium Metal and Aluminium Products, Cast Aluminium Alloys, Alumina Extrac...Aluminium Metal and Aluminium Products, Cast Aluminium Alloys, Alumina Extrac...
Aluminium Metal and Aluminium Products, Cast Aluminium Alloys, Alumina Extrac...
 
Non ferrous metal
Non ferrous metalNon ferrous metal
Non ferrous metal
 
Copper ppt 12345
Copper ppt 12345Copper ppt 12345
Copper ppt 12345
 
Aluminium and its alloys
Aluminium and its alloysAluminium and its alloys
Aluminium and its alloys
 
Copper and its alloys
Copper and its alloysCopper and its alloys
Copper and its alloys
 
Aluminium Extraction
Aluminium ExtractionAluminium Extraction
Aluminium Extraction
 
Aluminium alloys applications
Aluminium alloys   applicationsAluminium alloys   applications
Aluminium alloys applications
 
04 copper and copper alloys
04 copper and copper alloys04 copper and copper alloys
04 copper and copper alloys
 
Aluminium and it’s alloys
Aluminium and it’s alloysAluminium and it’s alloys
Aluminium and it’s alloys
 

Similar to 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 2013ralcocer
 
Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Appcelerator Alloy Deep Dive - tiTokyo 2013
Appcelerator Alloy Deep Dive - tiTokyo 2013Ricardo Alcocer
 
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...Adam Paxton
 
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 2015Adam Paxton
 
Introduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumIntroduction to Appcelerator Titanium
Introduction to Appcelerator TitaniumAdam Paxton
 
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 PresentationAaron Saunders
 
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...DevOpsDays Houston
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails introMat Schaffer
 
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 jan2013Aaron Saunders
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Leonardo Farias
 
Live Content: Finding new ways to publish
Live Content: Finding new ways to publishLive Content: Finding new ways to publish
Live Content: Finding new ways to publishckimrie
 
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013Chris Barber
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合Carl Su
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsPop Apps
 
Android development made easy with appcelerator titanium
Android development made easy with appcelerator titaniumAndroid development made easy with appcelerator titanium
Android development made easy with appcelerator titaniumGaurav Kheterpal
 
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012graybowman
 
Forge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataForge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataAutodesk
 

Similar to Alloy - Codestrong 2012 (20)

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
 
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...
 
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
 
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
 
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...
 
UPenn on Rails intro
UPenn on Rails introUPenn on Rails intro
UPenn on Rails intro
 
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
 
Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript Titanium: Native Mobile Apps with Javascript
Titanium: Native Mobile Apps with Javascript
 
Alloy
AlloyAlloy
Alloy
 
Live Content: Finding new ways to publish
Live Content: Finding new ways to publishLive Content: Finding new ways to publish
Live Content: Finding new ways to publish
 
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013
Titanium 3.2 CLI - TiAppCamp2 - 11/2/2013
 
Startup Showcase - QuizUp
Startup Showcase - QuizUpStartup Showcase - QuizUp
Startup Showcase - QuizUp
 
手機自動化測試和持續整合
手機自動化測試和持續整合手機自動化測試和持續整合
手機自動化測試和持續整合
 
WebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page AppsWebNetConf 2012 - Single Page Apps
WebNetConf 2012 - Single Page Apps
 
Android development made easy with appcelerator titanium
Android development made easy with appcelerator titaniumAndroid development made easy with appcelerator titanium
Android development made easy with appcelerator titanium
 
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
Digital Publishing with the OSCI Toolkit - Workshop MCN 2012
 
Alloy #DMC13
Alloy #DMC13Alloy #DMC13
Alloy #DMC13
 
Forge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM dataForge - DevCon 2016: Free your BIM data
Forge - DevCon 2016: Free your BIM data
 

Alloy - Codestrong 2012

  • 1. Alloy App Framework Overview Tony Lukasavage Lead Alloy Engineer Appcelerator @tonylukasavage tlukasavage@appcelerator.com
  • 2. What is Alloy? • MVC Framework • Declarative UI • Free and open source • Highly customizable • Awesome. Yes, awesome.
  • 6. Structure • Primary • views • controllers • styles • models • assets • Optional • lib • migrations • widgets • Platform-specific folders
  • 7. Views • IDs and classes • Platform and form factor specific markup • Inline events • API parsers
  • 8. Styles • TSS format • Titanium constants • Localization • Alloy configuration items • Group by ID, class, or Ti API • Device queries • Global style
  • 9. Controllers • Element access via $ • Public interface via exports • Compiler directives • Backbone eventing • Underscore and builtins • Anything Titanium can do
  • 10. Models • Backbone Models & Collections • Persistence adapters • Migration support
  • 11. Widgets • Self-contained UI and logic • Work in any Alloy app • Cross-platform • Simple to complex
  • 13. Compilation • Generates CommonJS controller modules • builtins • Optimizations • Catch errors before runtime
  • 14. Error output • Faster development iterations • Surfaces potential errors
  • 15. Getting Started • Quick Start: bit.ly/alloyqs • [sudo] npm install –g alloy • TiStudio/TiSDK 3.0 • More Information • Wiki docs: bit.ly/alloy_docs • Google Groups: bit.ly/alloy_group • Github: github.com/appcelerator/alloy
  • 17. Tony Lukasavage @tonylukasavage tlukasavage@appcelerator.com

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. Single line of codeDon’t need to tell you the impact this will have on both beginner and advanced developersReducing learning curveGood developers are on a quest to eradicate code (more testing, validation, complexity)Ideas -> apps, even if you aren’t a developer by day
  5. Brief overview of each folder in the structure.
  6. 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
  7. 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
  8. 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.
  9. 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