Ever thought about using Dart for your server-side code?

I call it "Dart-as-a-backend".

This ๐Ÿงต talks about various Dart packages that you can use to write your server-side code using Dart.

#flutter #flutterdev
1. shelf

It's a tooling package published by the Dart team. Shelf makes it easy to create a basic web server and parts of a web server.

It is a Web server middleware for Dart.

pub.dev/packages/shelf
2. shelf_router

It is used for defining various routes for your web server. Requests can come in for different endpoints like /api, /user, or even with different HTTP methods like GET, POST, etc.
shelf_router routes them to their appropriate handlers.

pub.dev/packages/shelfโ€ฆ
3. shelf_proxy

A shelf handler for proxying HTTP requests to another server.

pub.dev/packages/shelfโ€ฆ
Wait! Now you might be having a question.

Are there only variants of shelf package that you can use for server-side development using Dart ?

No, there are plenty more packages developed by the wonderful people of the community.

Read on to know more ๐Ÿ‘‡
4. angel3

It lets you perform Request-Response handling, Dependency Injection, Denying requests using Middlewares, Serialization, and so on.

angel3-docs.dukefirehawk.com
5. conduit

Remember Aqueduct? It was earlier used server-side framework for Dart.
Conduit is built on top of Aqueduct after it went obsolete.

It's a Dart HTTP server framework for building REST APIs. Includes PostgreSQL ORM and OAuth2 provider.

github.com/conduit-dart/cโ€ฆ
6. jaguar

Jaguar, a server framework built for speed, simplicity and extensible. ORM, Session, Authentication & Authorization, OAuth.

github.com/Jaguar-dart/jaโ€ฆ
7. start

Sinatra inspired web development framework for Dart. It has simple API to serve static files, handle dynamic requests, websockets and create JSON responses.

github.com/lvivski/start
8. modular

Modular proposes to solve two problems:

a. Modularized routes.
b. Modularized Dependency Injection.

modular.flutterando.com.br
9. vane

Vane is server side framework written and optimized for the Dart programming language. Vane comes bundled with a lightweight and performant middleware system.

Supports three handler types; Func, Podo and Vane.

github.com/Scorpiion/Vane
10. alfred

A performant, expressjs like web server / rest api framework thats easy to use and has all the bits in one place.

github.com/rknell/alfred
Phew, that's a lot right !

I don't have a personal favourite, but the packages that I have used the most is shelf and its variants.

In future, I will definitely share more details about other packages and how you can leverage them for "Dart-as-backend" !
If you liked this thread, don't forget to like and retweet so that it reaches more amazing devs like you!!

I will share more content as I keep learning new things in the world Dart and Flutter ๐Ÿ’™

Don't forget to hit the follow button @GopinathanAswin

โ€ข โ€ข โ€ข

Missing some Tweet in this thread? You can try to force a refresh
ใ€€

Keep Current with Aswin Gopinathan ๐Ÿ’™๐Ÿ‡ฎ๐Ÿ‡ณ

Aswin Gopinathan ๐Ÿ’™๐Ÿ‡ฎ๐Ÿ‡ณ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @GopinathanAswin

20 Dec
This thread consists of all the ๐Ÿงตs i have written on various concepts in Dart and Flutter!

I will update this as i go onโ€ฆ

Anything for this wonderful community that has given me everything ๐Ÿ’™

#flutter #flutterdev
A ๐Ÿงต on using Futures the right way
Read 11 tweets
20 Dec
You have used em' but you wanna know how it works.

A brief introduction to Closures in Dart ๐Ÿ’™

A thread ๐Ÿงต
So, how do you define the onTap callback for GestureDetector?

Something like this right ๐Ÿ‘‡๐Ÿป
So, what is the datatype of the data member onTap?

It is ----> void Function()

But, if you open the code for GestureDetector, onTap will be of type "GestureTapCallback", which inturn is an alias for : void Function()
Read 14 tweets
19 Dec
A ๐Ÿงต on my favourite 20 CLI commands for Dart and Flutter Developers!

#flutter #flutterdev
1. Create a Dart application
2. Run a Dart file
Read 23 tweets
18 Dec
Final vs Const

A ๐Ÿงตon the battle of Immutability โš”๏ธ

#flutter #flutterdev
Immutability means you cannot change the data stored in a variable during the entire life time of your app.

But why do we use immutable variables ?
Imagine you are working on an exam portal for your school. You are given the task of building an on-screen scientific calculator.

The most common symbol you use in maths is ฯ€ (Pi) which is equal to 3.1415.

This remains the same even after 100 years right ?
Read 19 tweets
17 Dec
Everything you need to know about Widget Lifecycle in Flutter

A thread ๐Ÿงต

#flutter #flutterdev
There are two types of Widgets in Flutter:

1. Stateless Widget : They do not change their state throughout the lifetime of your application. They are like a constant widget.

2. Stateful Widget: They are dynamic, they change their state based on the External Interactions.
A side note: Stateless widgets can change their state if some state management tools are used like Provider, Bloc, etc

But thatโ€™s out of the scope of this thread.

Letโ€™s continue ๐Ÿ‘‡๐Ÿป
Read 19 tweets
15 Dec
Mockito + Unit Testing in Flutter 101

This thread talks about Verify and Stubbing using Mockito๐Ÿงต

#flutter #flutterdev
If you are pretty new to Unit Testing, I suggest you read through my previous thread on Unit Testing:

So, what is Mockito and why do we need to use them while testing?

๐Ÿ‘‡๐Ÿป
Read 18 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(