Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Introduction to Swiz
Search
bclinkinbeard
November 02, 2011
Programming
1
90
Introduction to Swiz
bclinkinbeard
November 02, 2011
Tweet
Share
Other Decks in Programming
See All in Programming
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
140
CSC509 Lecture 01
javiergs
PRO
1
420
意外と簡単!?フロントエンドでパスキー認証を実現する WebAuthn
teamlab
PRO
2
830
Build your own WebP codec in Swift
kishikawakatsumi
2
340
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
4
1k
Cache Me If You Can
ryunen344
2
6.7k
プログラマのための作曲入門
cheebow
0
430
Introducing FrankenPHP gRPC
dunglas
2
900
開発者への寄付をアプリ内課金として実装する時の気の使いどころ
ski
0
140
さようなら Date。 ようこそTemporal! 3年間先行利用して得られた知見の共有
8beeeaaat
3
1.5k
GoogleI/O2025 LT報告会資料
shinsukefujita1126
0
170
「社内LT会」を1年続けてみた! / Our Year-Long Journey of Internal Lightning Talks
mackey0225
1
110
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
330
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Fireside Chat
paigeccino
40
3.6k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
How GitHub (no longer) Works
holman
315
140k
Speed Design
sergeychernyshev
32
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Thoughts on Productivity
jonyablonski
70
4.8k
Balancing Empowerment & Direction
lara
4
650
RailsConf 2023
tenderlove
30
1.2k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Transcript
Universal Mind™ Universal Mind | Ben Clinkinbeard Introduction to Swiz
Universal Mind™ Universal Mind | Ben Clinkinbeard Ben Clinkinbeard Technical
Architect Universal Mind
Universal Mind™ Universal Mind | Ben Clinkinbeard Tao of Swiz
What does Swiz believe in?
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz is unobtrusive
Imposes no patterns on your code
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz is unobtrusive
Requires minimal framework references
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz makes you
productive Virtually zero boilerplate
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz makes you
productive Expedites tedious tasks
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz is extensible
It doesn’t do everything. On purpose.
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz gets out
of your way Focus on problems, not a framework
Universal Mind™ Universal Mind | Ben Clinkinbeard What is clean
code? • Separation of concerns • Decoupled
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz terminology What
does it all mean, Basil?
Universal Mind™ Universal Mind | Ben Clinkinbeard Swiz instance Unit
of awesomeness
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>
Universal Mind™ Universal Mind | Ben Clinkinbeard SwizConfig
Universal Mind™ Universal Mind | Ben Clinkinbeard Bean An object
managed by Swiz
Universal Mind™ Universal Mind | Ben Clinkinbeard Prototype Bean++
Universal Mind™ Universal Mind | Ben Clinkinbeard BeanProvider Provider of
beans
Universal Mind™ Universal Mind | Ben Clinkinbeard BeanProvider Declares non-view
beans
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>
Universal Mind™ Universal Mind | Ben Clinkinbeard Dependency [Inject] marks
the spot
Universal Mind™ Universal Mind | Ben Clinkinbeard [Dispatcher] Shared event
bus, injected by Swiz
Universal Mind™ Universal Mind | Ben Clinkinbeard [Dispatcher( “global” )]
Maps to root Swiz instance
Universal Mind™ Universal Mind | Ben Clinkinbeard [Dispatcher( “local” )]
Maps to your Swiz instance
Universal Mind™ Universal Mind | Ben Clinkinbeard [Dispatcher] in practice
[Dispatcher] public var dispatcher:IEventDispatcher; ... dispatcher.dispatchEvent( someEvent );
Universal Mind™ Universal Mind | Ben Clinkinbeard [EventHandler] System event
handler
Universal Mind™ Universal Mind | Ben Clinkinbeard [Inject]
Universal Mind™ Universal Mind | Ben Clinkinbeard Inject by type
[Inject] public var model:UserModel; [Inject] public var delegate:IUserDelegate;
Universal Mind™ Universal Mind | Ben Clinkinbeard Inject by name
[Inject( “userService” )] public var service:RemoteObject; ... <mx:RemoteObject id=”userService” />
Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property
[Inject( “userModel.currentUser” )] public var currentUser:User;
Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property
[Inject( “userModel.currentUser”, bind=”true” )] public var currentUser:User;
Universal Mind™ Universal Mind | Ben Clinkinbeard Inject bean property
[Inject( “userModel.currentUser”, twoWay=”true” )] public var currentUser:User;
Universal Mind™ Universal Mind | Ben Clinkinbeard Setter injection [Inject]
public function setModel( model:UserModel ):void { this.model = model; }
Universal Mind™ Universal Mind | Ben Clinkinbeard [EventHandler]
Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler basics [EventHandler(
“com.foo.events.UserEvent.ADD_USER” )] public function addUser( event:UserEvent ):void{...}
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” />
Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler basics [EventHandler(
“UserEvent.CLEAR_ALL_USERS” )] public function clearUsers():void{...}
Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler hotness [EventHandler(
“UserEvent.ADD_USER”, properties=”user” )] public function addUser( user:User ):void{...}
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{...}
Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler hotness [EventHandler(
“UserEvent.*”, properties=”user” )] public function manageUser( user:User ):void{...}
Universal Mind™ Universal Mind | Ben Clinkinbeard EventHandler options priority,
useCapture, stop(Immediate)Propagation
Universal Mind™ Universal Mind | Ben Clinkinbeard Also...
Universal Mind™ Universal Mind | Ben Clinkinbeard [PostConstruct] Method to
be run once dependencies fulfilled
Universal Mind™ Universal Mind | Ben Clinkinbeard [PreDestroy] Method to
be run prior to tear down
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] Get reference
to a new view
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] [ViewAdded] public
function addViewListeners( view:MyForm ):void { // add view listeners }
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] [ViewAdded] public
function set myForm( view:MyForm ):void { _myForm = view; }
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewAdded] [ViewAdded] public
var view:MyForm;
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewRemoved] Get notified
a view was removed
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewRemoved] [ViewRemoved] public
function removeViewListeners( view:MyForm ):void { // remove view listeners }
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewNavigator] Get a
reference to ViewNavigator in non-view class
Universal Mind™ Universal Mind | Ben Clinkinbeard [ViewNavigator] Whoops...
Universal Mind™ Universal Mind | Ben Clinkinbeard Go forth and
kick ass
Universal Mind™ Universal Mind | Ben Clinkinbeard Site / blog
http://swizframework.org
Universal Mind™ Universal Mind | Ben Clinkinbeard Wiki http://wiki.swizframework.org
Universal Mind™ Universal Mind | Ben Clinkinbeard Bugs http://bugs.swizframework.org
Universal Mind™ Universal Mind | Ben Clinkinbeard Mailing list http://groups.google.com/group/swiz-framework