Hey Dartisans! Before we make the big marketing push next week, I wanted to reveal here our new game "Market Wolf" for Android.
Its a simple fun stock market game where you can buy and sell stocks and compete with friends. The stock markets open tomorrow so be sure to play with it during the day!
Its really exciting because we built the entire backend in Dart (duh).
We take a lot of advantage of Isolates and use the Dart RPC https://github.com/dart-lang/rpc
framework to power our API. Push uses darts built in Web socket framework, which couldn't have been more easier to use.
Previously we had a stock app that used Node.js to power quotes, when we decided to make it into a game rather than a tool, we rewrote the whole back end in Dart.
Not only did it eliminate a lot of dependencies since Dart is " batteries included" it also made the code much cleaner thanks to Async/await and overall the Dart language.
One powerful feature we have is realtime leaderboards which are calculated based on your net gain. This was a pain in butt to do on Node, but with Darts isolate pattern, we are able to easily keep an isolate dedicated to calculating users net gain and leaving the main event loop to handle API logic.
Unit testing was another awesome thing with Dart. We used the unittest package and easily wrote tests for all our APIs.
To run those tests on each commit, we integrated with CodeShip for continuous integration and deployment. Yes! Their dart support is awesome. You just need to wget the right SDK.
For the database we used RethinkDB and redis. There are awesome packages for both and both do the job well.
We ended up writing a connection pool for RethinkDB which we ended up contributing back to the community and merging it with the pub package.
We're live, its exiting to get our first users on the system. See how they respond. There are a lot of features to add, more cool Dart stuff to do, and push the DartVM to its limits!
Framework: Dart RPC & Web sockets
PAAS: Heroku for now, moving to AWS end of this week.