Custom extensions in Dart

Logo
appstonelab
Blog Image

In this blog, I would like to share the amazing concept of Dart Extensions and how to make custom extensions for quality and optimised code.

The specialty of this blog is that it will show you how to create extensions from your JSON models and it is very useful for state management.

What are Extensions?

Extension is used to enhance the feature of an existing class or a library. Using the extensions, one cannot change the existing properties of the class but can definitely change the view of class or model.

Extensions are identical to the “prototype” of Javascript but unlike executing at the run time, this gets executed at the compile time.

How to write extensions?

extension <extension name> on <type> {(<member definition>)*}

You can also make this for different data types. Like the below:

extension <extension name> on <class you want to add functionality to, ex: String, Integer, Widget etc>{}

Let’s create some built-in dart extensions.

  1. toString()

– This is used to convert any type of variable into String.

Ex. double number = 2.0 // variable with type double.

number.toString() // it is converted to a string.

int number = 2 // variable with type int.

number.toString() // it is converted to a string.

  1. length

– This is used to check how many members are present in a list.

Ex. List<int> numberList = [1, 0, 7, 4, 78]

int numberOfElement = numberList.length

print(numberOfElement)

Answer will be “5”;

Let’s create some custom extensions.

  • Date format on “String”

How to use it?

<your_date>.toDateFormat(incomingDateFormat: “dd/MM/yyyy HH:mm:ss” , requiredFormat: “yyyy-MM-dd HH:mm:ss”)

The above example gives you a date in your desired format. It’s quite easy but more useful.

  • Date format on “JSON model”

Here “LazyLoadModel” is our JSON model. Let me show you an actual model.

In the example above, we converted our entire model into just 1 URL and when you want to use that URL you just have to type the following line.

// variable initialization

LazyLoadModel lazyLoadModel = LazyLoadModel(limit: 0, offset: 1, searchText: “sample”);

Print(lazyLoadModel.getLaztLoadUrl) //

Here “getLaztLoadUrl” is our custom extension which we made above.

Output : “offset=1&limit=5&search=sample”

How are extensions beneficial?

  • As you know, you have to write long code without using extensions to achieve something very simple.
  • This is also the correct way but it has a lot of code and it is not readable.

But using the extension, you can see that the code becomes easier to understand.

  • It’s a great way to add custom functionality to built-in libraries and widgets. You will use the extension method when you need it.
  • Extensions are evaluated at compile time.

Conclusion

In this blog, we have discussed how to create an extension that is not present in Dart built-in but you really need it to optimize your code.

Happy Coding!

Related Post

View all
Blog Image

New AdonisJS Tools: FlyDrive, Transmit, Health Checks & More!

AdonisJS update introduces FlyDrive, Transmit, health checks & more, simplifying file storage, real-time events, debugging, and background tasks for faster Node.js development.

Blog Image

The behaviorism of design: 15 fundamentals every UI/UX designer should be aware of

1. Hick’s Law: Hick’s law is the most prevailing fundamental, along with the gestalt laws. It’s also very elementary to understand and practice. 2. Priming: Priming is a basic fundamental of psychology with a huge impact on user interface design: acknowledgment of something makes a user more likely to think and express in related ways at later steps in the interaction. 3. Cognitive Load The total analytic load, or portion of mental processing power required to use your site, impacts how effortlessly users discover content and finalize the tasks. 4. Progressive Disclosure Progressive disclosure postpones the improved or hardly used […]

Blog Image

How To Flash Custom Rom on an Android Device

What Is a Custom Rom? (Android Read Only Memory) A file consisting the feasible requirements (a system image) of an Android OS and allied apps. The “stock ROM” comes inbuilt on the phone or tablet, whereas a “custom ROM” comes from an outsider.The custom ROM is either a distinctively improved OS, such as Cyanogen, or a stock version made accessible for older devices or for new devices before the vendor launch date. Why should you Use a Custom ROM? Flashing the ROM: Flashing a ROM means installing the system image into the device’s internal flash memory. Flash memory retains the […]

Blog Image

Top server security analysis tools

There are many server analysis tools available today and we will see some tools/websites which scan server/hostname for various security testing which I usually use. Sometimes we ignore small security points, but those points motivate hackers to hack sites. There are some concepts which secure the user (End user) data security. We can make our server/domain secure by HTTP/HTTPS, SSL/TLS, SMTP/PoP3, SSH, FTP, etc.. various tests on the site below which will list your vulnerabilities. 1. Observatory.mozilla.org This is one of the best sites to test server vulnerability. I always use this to scan first to check various security. It […]

Blog Image

Flutter Snippets

What is a snippet in flutter? Flutter snippets is a collection of commonly used flutter classes and methods. It increases your code speed of development by eliminating most of the boilerplate code associated with creating a widget. Currently, Awesome Flutter snippets provide different kinds of shortcuts for widgets. For example, StreamBuilder and SingleChildScrollView can be created by typing the shortcut streamBldr and singleChildSV respectively. Please find below few of the snippets with the respective shortcuts: Shortcut Expanded Description statelessW Stateless Widget Generates a Stateless widget statefulW Stateful Widget Generates a Stateful widget build Build Method Explains the part of the […]

Blog Image

How to Add Push Notifications to a Flutter App using Firebase Cloud Messaging?

What are push notifications: Push Notifications are a kind of pop-up messaging source that notifies the app users about the updates happening in the app. They also play an important role in boosting the user involvement in your app. The main motive of app push notifications is to provide information to the user so that he gets back to the application. These notifications emerge at the top of the smartphone screen even if the app is closed. Their detailed message gives the subscriber the below options: Click on the message, or swipe it off the screen and view it later […]

Blog Image

Deep linking

Deep linking technology has obtained substantial awareness over the past few years by permitting the marketers to upgrade their involvement with mobile app users. Deep links offer a comprehensible way for app publishers to rectify, convey, and transfer the users to a particular content within apps. Eventually, they can assist the app publishers boost the installs, user involvement, and conversions — the fundamental to any app’s accomplishment. Deep links are mobile links that manage much like hyperlinks, but instead of pointing out the users to a web page, deep links send them to a certain screen within a mobile application. […]

Blog Image

5 Tips for Managing Diversity in the Workplace

Workforce across the world is becoming increasingly diverse, and this has a huge impact on the management. We tried creating a guide with practical and actionable tips for managing diverse teams that are inclusive and positive. What is diversity in the workplace? Diversity in the workplace refers to an organization that intentionally employs a workforce comprised of individuals of range of characteristics, such as gender, religion, race, age, ethnicity, sexual orientation, education, and other attributes. Workplace diversity is a regular subject of discussion among employers, hiring managers, and recruitment skilled officials but diversity and inclusion in the workplace isn’t just […]

Blog Image

Getting started with Tailwind CSS

What is tailwind CSS? TailwindCSS is a utility-first CSS framework. This implies that they are primarily focused on utilities. They provide utility classes like flex, pt-4, bg-orange-100, and rotate-90 that can be combined for building modern user-friendly UI components. Their purpose isn’t necessarily to define your component’s appearance. Using the different classes they provide, you decide what to do. Why Tailwind CSS? An experienced CSS framework user or a total beginner might ask this question. Tailwind allows for full customization, allows the use of utility classes, and is a very low-level and basic CSS framework for anyone interested in using […]

Blog Image

Simple & Constructive methods to improve your Visual/UI Design

1. Get acquainted with design patterns Get accustomed with the UI/UX design patterns and what specific issues they solve. Generally speaking, design patterns are known as common reference points, guides, templates that designers might utilize to resolve a particular issue when designing a website or mobile app, so you do not have to revamp the wheel every single time trying to solve the problem. I’ve assembled a list of some of the best places to obtain the design specimen on the web: pttrns.com A great compilation of mobile design specimens uisources.com — mobile design samples & interactions uigarage.net — regular […]

Blog Image

What is SEO(Search Engine Optimization)?

Search engine optimization (SEO) consists of improving a website’s ranking in search engines and thereby boosting its traffic from search engines. The objective of SEO is to target unpaid traffic (also known as “organic” or “natural” results) rather than direct traffic or paid traffic. The crucial difference between SEO and paid advertising is that SEO involves “organic” ranking, which implies you don’t pay to be there in space. Search machine optimization means taking a chunk of online content and optimizing it, so search machines like Google show it towards the highest of the runners when someone searches for a commodity. […]

Blog Image

Sanctum-Library

Sanctum is an easy package to issue API tokens to the users without the complication of OAuth. Sanctum provides authentication services based on Laravel built-in cookie base sessions. For small applications, I prefer using Sanctum because it’s simple and easy. What is Laravel Sanctum? Laravel Sanctum gives a lightweight authentication system for simple token based APIs and mobile applications, and single page applications (SPA). In Sanctum, we have two different ways mainly as mentioned below: 1) The API Token Authentication.2) Single page application authentication. This Authentication process is similar to API token Authentication process. Now we shall understand the difference […]

Hero Image

Ready to BuildYour Next Big Project?

Partner with our expert team for clear guidance, reliable solutions and faster, high quality delivery from idea to launch.

Book Free Consultation