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

Introduction to Swiz

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 }