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

Introduction to Swiz

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

Introduction to Swiz

Avatar for bclinkinbeard

bclinkinbeard

November 02, 2011
Tweet

Other Decks in Programming

Transcript

  1. Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz gets out

    of your way Focus on problems, not a framework
  2. Universal Mind™ Universal Mind | Ben Clinkinbeard What is clean

    code? • Separation of concerns • Decoupled
  3. Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz instance <swiz:Swiz>

    <swiz:config> <swiz:SwizConfig eventPackages="com.foo.events" viewPackages="com.foo.views.*" /> </swiz:config> <swiz:beanProviders> <config:OrdersServiceBeans /> <!--config:OrdersDelegateBeans /--> <config:OrdersMockDelegateBeans /> <config:OrdersModelBeans /> <config:OrdersControllerBeans /> </swiz:beanProviders> </swiz:Swiz>
  4. Universal Mind™ Universal Mind | Ben Clinkinbeard BeanProvider <swiz:BeanProvider> <models:AppModel

    /> <models:UserModel /> <control:UserController /> <control:ProductsController id=”prodController” /> <swiz:Prototype type=”{ SomePresoModel }” /> </swiz:Swiz>
  5. Universal Mind™ Universal Mind | Ben Clinkinbeard [Dispatcher] in practice

    [Dispatcher] public var dispatcher:IEventDispatcher; ... dispatcher.dispatchEvent( someEvent );
  6. Universal Mind™ Universal Mind | Ben Clinkinbeard Inject by type

    [Inject] public var model:UserModel; [Inject] public var delegate:IUserDelegate;
  7. Universal Mind™ Universal Mind | Ben Clinkinbeard Inject by name

    [Inject( “userService” )] public var service:RemoteObject; ... <mx:RemoteObject id=”userService” />
  8. Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property

    [Inject( “userModel.currentUser” )] public var currentUser:User;
  9. Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property

    [Inject( “userModel.currentUser”, bind=”true” )] public var currentUser:User;
  10. Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property

    [Inject( “userModel.currentUser”, twoWay=”true” )] public var currentUser:User;
  11. Universal Mind™ Universal Mind | Ben Clinkinbeard Setter injection [Inject]

    public function setModel( model:UserModel ):void { this.model = model; }
  12. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler basics [EventHandler(

    “com.foo.events.UserEvent.ADD_USER” )] public function addUser( event:UserEvent ):void{...}
  13. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler basics [EventHandler(

    event = “UserEvent.ADD_USER” )] public function addUser( event:UserEvent ):void{...} ... <swiz:SwizConfig eventPackages=”com.foo.events” />
  14. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler basics [EventHandler(

    “UserEvent.CLEAR_ALL_USERS” )] public function clearUsers():void{...}
  15. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler hotness [EventHandler(

    “UserEvent.ADD_USER”, properties=”user” )] public function addUser( user:User ):void{...}
  16. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler hotness [EventHandler(

    “UserEvent.ADD_USER”, properties=”user” )] [EventHandler( “UserEvent.EDIT_USER”, properties=”user” )] [EventHandler( “UserEvent.DELETE_USER”, properties=”user” )] public function manageUser( user:User ):void{...}
  17. Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler hotness [EventHandler(

    “UserEvent.*”, properties=”user” )] public function manageUser( user:User ):void{...}
  18. Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] [ViewAdded] public

    function addViewListeners( view:MyForm ):void { // add view listeners }
  19. Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] [ViewAdded] public

    function set myForm( view:MyForm ):void { _myForm = view; }
  20. Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewRemoved] [ViewRemoved] public

    function removeViewListeners( view:MyForm ):void { // remove view listeners }