Robert Åkerblom-Andersson
2016-08-21 11:28:32 UTC
Hi,
*Background*
I plan to attend the Dart Developer Summit later this year, I have been
thinking that it would be fun to contribute with a talk. Now the tricky
part is coming up with a good proposal, I thought I'd ask for feedback here
to see what people think. I would love to get some feedback on my proposal,
both positive and negative. This is not necessarily the exact abstract
version that is required for the official application, look at it as more
of an informal check of interest. Based on potential feedback I will decide
if it feels worth it to sending in a proposal or not.
Some of you reading this might recognize me from other interactions around
Dart, online or at the Dart summit last year, but for others a short
personal introduction might be relevant in relation to the proposal, plus
some technical background. Personally I have been involved with Dart since
around 2012, I got the idea of building a PaaS for Dart around the time I
discovered Dart. To make a long story short building a PaaS from the ground
up takes a looong time, it was called DartVoid in the early days and it has
been through several iterators and rewrites at different layers to later
evolve into a new service called Sourcevoid <https://www.sourcevoid.com/>
that went live this summer. We use Dart quite a lot at Sourcevoid, here are
some examples;
- Our homepage is server side rendered using Dart, most content is written
in markdown, then live rendered and cached in memory by the server, on
mobile the menu animation is done using client side Dart
- Our main customer facing app is a Dart SPA app
(https://cloud.sourcevoid.com), it in turn uses a client library written in
Dart to talk to a Dart API
- The Dart API server implements certain functionality on it's own while
most requests are translated via an internal Dart to Go RPC implementation.
The core functionality of the PaaS platform such as scheduling and managing
containers and so on and so forth is implemented in Go. Why Go? At the time
when this implementation was started Dart had not reach 1.0 yet, plus Go is
a little better suited for more system level programming like this while
Dart shines in other areas, I should also add that sometimes I miss certain
higher level Dart features when developing in Go.
- We have a Dart CLI app that is under development that will be released
later this fall, it will reuse the Dart client library and models that the
browser UI uses today, combining our existing client library with
Dart's args package makes it's a very nice developer experience. The plan
is to release this sometime between now and the Dart summit, it will
implement a subset of the UI's functionality at start and get more complete
over time.
*Proposal discussion: Dart API Clients Everywhere*
I thought it could be interesting to see an architecture overview of how we
use Dart API clients "everywhere", that is reusing the same API client
library both in the browser and on desktop/server and how we how we share
code between these different platforms. I was thinking that I could start
with an architecture overview to see how the API and backend services
connects to each other, basically some visual representation of the
architecture so you get a feel for the system. Then my idea was to go a
little deeper into the client API library and CLI app, maybe show how we
use the http package on both the browser and the desktop, not a huge thing
but there are small differences because of dart:io vs dart:html. Maybe look
at a little bit of code, to see how the CLI app works and how you can build
CLI apps quite easily with the args package. We don't have plans to release
any mobile app at this point, but if the audience / you reading this would
find it interesting I could maybe put together a small prof of concept
Flutter app as well, since our API client is built on the http package I
think it should not be too much work to get our client lib to work on
Flutter as well (they have their own implementation of the http package,
but I think it should work similar to how we use the http package for the
dart:html vs dart:io implementations).
*Feedback*
1. Overall, would you like to see a talk like this? (Yes/No)
2. Was it something in particular that you think I should add, remove or
change? (Keep in mind that this is not a formal abstract proposal but still)
3. The Flutter thing, would that be interesting? (Yes/No)
Sincerely, Robert
*Background*
I plan to attend the Dart Developer Summit later this year, I have been
thinking that it would be fun to contribute with a talk. Now the tricky
part is coming up with a good proposal, I thought I'd ask for feedback here
to see what people think. I would love to get some feedback on my proposal,
both positive and negative. This is not necessarily the exact abstract
version that is required for the official application, look at it as more
of an informal check of interest. Based on potential feedback I will decide
if it feels worth it to sending in a proposal or not.
Some of you reading this might recognize me from other interactions around
Dart, online or at the Dart summit last year, but for others a short
personal introduction might be relevant in relation to the proposal, plus
some technical background. Personally I have been involved with Dart since
around 2012, I got the idea of building a PaaS for Dart around the time I
discovered Dart. To make a long story short building a PaaS from the ground
up takes a looong time, it was called DartVoid in the early days and it has
been through several iterators and rewrites at different layers to later
evolve into a new service called Sourcevoid <https://www.sourcevoid.com/>
that went live this summer. We use Dart quite a lot at Sourcevoid, here are
some examples;
- Our homepage is server side rendered using Dart, most content is written
in markdown, then live rendered and cached in memory by the server, on
mobile the menu animation is done using client side Dart
- Our main customer facing app is a Dart SPA app
(https://cloud.sourcevoid.com), it in turn uses a client library written in
Dart to talk to a Dart API
- The Dart API server implements certain functionality on it's own while
most requests are translated via an internal Dart to Go RPC implementation.
The core functionality of the PaaS platform such as scheduling and managing
containers and so on and so forth is implemented in Go. Why Go? At the time
when this implementation was started Dart had not reach 1.0 yet, plus Go is
a little better suited for more system level programming like this while
Dart shines in other areas, I should also add that sometimes I miss certain
higher level Dart features when developing in Go.
- We have a Dart CLI app that is under development that will be released
later this fall, it will reuse the Dart client library and models that the
browser UI uses today, combining our existing client library with
Dart's args package makes it's a very nice developer experience. The plan
is to release this sometime between now and the Dart summit, it will
implement a subset of the UI's functionality at start and get more complete
over time.
*Proposal discussion: Dart API Clients Everywhere*
I thought it could be interesting to see an architecture overview of how we
use Dart API clients "everywhere", that is reusing the same API client
library both in the browser and on desktop/server and how we how we share
code between these different platforms. I was thinking that I could start
with an architecture overview to see how the API and backend services
connects to each other, basically some visual representation of the
architecture so you get a feel for the system. Then my idea was to go a
little deeper into the client API library and CLI app, maybe show how we
use the http package on both the browser and the desktop, not a huge thing
but there are small differences because of dart:io vs dart:html. Maybe look
at a little bit of code, to see how the CLI app works and how you can build
CLI apps quite easily with the args package. We don't have plans to release
any mobile app at this point, but if the audience / you reading this would
find it interesting I could maybe put together a small prof of concept
Flutter app as well, since our API client is built on the http package I
think it should not be too much work to get our client lib to work on
Flutter as well (they have their own implementation of the http package,
but I think it should work similar to how we use the http package for the
dart:html vs dart:io implementations).
*Feedback*
1. Overall, would you like to see a talk like this? (Yes/No)
2. Was it something in particular that you think I should add, remove or
change? (Keep in mind that this is not a formal abstract proposal but still)
3. The Flutter thing, would that be interesting? (Yes/No)
Sincerely, Robert
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
---
You received this message because you are subscribed to the Google Groups "Dart Misc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to misc+***@dartlang.org.