Destiny Item Manager
Rick Casey
Developer
destinyitemmanager.com
Destiny User Experience
On Console & Bungie.net
The Burden of Ceremony
- Time consuming to visit the vault
- Mistakes compound the expense of time
- Social pressure prevents players from visiting the vault
- Difficult to track gear in the default workflow
- A full vault prevents users from swapping characters
The Gear Treadmill
- Simple switching between Xbox and PlayStation
- Emphasis on Player Intent, Not Error Messages
- Show every item on each character on screen
- Character to Character transfers with drag and drop
- Search and Filtering
- Loadouts
Improving Player QoL
This is DIM
How did we make it?
Destiny API REST Services
Chrome Extensions
- Allow Access to Bungie.net Cookies
- Requests to Bungie.net from Ext. sends cookies
- Chrome Web Store Infrastructure
AngularJS
- Many 3rd Party Components
- Dependency Injection
- Factory Services for Entities
- Promise Support with $q
- Data Binding is Very Simple
- Throttle Control of $http Requests
YO DAWG, I HEARD YOU LIKED CALLBACKS...
Promise Based Workflow
- Use Promises for control flow in the service
- Promises are caches of data that can be reused
- Exceptions can be resolved, and promise re-run
- Helps asynchronous code feel synchronous
- It is the hardest part to explain when onboarding
What's Next?
- PhoneGap Mobile Implementation
- Reuse Angular Entities and Services
- Responsive Client with new UI
- Unique User Interactions to improve 'time to equip'
What's Next Next?
- NativeScript Mobile Implementation
- Angular 2 Client
- ES6/7 Features using Babel/Browserify or Webpack
- async/await makes promises feel familiar
The Future
Destiny Item Manager
By Rick Casey
Destiny Item Manager
BHM-JS Meetup
- 1,430