<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jay Tillu</title>
    <description>The latest articles on DEV Community by Jay Tillu (@jay_tillu).</description>
    <link>https://dev.to/jay_tillu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F182363%2F6b73aaa6-0778-4f8d-bec2-1e813fac166c.jpeg</url>
      <title>DEV Community: Jay Tillu</title>
      <link>https://dev.to/jay_tillu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jay_tillu"/>
    <language>en</language>
    <item>
      <title>What is AWS Identity and Access Management (IAM)?</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Thu, 30 May 2024 12:31:23 +0000</pubDate>
      <link>https://dev.to/jay_tillu/what-is-aws-identity-and-access-management-iam-39kp</link>
      <guid>https://dev.to/jay_tillu/what-is-aws-identity-and-access-management-iam-39kp</guid>
      <description>&lt;p&gt;The vast potential of the cloud comes with a crucial responsibility: security. AWS IAM provides a centralized platform for managing user identities and controlling their access to AWS services and resources. It provides a way to create and manage users, groups, roles, and policies that determine who can do what, where, and when in your AWS account.&lt;/p&gt;

&lt;p&gt;Imagine your AWS account as a digital fortress. IAM acts as the gatekeeper, meticulously determining who (users, applications, services) can access what resources (S3 buckets, EC2 instances, etc.), when (temporary or long-term access), and under what conditions (specific actions allowed by permissions).&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Components of AWS IAM
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Users:&lt;/strong&gt; IAM allows you to create individual users with unique credentials, enabling them to access AWS resources securely. Each user can have specific permissions assigned to them based on their role within the organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Groups:&lt;/strong&gt; Groups in IAM simplify permission management by allowing you to organize users with similar access requirements. Instead of assigning permissions to individual users, you can assign them to groups, streamlining the process of access management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Roles:&lt;/strong&gt; IAM roles are entities with permissions that can be assumed by users, applications, or services within your AWS environment. Roles provide temporary access to resources and are commonly used for cross-account access, federated access, and granting permissions to AWS services.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Policies:&lt;/strong&gt; IAM policies define the permissions that are granted or denied to users, groups, or roles. Policies are JSON documents that specify the actions users can perform and the resources they can access. By adhering to the principle of least privilege, you can ensure that users have only the permissions necessary to perform their tasks.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits of AWS IAM
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Granular Access Control:&lt;/strong&gt; IAM enables you to define fine-grained permissions, allowing you to grant only the necessary level of access to resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security:&lt;/strong&gt; By following the principle of least privilege, IAM helps reduce the risk of unauthorized access and data breaches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Flexibility:&lt;/strong&gt; IAM supports a wide range of use cases, from managing users and groups to granting temporary access through roles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Compliance:&lt;/strong&gt; IAM features such as access logging and identity federation help organizations maintain compliance with regulatory requirements.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  1. AWS Root User Account
&lt;/h2&gt;

&lt;p&gt;The AWS Root User Account is the initial account created when you sign up for AWS services. It has complete access to all AWS services and resources within the account. The root user has full administrative privileges, including the ability to manage billing, change account settings, and create or delete IAM users and roles. However, it's important to note that using the root user account for everyday tasks is not recommended due to security and management reasons.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices for AWS Root Account
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Secure credentials with strong passwords and Multi-Factor Authentication (MFA).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limit its use to essential administrative tasks only.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable MFA for added security.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create IAM users with the least privileges for routine tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use IAM roles for elevated access when necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Monitor root user activity with AWS CloudTrail.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider using AWS Organizations for managing multiple accounts centrally.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  2. AWS IAM Users
&lt;/h2&gt;

&lt;p&gt;An &lt;strong&gt;IAM user&lt;/strong&gt; is an identity that you create in AWS. It represents the person or application that interacts with AWS services and resources. It consists of a name and credentials. Unlike the root user with full access, IAM user accounts provide a secure way to grant granular permissions based on specific needs.&lt;/p&gt;

&lt;p&gt;By default, when you create a new IAM user in AWS, it has no permissions associated with it. To allow the IAM user to perform specific actions in AWS, such as launching an Amazon EC2 instance or creating an Amazon S3 bucket, you must grant the IAM user the necessary permissions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices for AWS IAM Users
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Individual Accounts:&lt;/strong&gt; AWS recommend that you create individual IAM users for each person who needs to access AWS. Even if you have multiple employees who require the same level of access, you should create individual IAM users for each of them. This provides additional security by allowing each IAM user to have a unique set of security credentials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Implement Least Privilege:&lt;/strong&gt; Assign permissions based on least privilege to limit access to only what's necessary.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Monitor User Activity:&lt;/strong&gt; Enable CloudTrail logging for IAM events to monitor user actions and detect anomalies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enforce Password Policies:&lt;/strong&gt; Implement strong password policies like minimum length, complexity requirements, and regular rotation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disable or Delete Unused Accounts:&lt;/strong&gt; Regularly review your IAM users and deactivate or delete any unused accounts to minimize the attack surface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable Multi-Factor Authentication (MFA):&lt;/strong&gt; Enhance security by requiring MFA for IAM user accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Utilize IAM Groups (Optional):&lt;/strong&gt; For IAM Users with similar permission requirements, create IAM groups and assign user accounts to those groups. This simplifies permission management.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  3. AWS IAM Policy
&lt;/h2&gt;

&lt;p&gt;AWS IAM Policy is a JSON document that defines permissions and access controls for AWS Identity and Access Management (IAM) users, groups, or roles. These policies specify what actions are allowed or denied on which AWS resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices for AWS IAM Policies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Least Privilege:&lt;/strong&gt; Grant only necessary permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leverage Managed Policies:&lt;/strong&gt; Utilize AWS-managed policies whenever possible, as they are maintained by AWS and automatically updated to reflect best practices and new features. Managed policies help ensure consistency and compliance with security standards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid Wildcards (*):&lt;/strong&gt; Refrain from using wildcard (*) actions in IAM policies whenever possible, as they grant overly broad permissions and increase the risk of unauthorized access. Instead, specify only the actions required for the specific task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable Versioning and Logging:&lt;/strong&gt; Maintain policy history and monitor changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test with IAM Policy Simulator:&lt;/strong&gt; Before deploying IAM policies in a production environment, use the IAM Policy Simulator to test and validate their effectiveness. The simulator helps identify potential issues and ensure policies behave as intended before implementation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Utilize Policy Variables:&lt;/strong&gt; Create dynamic policies for flexible access control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regularly Audit Policies:&lt;/strong&gt; Remove unnecessary permissions and outdated policies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable Access Analyzer:&lt;/strong&gt; Continuously monitor for unintended access and policy issues.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  4. AWS IAM Groups
&lt;/h2&gt;

&lt;p&gt;AWS IAM Groups are a way to organize IAM users and manage their permissions collectively. Instead of attaching permissions directly to individual users, you can assign permissions to groups, making it easier to manage access control in a scalable and efficient manner.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices for AWS IAM Groups
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organize Users by Access Needs:&lt;/strong&gt; Group users with similar permissions together.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apply Least Privilege:&lt;/strong&gt; Grant only necessary permissions to groups.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Managed Policies:&lt;/strong&gt; Utilize AWS-managed policies for consistent permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid Overlapping Permissions:&lt;/strong&gt; Ensure users are only in groups that align with their roles.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regularly Review Group Membership:&lt;/strong&gt; Periodically review and update group memberships.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Combine with IAM Policies:&lt;/strong&gt; Use IAM policies for fine-grained access control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Establish Naming Conventions:&lt;/strong&gt; Use consistent naming for easy identification and management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Document Policies and Membership:&lt;/strong&gt; Document permissions and group memberships for auditing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consider Cross-Account Access:&lt;/strong&gt; Centralize permissions management for multiple accounts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  5. AWS IAM Roles
&lt;/h2&gt;

&lt;p&gt;AWS IAM Roles are entities in AWS Identity and Access Management (IAM) that define a set of permissions and policies. Unlike users or groups, roles are not associated with specific individuals or resources. Instead, they are intended to be assumed by IAM users, AWS services, or external entities, allowing them to temporarily inherit the permissions associated with the role.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices for AWS IAM Roles
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Grant access temporarily:&lt;/strong&gt; IAM roles are ideal for situations in which access to services or resources needs to be granted temporarily, instead of long-term.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cross-Account Access:&lt;/strong&gt; Use roles to grant access between AWS accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Avoid Long-Term Credentials:&lt;/strong&gt; Utilize roles instead of long-term access keys. Roles provide temporary credentials that automatically rotate, reducing the risk of credential compromise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Roles for AWS Services:&lt;/strong&gt; Assign roles to AWS services for dynamic permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Role-Based Access Control (RBAC):&lt;/strong&gt; Follow the least privilege principles when defining role permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Role Tags:&lt;/strong&gt; Use tags for efficient role management. Tags can be used for cost allocation, access control, and resource management purposes, providing additional context and organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;IAM Permission Boundaries:&lt;/strong&gt; Use IAM permission boundaries to limit the maximum permissions that can be granted by an IAM role. Permission boundaries help enforce security policies and prevent users from escalating privileges beyond their intended scope.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Regular Credential Rotation:&lt;/strong&gt; Rotate credentials associated with IAM roles, such as temporary security tokens or session tokens, regularly to mitigate the risk of unauthorized access due to compromised credentials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enable CloudTrail Logging:&lt;/strong&gt; Enable AWS CloudTrail logging for IAM role activity to monitor and audit role assumptions and actions performed by users or services. CloudTrail provides detailed logs of API calls made by IAM roles, aiding in security analysis and compliance efforts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;AWS IAM is a critical component of AWS security, providing a robust framework for managing access to resources in the cloud. By following best practices and leveraging the features of IAM, organizations can enhance security, enforce compliance, and maintain control over their AWS environment. Whether you're a small startup or a large enterprise, understanding and effectively implementing AWS IAM is essential for securing your cloud infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://https/jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>aws</category>
      <category>security</category>
      <category>devops</category>
    </item>
    <item>
      <title>What is AWS Organization?</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Thu, 30 May 2024 12:19:35 +0000</pubDate>
      <link>https://dev.to/jay_tillu/what-is-aws-organization-416o</link>
      <guid>https://dev.to/jay_tillu/what-is-aws-organization-416o</guid>
      <description>&lt;p&gt;In today's digital landscape, where organizations are increasingly relying on cloud infrastructure to power their operations, managing multiple AWS accounts efficiently and securely has become a priority. AWS Organizations is a powerful service designed to streamline the management of multiple AWS accounts within an organization. In this blog, we'll delve into the features, benefits, and best practices of AWS Organizations, exploring how it empowers businesses to achieve greater efficiency and control in their cloud operations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do you need AWS Organizations?
&lt;/h2&gt;

&lt;p&gt;As your organization dives deeper into the cloud with AWS, the number of accounts you manage can quickly multiply. Development teams spin up accounts for projects, different departments require isolated environments, and mergers or acquisitions bring new accounts into the fold. This sprawl can lead to chaos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Security nightmares:&lt;/strong&gt; Inconsistent configurations and forgotten accounts create vulnerabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Billing confusion:&lt;/strong&gt; Sorting through individual account bills becomes a time-consuming headache.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource mismanagement:&lt;/strong&gt; Underutilized accounts waste resources while others struggle with capacity.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Organizational Units
&lt;/h2&gt;

&lt;p&gt;AWS Organizations helps you to consolidate and manage multiple AWS accounts within a central location. When you create an organization, AWS Organizations automatically creates a root, which is the parent container for all the accounts in your organization&lt;/p&gt;

&lt;p&gt;In AWS Organizations, you can group accounts into organizational units (OUs) to make it easier to manage accounts with similar business or security requirements. When you apply a policy to an OU, all the accounts in the OU automatically inherit the permissions specified in the policy.&lt;/p&gt;

&lt;p&gt;By organizing separate accounts into OUs, you can more easily isolate workloads or applications that have specific security requirements. For instance, if your company has accounts that can access only the AWS services that meet certain regulatory requirements, you can put these accounts into one OU. Then, you can attach a policy to the OU that blocks access to all other AWS services that do not meet the regulatory requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  How OUs help you manage your AWS accounts
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Grouping by Function:&lt;/strong&gt; Instead of mirroring your company's structure, OUs allow you to group accounts based on what they do. For instance, you can have separate OUs for Security, Development, Production, or specific applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized Policy Application:&lt;/strong&gt; Once accounts are grouped by function in OUs, you can implement Service Control Policies (SCPs) at the OU level. These SCPs define what services and actions users can perform within the accounts belonging to that OU. This simplifies policy management and ensures consistency across related accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Sharing:&lt;/strong&gt; OUs enable you to share resources like Amazon S3 buckets or Amazon RDS instances across accounts within the same OU. This fosters collaboration within teams working on the same projects or functionalities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Planning Your OU Structure
&lt;/h3&gt;

&lt;p&gt;There's no one-size-fits-all approach to structuring your OUs. However, some best practices can guide your planning:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with Foundational OUs:&lt;/strong&gt; Create initial OUs for Security and Infrastructure to centralize controls for these critical areas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workloads OU:&lt;/strong&gt; Establish a separate OU for application workloads, with potential sub-OUs for different applications or environments.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Focus on Function over Hierarchy:&lt;/strong&gt; Prioritize grouping accounts based on what they do rather than mimicking your company's reporting structure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following these practices, you can leverage OUs within AWS Organizations to create a well-organized and manageable multi-account cloud environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of AWS Organizations
&lt;/h2&gt;

&lt;p&gt;AWS Organizations offers a centralized solution to manage your growing herd of AWS accounts.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Simplify Account Management
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Effortless Onboarding:&lt;/strong&gt; Invite new accounts or create them within your organization with a few clicks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized Governance:&lt;/strong&gt; Define naming conventions and enforce IAM best practices across all accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consolidated Billing:&lt;/strong&gt; Pay for your entire organization's cloud usage with a single bill.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Enhance Security and Compliance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standardized Security Policies:&lt;/strong&gt; Implement organization-wide policies to restrict actions, enforce encryption, and ensure service usage adheres to compliance standards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Centralized Logging:&lt;/strong&gt; Gain a bird's-eye view of activity across all accounts with services like AWS CloudTrail Lake for simplified auditing and security investigations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Optimize Resource Allocation
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organizational Units (OUs):&lt;/strong&gt; Group accounts based on function or project for targeted policy application and easier resource management.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Resource Sharing:&lt;/strong&gt; Share services like Amazon S3 buckets or Amazon RDS instances across accounts within an OU for efficient collaboration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Maintain Cost Control
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Allocation Tags:&lt;/strong&gt; Track costs associated with specific departments, projects, or applications using tags for better budgeting and resource allocation decisions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consolidated Billing Reports:&lt;/strong&gt; Analyze spending patterns across your organization and identify cost-saving opportunities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Best Practices for AWS Organizations
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Account Structure
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Group by Function, Not Hierarchy:&lt;/strong&gt; Organize accounts based on what they do (security, infrastructure, workloads) instead of mirroring your company's reporting structure. This allows for more flexibility and future changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start with Foundational OUs:&lt;/strong&gt; Create initial Organizational Units (OUs) for Security and Infrastructure to centralize controls for these critical areas.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Workloads OU:&lt;/strong&gt; Establish a separate OU for application workloads (production, development, testing). Further, subdivide this OU for different applications or environments as needed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Standardization and Governance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use the Management Account Wisely:&lt;/strong&gt; Reserve the management account solely for organization-wide tasks and don't store resources there.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Standardize Naming Conventions:&lt;/strong&gt; Implement consistent naming rules for accounts, OUs, and resources for better organization and identification.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enforce Security Policies:&lt;/strong&gt; Utilize Service Control Policies (SCPs) to enforce security best practices and compliance standards across all accounts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Cost Management and Optimization
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consolidated Billing:&lt;/strong&gt; Leverage consolidated billing to simplify expense management and identify cost trends across your organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Allocation Tags:&lt;/strong&gt; Implement cost allocation tags to categorize resources and track spending by department, project, or application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Rightsize Accounts:&lt;/strong&gt; Regularly review account usage and adjust account types (free tier, paid) to optimize costs.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is the AWS Service Control Policy?
&lt;/h2&gt;

&lt;p&gt;A Service Control Policy (SCP) is a feature provided by AWS Organizations that allows organizations to establish and enforce central policies across multiple AWS accounts within their organization. SCPs help administrators control which AWS services and features are available to users and resources within each account, regardless of the individual account's IAM (Identity and Access Management) policies.&lt;/p&gt;

&lt;p&gt;Here are key aspects of Service Control Policies:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scope:&lt;/strong&gt; SCPs apply at the organizational level and affect all member accounts within the AWS Organization. They provide a centralized mechanism for administrators to enforce security, compliance, and governance policies across multiple AWS accounts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Restrictive Access Controls:&lt;/strong&gt; SCPs operate by specifying the permissions that are allowed or denied for each AWS service or feature. Administrators can use SCPs to restrict access to certain AWS services, APIs, actions, or resources, helping to enforce security and compliance requirements.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Hierarchy:&lt;/strong&gt; SCPs can be applied hierarchically within the organizational structure defined by AWS Organizations. This means that SCPs applied at a higher level in the hierarchy affect all accounts below it, unless overridden by more permissive policies applied at lower levels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Precedence:&lt;/strong&gt; SCPs have precedence over IAM policies. Even if an IAM policy grants permissions to a user or role within an AWS account, those permissions can be further restricted or denied by the SCP applied to the account or organizational unit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enforcement:&lt;/strong&gt; SCPs are enforced by the AWS Organizations service, which evaluates and enforces the policies across all member accounts. This ensures consistent policy enforcement and helps maintain a secure and compliant environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Cases:&lt;/strong&gt; SCPs can be used for various purposes, including enforcing regulatory compliance, preventing unauthorized access to sensitive resources, limiting access to specific AWS services based on business requirements, and maintaining security best practices across the organization.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, Service Control Policies provide administrators with a powerful tool for centrally managing and enforcing access controls across multiple AWS accounts within an organization. By leveraging SCPs, organizations can enhance security, enforce compliance, and maintain governance standards across their AWS environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;AWS Organizations stands as a cornerstone for organizations seeking to streamline the management of their cloud infrastructure. By leveraging its powerful features, such as OUs, SCPs, and consolidated billing, organizations can achieve greater efficiency, control, and security in their cloud operations. As businesses continue to embrace cloud technologies, AWS Organizations remains an indispensable tool for orchestrating multi-account environments and unlocking the full potential of the AWS cloud.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://https/jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>aws</category>
      <category>devops</category>
    </item>
    <item>
      <title>What is AWS Artifact?</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Wed, 29 May 2024 17:01:49 +0000</pubDate>
      <link>https://dev.to/jay_tillu/what-is-aws-artifact-3id1</link>
      <guid>https://dev.to/jay_tillu/what-is-aws-artifact-3id1</guid>
      <description>&lt;p&gt;AWS Artifacts is a centralized platform offered by Amazon Web Services that provides customers with on-demand access to many compliance reports and agreements. Whether you're a startup or an enterprise, AWS Artifacts serves as your one-stop shop for all things related to security, compliance, and legal documentation within the AWS ecosystem.&lt;/p&gt;

&lt;p&gt;There are two main components to AWS Artifact:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;AWS Artifact Reports&lt;/li&gt;
&lt;li&gt;AWS Artifact Agreements&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. AWS Artifact Reports
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxu5a8ofon6na7v95cefp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxu5a8ofon6na7v95cefp.png" alt=" " width="800" height="335"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The following are some of the compliance reports and regulations that you can find within AWS Artifact. Each report includes a description of its contents and the reporting period for which the document is valid.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Function:&lt;/strong&gt; Provide pre-generated reports that demonstrate AWS's compliance with various security and industry standards.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Artifact Reports provide compliance reports from third-party auditors. These auditors have tested and verified that AWS is compliant with a variety of global, regional, and industry-specific security standards and regulations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AWS Artifact Reports remains up to date with the latest reports released. You can provide the AWS audit artifacts to your auditors or regulators as evidence of AWS security controls.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content:&lt;/strong&gt; Focuses on AWS's internal security posture, controls, and procedures. Examples include SOC reports (security), ISO certifications (various areas like quality management), and PCI reports (payment card industry data security).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Helpful for organizations using AWS to understand the overall security posture of the underlying cloud infrastructure.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  2. AWS Artifact Agreements
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Function: Manage agreements between your organization and AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In AWS Artifact Agreements, you can review, accept, and manage agreements for an individual account and for all your accounts in AWS Organizations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Content:&lt;/strong&gt; Focuses on defining the legal rights and responsibilities of both parties when handling sensitive data. Common agreements include Business Associate Agreements (BAA) for healthcare data (HIPAA compliance) and Data Processing Agreements (DPA) for general data privacy regulations (like GDPR).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Use Case:&lt;/strong&gt; Essential for managing your organization's compliance obligations when storing or processing sensitive data in AWS. These agreements outline how both AWS and your organization will handle data security, privacy, and breaches.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  In simpler terms:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reports:&lt;/strong&gt; Show how secure AWS is (think of it as a brochure for AWS's security practices).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agreements:&lt;/strong&gt; Define how you and AWS will handle your data security together (like a contract outlining responsibilities).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Benefits of AWS Artifact
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Saves Time:&lt;/strong&gt; Provides on-demand access to security and compliance reports in a self-service portal. This eliminates the need to contact AWS support or search for reports manually.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Improved Manageability:&lt;/strong&gt; Allows you to manage agreements with AWS at scale. You can accept, terminate, and download agreements electronically, streamlining the process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Increased Confidence:&lt;/strong&gt; By providing easy access to compliance reports, AWS Artifact helps you understand the security posture of the AWS cloud infrastructure you're using. This can give you greater confidence when deploying your workloads on AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplified Compliance:&lt;/strong&gt; AWS Artifact Agreements can help simplify compliance with regulations that require specific data handling procedures. For example, Business Associate Agreements (BAA) are essential for healthcare organizations that store protected health information (PHI) in AWS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Transparency:&lt;/strong&gt; Having easy access to both AWS's security reports and your agreements with AWS fosters a more transparent relationship between you and the cloud provider.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In today's data-driven world, security and compliance are paramount. AWS Artifact offers a valuable tool for organizations using AWS by simplifying access to security reports and managing data handling agreements. By using AWS Artifact, you can save time, streamline compliance efforts, and gain peace of mind knowing your data is secure within the AWS cloud infrastructure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://https/jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>aws</category>
      <category>cloud</category>
      <category>devops</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>How AWS Shield Protects You From DDoS?</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Tue, 28 May 2024 09:33:05 +0000</pubDate>
      <link>https://dev.to/jay_tillu/how-aws-shield-protects-you-from-ddos-5efp</link>
      <guid>https://dev.to/jay_tillu/how-aws-shield-protects-you-from-ddos-5efp</guid>
      <description>&lt;p&gt;The threat of cyber attacks is large in today's interconnected digital world, where businesses and individuals rely heavily on online services. One such threat that has gained fame in recent years is the Distributed Denial of Service (DDoS) attack. In this blog post, we'll delve into what DDoS attacks are, how they work, their impact, and measures to mitigate them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding DDoS Attacks
&lt;/h2&gt;

&lt;p&gt;At its core, a DDoS attack aims to disrupt the normal operation of a targeted server, service, or network by flooding it with an overwhelming volume of traffic. The "distributed" aspect refers to the utilization of multiple compromised devices, forming a botnet, to generate this traffic. These devices can range from computers and smartphones to Internet of Things (IoT) devices, all under the control of the attacker.&lt;/p&gt;

&lt;h2&gt;
  
  
  How DDoS Attacks Work
&lt;/h2&gt;

&lt;p&gt;DDoS attacks typically unfold in several stages:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Botnet Formation:&lt;/strong&gt; Attackers infect numerous devices with malware, gaining control over them and forming a botnet.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Command and Control:&lt;/strong&gt; The attacker issues commands to the botnet, instructing it to send a flood of requests to the target server or network.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Traffic Flood:&lt;/strong&gt; The botnet obediently follows these instructions, inundating the target with a deluge of traffic, thereby overwhelming its resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;DDoS attacks are particularly troublesome because they're difficult to stop. Unlike a lone attacker, a botnet spreads the attack across numerous devices, making it hard to identify and block the source.&lt;/p&gt;

&lt;h2&gt;
  
  
  Impact of DDoS Attacks
&lt;/h2&gt;

&lt;p&gt;The consequences of a successful DDoS attack can be severe:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Service Disruption:&lt;/strong&gt; The targeted service becomes inaccessible to legitimate users, resulting in downtime and loss of productivity.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Financial Losses:&lt;/strong&gt; Businesses may suffer financial losses due to interrupted operations, decreased customer trust, and potential regulatory penalties.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reputation Damage:&lt;/strong&gt; Organizations targeted by DDoS attacks often experience reputational damage, eroding customer confidence and brand loyalty.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Reasons behind DDoS Attack
&lt;/h2&gt;

&lt;p&gt;But why do attackers unleash such chaos? Here are some common reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extortion Money:&lt;/strong&gt; Sometimes, attackers use DDoS attacks for financial gain. They threaten to take down a website unless the victim pays a ransom.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disrupting the System:&lt;/strong&gt; Hacktivists might use DDoS attacks to disrupt the operations of a company or organization they disagree with.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Taking Down the Competition:&lt;/strong&gt; Malicious businesses might use DDoS attacks to sabotage their competitor's online presence.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thankfully, there are ways to defend against DDoS attacks. Security measures like DDoS mitigation services can help filter out suspicious traffic and keep websites and online services up and running.&lt;/p&gt;

&lt;h2&gt;
  
  
  How AWS Shield Protects You From DDoS
&lt;/h2&gt;

&lt;p&gt;AWS Shield Standard automatically protects all AWS customers at no cost. It protects your AWS resources from the most common, frequently occurring types of DDoS attack. AWS Shield is a crucial component of Amazon Web Services (AWS) defence strategy against Distributed Denial of Service (DDoS) attacks. Here's how AWS Shield protects its customers. AWS Shield offers two tiers of protection: Standard and Advanced.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. AWS Shield Standard
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Protection:&lt;/strong&gt; AWS Shield Standard is automatically enabled for all AWS customers at no additional cost. It provides protection against the most common and frequently occurring DDoS attacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Always-On Monitoring:&lt;/strong&gt; AWS Shield Standard continuously monitors AWS global network traffic, looking for signs of malicious activity or DDoS attacks targeting customer resources.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inline Mitigations:&lt;/strong&gt; When AWS Shield detects a DDoS attack, it automatically deploys inline mitigations to filter out malicious traffic and allow legitimate traffic to reach customer resources.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. AWS Shield Advanced
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enhanced Protection:&lt;/strong&gt; AWS Shield Advanced is a premium offering that provides additional DDoS protection beyond what is offered in AWS Shield Standard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Customization:&lt;/strong&gt; With AWS Shield Advanced, customers gain access to enhanced detection and mitigation capabilities, as well as more granular controls and customization options to tailor protection to their specific needs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;24/7 DDoS Response Team (DRT):&lt;/strong&gt; AWS Shield Advanced subscribers have access to a dedicated DDoS Response Team (DRT) that provides assistance and guidance during DDoS attacks, helping customers mitigate the impact and recover from attacks more effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic WAF Rule Creation:&lt;/strong&gt; Shield Advanced can automatically create rules within AWS WAF (Web Application Firewall) to block malicious traffic targeting your applications. This eliminates the need for manual intervention during an attack.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DDoS-Cost Protection:&lt;/strong&gt; Shield Advanced safeguards you from unexpected charges arising from a DDoS attack that inflates your AWS resource usage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Constant Vigilance:&lt;/strong&gt; Both Shield Standard and Advanced leverage AWS's massive global infrastructure. This allows them to identify and filter out malicious traffic before it reaches your resources. AWS constantly monitors for new attack patterns and updates its defences accordingly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Human Expertise (Shield Advanced):&lt;/strong&gt; With Shield Advanced, you gain access to the AWS Shield Response Team (SRT) – a team of security specialists available 24/7. During a complex DDoS attack, the SRT can assist with advanced mitigation strategies and help ensure your application's continued operation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Benefits of Using AWS Shield
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Peace of Mind:&lt;/strong&gt; AWS Shield's proactive approach allows you to focus on your core business functions without worrying about DDoS attacks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enhanced Security:&lt;/strong&gt; The multi-layered protection offered by Shield safeguards your applications from various DDoS attack vectors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost Control:&lt;/strong&gt; Shield Standard's free tier provides a valuable first line of defence, while Shield Advanced's DDoS-cost protection helps manage unexpected expenses.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;In summary, AWS Shield provides comprehensive protection against DDoS attacks by offering automatic detection, inline mitigation, customization options, access to a dedicated response team, seamless integration with AWS services, and continuous improvements to stay ahead of evolving threats. By leveraging AWS Shield, customers can ensure the availability, reliability, and security of their applications and services hosted on the AWS cloud platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://https/jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>security</category>
      <category>aws</category>
    </item>
    <item>
      <title>Build Modes in Flutter</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Sat, 05 Oct 2019 03:54:48 +0000</pubDate>
      <link>https://dev.to/jay_tillu/build-modes-in-flutter-1o4a</link>
      <guid>https://dev.to/jay_tillu/build-modes-in-flutter-1o4a</guid>
      <description>&lt;p&gt;To master a framework, we need to understand its internal working methods. We have to get the answer of &lt;strong&gt;How Things Happening&lt;/strong&gt; and &lt;strong&gt;Why That Happening.&lt;/strong&gt; &lt;em&gt;Just like a beautiful relationship, The more you know each other, the more you will understand each other.&lt;/em&gt; So let’s try to know some inner details about flutter and its build modes.&lt;/p&gt;

&lt;p&gt;In this article, we will cover&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What are the build modes?&lt;/li&gt;
&lt;li&gt;How many build modes are there in the flutter?&lt;/li&gt;
&lt;li&gt;Why we use them?&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Build Modes?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Based on different development phase, framework compiles your code in a different manner or we can say that in different mode, that mode is called Build Mode…&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;As we all know that after a certain point of time it’s really hard and time-consuming to maintain the code and make changes. If you ask any Mobile App Developer about App compiling time, then they will tell you the pain. If you have a gigantic app like Facebook, Instagram, Uber or WhatsApp, then the time is far bigger, even the smallest color correction takes hours to &lt;strong&gt;reflect&lt;/strong&gt;. And if you are on Android then the situation is far worse.&lt;/p&gt;

&lt;p&gt;But here flutter comes into play to get it down. Let me clear up how?&lt;/p&gt;

&lt;p&gt;Flutter team redesigns the entire development process, keeping in mind lightning fast compilation speed. When you hit the compile button, while other frameworks recompile your whole code, even if you have the smallest change, which takes a lot of time. But Flutter doesn’t do that.&lt;/p&gt;

&lt;p&gt;Instead of compiling the whole code again and again. Flutter team divides the compilation phase into three modes. First mode when you are developing the app, second mode when you are testing the performance of the app and third and the last mode is when you release the app. By dividing the whole compilation process in different modes, flutter ables to reflects lightning-fast changes. Let’s take a look at all of them.&lt;/p&gt;




&lt;h2&gt;
  
  
  How many build modes are there and when to use which one?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Basically flutter have three build modes:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Debug Mode&lt;/li&gt;
&lt;li&gt;Profile Mode&lt;/li&gt;
&lt;li&gt;Release Mode&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Debug Mode
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Debug mode is designed to deliver you fast changes, but the app size is big and performance is minimal. So both app size and performance should not judge.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In the app development, the first phase is your development phase. In this phase, developers make a lot of changes, fixes some bugs and changing some here and there things. So in this phase developers needs to see their changes as soon as possible.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So in debug mode, flutter optimizes the app to reflect changes faster.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Here dart language comes into play to help flutter to reflect changes faster. Dart code can run via multiple methods. In debug mode, flutter runs your code in a virtual machine. And when you change anything and push hot reload, flutter just injects your changes to the app, without recompiling it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Just like in web-development when you change anything you just hit refresh and your browser reflects that change instantly, the same concept goes here. Your app is running and as you change anything flutter will push that change into your app.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;As flutter is not recompiling whole code, it just injects the changes, you see your changes instantly. Which helps in faster development and increases your productivity as well.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;But as your app runs in a virtual machine, the performance is minimal. So when your app is in debug mode you should feel like its slow. But as it's optimized for faster changes reflection, you should not judge the performance of your app in debug mode.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Also while in debug mode the size of the app can seem pretty big. But don’t judge it as well. As its in debug mode…&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Also, when you are in debug mode consider some important things.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dart.dev/guides/language/language-tour#assert" rel="noopener noreferrer"&gt;Assertions&lt;/a&gt; are enabled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service extensions are enabled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Debugging is enabled. (Here you can use &lt;a href="https://flutter.dev/docs/development/tools/devtools/overview" rel="noopener noreferrer"&gt;DevTools&lt;/a&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can debug your app on a physical device, Emulator or Simulator.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Profile Mode
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Profile Mode is designed to analyze the performance of your app while testing.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;While compiling your app in Profile Mode, flutter assumes that you want to examine your app’s performance. So its completely optimizes it to provide performance as fast as it can.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Here your app is ready and you can analyze the real performance of your app.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Also, when you are in Profile mode consider some important things.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;In profile mode, you cannot run your app on Emulator or Simulator. As they are not optimized to do that. So profile mode is disabled for Emulator and Simulator.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tracing is enabled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some service extensions to analyze performance are enabled.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tooling support for DevTools is also enabled.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Flutter recommends using &lt;a href="https://flutter.dev/docs/development/tools/devtools" rel="noopener noreferrer"&gt;DevTools&lt;/a&gt; to analyze your app’s performance.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Release Mode
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Released Mode designed to get your app ready for the Play Store and App Store. It designed to provide faster startups, fast execution, and minimal in size.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Now as development and testing are done. It’s time to compile your app for release mode. Here flutter compiles your code to native machine code, via the AOT compilation process, so now your app will pretty fast. for more information on the compilation process &lt;a href="https://dev.to/jay_tillu/flutter-compilation-process-41k0"&gt;click here&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;While compiling the app in release mode flutter assumes that your app is ready for release so optimization is maximum.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In release mode, the compilation is optimized for fast startups, fast execution, and minimum app size.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Also, when you are in Released mode consider some important things.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assertions are disabled.&lt;/li&gt;
&lt;li&gt;Debugging information is stripped out.&lt;/li&gt;
&lt;li&gt;Debugging is disabled.&lt;/li&gt;
&lt;li&gt;Service extensions are also disabled.&lt;/li&gt;
&lt;li&gt;Release mode builds don’t support Emulator and Simulator.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So that’s it for build modes guys. I hope it helped you. Feel free to let me know If I miss something. Till then Keep Loving, Keep Coding.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>flutter</category>
      <category>todayilearned</category>
      <category>todayisearched</category>
      <category>dart</category>
    </item>
    <item>
      <title>Inheritance in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 05:38:56 +0000</pubDate>
      <link>https://dev.to/jay_tillu/inheritance-in-dart-7mi</link>
      <guid>https://dev.to/jay_tillu/inheritance-in-dart-7mi</guid>
      <description>&lt;p&gt;The capability of a class to derive properties and characteristics from another class is called &lt;strong&gt;Inheritance&lt;/strong&gt;. It is ability of a program to create new class from an existing class.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Parent Class -&lt;/strong&gt; The class whose properties are inherited by child class is called Parent Class. Parent class is also known as &lt;strong&gt;&lt;em&gt;base class&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;super class&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Child Class -&lt;/strong&gt; The class that inherits properties from another class is called child class. Child class is also known as &lt;strong&gt;&lt;em&gt;derived class&lt;/em&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;em&gt;base class&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider a group of vehicles. You need to create classes for Bus, Car and Truck. The methods fuelAmount(), capacity(), applyBrakes() will be same for all of the three classes. If we create these classes avoiding inheritance then we have to write all of these functions in each of the three classes as shown in below figure:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkagu5q49no7q7wk5z49.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhkagu5q49no7q7wk5z49.png" width="800" height="243"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;You can clearly see that above process results in duplication of same code 3 times. This increases the chances of error and data redundancy. To avoid this type of situation, inheritance is used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If we create a class Vehicle and write these three functions in it and inherit the rest of the classes from the vehicle class, then we can simply avoid the duplication of data and increase re-usability. Look at the below diagram in which the three classes are inherited from vehicle class:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8v1ghgr13gxridtnond.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo8v1ghgr13gxridtnond.png" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Using inheritance, we have to write the functions only one time instead of three times as we have inherited rest of the three classes from base class(Vehicle).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;child_class&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;parent_class&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//body of child class&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Child class inherits all the properties and methods except constructor from parent class.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Types of Inheritance
&lt;/h2&gt;




&lt;p&gt;Mainly there are three types of inheritance:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Single&lt;/li&gt;
&lt;li&gt;Multiple - Dart doesn’t support Multiple Inheritance.&lt;/li&gt;
&lt;li&gt;Multi-level&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Single Level Inheritance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In single inheritance, a class is allowed to inherit from only one class. i.e. one sub class is inherited by one base class only.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5knlzjzn8ib36t6hnsma.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5knlzjzn8ib36t6hnsma.png" width="314" height="198"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showAge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"JD"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showAge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="n"&gt;JD&lt;/span&gt;
&lt;span class="mi"&gt;20&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Here also remember that child class can have its own unique properties and methods too.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Multi-Level Inheritance
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In this type of inheritance, a derived class is created from another derived class.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxws4dpvgtwtg39wz3ben.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxws4dpvgtwtg39wz3ben.png" width="484" height="361"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showAge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;age&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showProfession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;profession&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;profession&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;showNationality&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;nationality&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nationality&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="c1"&gt;//Derived class created from another derived class.&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Sanket&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt; 

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;sanket&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Sanket&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;sanket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showName&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Sanket"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;sanket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showAge&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;sanket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showNationality&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Indian"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;sanket&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;showProfession&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Engineer"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;

&lt;span class="n"&gt;Sanket&lt;/span&gt;
&lt;span class="mi"&gt;20&lt;/span&gt;
&lt;span class="n"&gt;Indian&lt;/span&gt;
&lt;span class="n"&gt;Engineer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Guys credit for this article goes to Harsh Agrawal from geeksforgeeks.com. He wrote an amazing article on Inheritance in C++. Here I just try to explain same thing in dart way. 😉&lt;/p&gt;

&lt;p&gt;That’s it for Inheritance guys. It’s one of the most important concept of Object Oriented Programming. Please Practice it, and have clear understanding on it. Also Feel free to let me know if I misses something, I’ll love to learn it from you. Till then Keep Loving, Keep Coding. And I’ll surely catch you up in next article.&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Interface in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 05:20:58 +0000</pubDate>
      <link>https://dev.to/jay_tillu/interface-in-dart-208j</link>
      <guid>https://dev.to/jay_tillu/interface-in-dart-208j</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The interface defines the syntax that any class must follow. Interface mostly used to apply compulsion on class.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When any class implements an Interface then it must override every method and instance variable of an interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;However, Dart does not have a syntax for declaring interfaces. The class declaration is themselves interface in a dart.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Any class can be act as an interface. Classes can use &lt;strong&gt;implements&lt;/strong&gt; keyword to use any class as an interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once any class is used as interface then it is mandatory to override each and every method and instance variable of that class. In simple words, a class must redefine every method and instance variable of the interface.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax of declaring Interface
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;class_name&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;interface_name&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Person can walk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Person can talk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can walk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can talk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;
&lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;
&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;
&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Implementing Multiple Interface
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;Dart does not support multiple inheritance but dart can implement multiple interfaces. To provide similar power and functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The syntax for declaring multiple interfaces
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;class_name&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;interface1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interface2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;interface3&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;ShowName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"My name is &lt;/span&gt;&lt;span class="si"&gt;$name&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Person can walk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Person can talk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Akshay&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;profession&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;ShowProfession&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"from class Akshay my profession is &lt;/span&gt;&lt;span class="si"&gt;$profession&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="kd"&gt;implements&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Akshay&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;profession&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;ShowProfession&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"from class Jay my Profession is &lt;/span&gt;&lt;span class="si"&gt;$profession&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nd"&gt;@override&lt;/span&gt; 
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 

  &lt;span class="nd"&gt;@override&lt;/span&gt; 
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;ShowName&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"From class Jay my name is &lt;/span&gt;&lt;span class="si"&gt;$name&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="p"&gt;}&lt;/span&gt; 

  &lt;span class="nd"&gt;@override&lt;/span&gt; 
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can walk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="p"&gt;}&lt;/span&gt; 

  &lt;span class="nd"&gt;@override&lt;/span&gt; 
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can talk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
  &lt;span class="p"&gt;}&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt; 

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; 
  &lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;person&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;Viraj&lt;/span&gt; &lt;span class="n"&gt;viraj&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Viraj&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Person"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="n"&gt;person&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ShowName&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"JAY"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;profession&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Software Development"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ShowProfession&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ShowName&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 

  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

  &lt;span class="n"&gt;akshay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;profession&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Chemical Engineer"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; 
  &lt;span class="n"&gt;akshay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ShowProfession&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; 
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;

&lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;
&lt;span class="n"&gt;Person&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;
&lt;span class="n"&gt;My&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;

&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;
&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;
&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;my&lt;/span&gt; &lt;span class="n"&gt;Profession&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;Software&lt;/span&gt; &lt;span class="n"&gt;Development&lt;/span&gt;
&lt;span class="n"&gt;From&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;my&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;JAY&lt;/span&gt;

&lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Akshay&lt;/span&gt; &lt;span class="n"&gt;my&lt;/span&gt; &lt;span class="n"&gt;profession&lt;/span&gt; &lt;span class="k"&gt;is&lt;/span&gt; &lt;span class="n"&gt;Chemical&lt;/span&gt; &lt;span class="n"&gt;Engineer&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So that’s it for interface guys. Please read this article twice if you don’t understand the concept in the first move. And do a little bit of research on an interface. Don’t worry if you didn’t get the concept in the first attempt. Even I get it in a 3rd try. So don’t worry, just practice it.&lt;/p&gt;

&lt;p&gt;Also, feel free to let me know if I miss something. Till then keep Loving, keep Coding. And I’ll surely catch you up in next article.&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Constructors in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 05:10:51 +0000</pubDate>
      <link>https://dev.to/jay_tillu/constructors-in-dart-5adh</link>
      <guid>https://dev.to/jay_tillu/constructors-in-dart-5adh</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A constructor is a special method (function) of a class that helps to create an object. As its name indicates its constructs the new object.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It helps to create the object by initializing values to instance variables. So we can say that its main goal is to provide values to instance variables.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How constructor is different from other methods of Class
&lt;/h2&gt;




&lt;p&gt;There are some major differences between the normal method and constructor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The constructor has the same name as the class.&lt;/li&gt;
&lt;li&gt;The constructor doesn’t have a return type.&lt;/li&gt;
&lt;li&gt;A constructor is automatically called when the object is created.&lt;/li&gt;
&lt;li&gt;If we don’t specify a constructor, the default no-argument constructor will be created.&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  Syntax of declaring constructor
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;class_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  &lt;span class="c1"&gt;//If there is a block of code.&lt;/span&gt;
  &lt;span class="c1"&gt;// Constructor body&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;or&lt;/span&gt;

&lt;span class="nf"&gt;class_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// If there is no block of code.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;enNum&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;enNum&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myStudent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Student&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Named Constructor
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;&lt;p&gt;After seeing the advantages of the constructor you might want to create multiple constructors. But as we know constructor holds the name of the class. So, in that case, you might ask then how can we create multiple constructors and treat them differently. Then here comes a &lt;strong&gt;Named Constructor&lt;/strong&gt; in the picture.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;By using named constructor you can create multiple constructors in the same class. Each constructor will have a unique name. So that you can identify each of them.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax of defining a named constructor
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;constructor_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt; 
   &lt;span class="c1"&gt;// If there is block of code use this syntax&lt;/span&gt;
   &lt;span class="c1"&gt;// Statements&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;or&lt;/span&gt;

&lt;span class="n"&gt;class_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;constructor_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 
   &lt;span class="c1"&gt;// If there is not block of code use this syntax&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Employee&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;empID&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;empName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;empDept&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// Named Constructor Creation&lt;/span&gt;

  &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;department&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empDept&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myEmployee01&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;ID&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myEmployee02&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;department&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Testing"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myEmployee03&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Employee&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ashu"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myEmployee01&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empID&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myEmployee02&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empDept&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myEmployee03&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;empName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="n"&gt;Testing&lt;/span&gt;
&lt;span class="n"&gt;Ashu&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, guys, that’s it for constructors in a dart. Again this is also the core concept of Object Oriented Programming. So practice it a little bit. Please feel free to share with me if I miss something. Till Then Keep Loving, Keep Coding. And I surely catch you up in the next article.&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://twitter.com/jay_tillu" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Classes and Objects in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 05:02:50 +0000</pubDate>
      <link>https://dev.to/jay_tillu/classes-and-objects-in-dart-39jp</link>
      <guid>https://dev.to/jay_tillu/classes-and-objects-in-dart-39jp</guid>
      <description>&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;No matter which framework you want to learn or use&lt;/li&gt;
&lt;li&gt;No matter which language you want to learn and use&lt;/li&gt;
&lt;li&gt;No matter which kind of software you want to create&lt;/li&gt;
&lt;li&gt;All of them today is based on &lt;strong&gt;OOPs&lt;/strong&gt; concept and Classes and objects are base of OOP concepts.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;Here I will try to explain to you what is class and objects in Object Oriented Programming via a small example given to me by my udemy instructor Paulo Dichone.&lt;/p&gt;

&lt;p&gt;What will we do if we want to create a Microphone?&lt;/p&gt;

&lt;p&gt;The first step to create the microphone or any real-world thing is to create the blueprint of it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn5m6ujklay93odsuyvs.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxn5m6ujklay93odsuyvs.jpeg" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the blueprint, we define its properties and its functionality like&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;its &lt;strong&gt;color&lt;/strong&gt; is its property&lt;/li&gt;
&lt;li&gt;its &lt;strong&gt;mic type&lt;/strong&gt; is its property&lt;/li&gt;
&lt;li&gt;its &lt;strong&gt;model number&lt;/strong&gt; is its property etc.&lt;/li&gt;
&lt;li&gt;we can set the &lt;strong&gt;volume of the mic&lt;/strong&gt; which is its functionality&lt;/li&gt;
&lt;li&gt;we can &lt;strong&gt;mute the mic&lt;/strong&gt; which is its functionality&lt;/li&gt;
&lt;li&gt;we can &lt;strong&gt;turn it on or off&lt;/strong&gt; which is its functionality etc.&lt;/li&gt;
&lt;li&gt;After creating one blueprint, Then by using that blueprint we can create a number of microphones. All microphones will have the same properties and functionality.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7wub696tuo3g904rcvg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft7wub696tuo3g904rcvg.jpeg" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  From a programming point of view
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;Same concept here goes with Classes and Object’s terminology.&lt;/li&gt;
&lt;li&gt;The blueprint is called Class and the microphones or any other devices is called object here.&lt;/li&gt;
&lt;li&gt;Class is a blueprint from which we can create a number of objects. All objects will have access to all properties and methods. You can also modify access according to your need.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In Object Oriented Programming class is made up of four main things&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Properties (Instance Variables)&lt;/li&gt;
&lt;li&gt;Methods (Functions)&lt;/li&gt;
&lt;li&gt;Getters and Setters&lt;/li&gt;
&lt;li&gt;Constructors&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;These all components are also called &lt;strong&gt;data members&lt;/strong&gt; of the class.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Remember here Properties can be also called Instance Variable and Methods are also called Functions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Syntax of Declaring Class
&lt;/h2&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;class_name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="c1"&gt;// Properties (Instance Variables)&lt;/span&gt;
   &lt;span class="c1"&gt;// Constructor&lt;/span&gt;
   &lt;span class="c1"&gt;// Methods (Functions)&lt;/span&gt;
   &lt;span class="c1"&gt;// Getters and Setters&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;The &lt;strong&gt;&lt;em&gt;class&lt;/em&gt;&lt;/strong&gt; keyword is used to declare a class.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Mobile&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;brandName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;calling&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Mobile can do calling"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;musicPlay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Mobile can play Music"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Syntax of Creating Object
&lt;/h2&gt;






&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;object_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;class_name&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;arguments&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myMobile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Mobile&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Accessing Properties and Methods Of Class
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;As I mentioned earlier all the properties and methods of a class can be accessed via the class’s object.&lt;/li&gt;
&lt;li&gt;For accessing the class’s properties and methods, we use ‘.’ (dot notation) also called a period.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax of accessing properties and methods
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Accessing Properties&lt;/span&gt;
   &lt;span class="n"&gt;object_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;property_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;// Accessing Methods&lt;/span&gt;
   &lt;span class="n"&gt;object_name&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;method_name&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Accessing properties&lt;/span&gt;
    &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;brandName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Accessing methods&lt;/span&gt;
    &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;calling&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;musicPlay&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Let’s understand all concepts by one complete program
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Mobile&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Property&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;brandName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;modelName&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;calling&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="c1"&gt;// Method Creation&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Mobile can do calling"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;musicPlay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Mobile can play Music"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;videoPlay&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;"Mobile can play video"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myMobile&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Mobile&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Creating Object&lt;/span&gt;

  &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;color&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"White"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Accessing Class's Property&lt;/span&gt;
  &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;brandName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Apple Inc."&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;modelName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"iPhone 14"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;modelName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;brandName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;calling&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;musicPlay&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMobile&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;videoPlay&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="n"&gt;White&lt;/span&gt;
&lt;span class="n"&gt;iPhone&lt;/span&gt; &lt;span class="mi"&gt;14&lt;/span&gt;
&lt;span class="n"&gt;Apple&lt;/span&gt; &lt;span class="n"&gt;Inc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="n"&gt;Mobile&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="n"&gt;calling&lt;/span&gt;
&lt;span class="n"&gt;Mobile&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;play&lt;/span&gt; &lt;span class="n"&gt;Music&lt;/span&gt;
&lt;span class="n"&gt;Mobile&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;play&lt;/span&gt; &lt;span class="n"&gt;video&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Remember guys, classes and objects are basic building blocks of Object-Oriented Programming.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;All big frameworks like &lt;strong&gt;Flutter, React, Django, Angular&lt;/strong&gt; and big software like &lt;strong&gt;IDEs, Web Apps, Mobile Apps, Server side apps&lt;/strong&gt; and also programming language itself are based on OOPs concepts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So please have a clear clarity and strong understanding of these concepts.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>beginners</category>
      <category>todayilearned</category>
    </item>
    <item>
      <title>Abstract Classes and Abstract Methods in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 04:48:35 +0000</pubDate>
      <link>https://dev.to/jay_tillu/abstract-classes-and-abstract-methods-in-dart-4dgg</link>
      <guid>https://dev.to/jay_tillu/abstract-classes-and-abstract-methods-in-dart-4dgg</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An abstract class is a type of class that cannot be instantiated directly which means an object cannot be created from it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An abstract class cannot be instantiated but they can be sub-classed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To define an abstract class we use &lt;strong&gt;&lt;em&gt;abstract&lt;/em&gt;&lt;/strong&gt; keyword.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  The syntax for defining Abstract Class
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;abstract&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;class_name&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Body of abstract class&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Abstract Methods
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;Abstract methods can only exist within an abstract class.&lt;/li&gt;
&lt;li&gt;To make a method abstract, use a semicolon (;) instead of the method body.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;talk&lt;/span&gt; &lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Abstract method&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;walk&lt;/span&gt; &lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Abstract method&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Normal classes can extend the abstract class, but they have to override every abstract method.&lt;/li&gt;
&lt;li&gt;You can also create normal methods in the abstract class. And to override normal method is not mandatory.&lt;/li&gt;
&lt;li&gt;The abstract class will only complain when you don’t override the abstract method.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;abstract&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="c1"&gt;//Abstract Method&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;  &lt;span class="c1"&gt;//Abstract Method&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Jay&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="n"&gt;Person&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can walk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="nd"&gt;@override&lt;/span&gt;
  &lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Jay can talk"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(){&lt;/span&gt;
  &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;talk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="na"&gt;walk&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;talk&lt;/span&gt;
&lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;can&lt;/span&gt; &lt;span class="n"&gt;walk&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Difference between Abstract class and Interface
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;So now after seeing both abstract class and interface. You might ask that technically they look the same. Ya, that’s true that they are closely related. But guys they are not exactly the same. Let’s understand the basic difference between them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoiiiahpl7mgp77eey03.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffoiiiahpl7mgp77eey03.jpeg" width="758" height="190"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, guys, that’s it for abstract classes. Feel free to tell me if I miss something, I’ll love to learn it from you. Till then Keep Loving, Keep Coding. And Just like always I’ll catch you up in the next article.&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
    <item>
      <title>List in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 04:02:56 +0000</pubDate>
      <link>https://dev.to/jay_tillu/list-in-dart-3eg1</link>
      <guid>https://dev.to/jay_tillu/list-in-dart-3eg1</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Consider a situation where we need to store five String values. If we use programming's simple variable and data type concepts, then we need five variables of String data type.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;It seems simple because we had to store just five String values. Now let's assume we have to store 10000 String values. Now its too much time consuming to create 10000 variables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To overcome this kind of situations we have a concept called Collections.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Collections are used to store data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In dart, collections can be classified into four basic categories:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;List&lt;/li&gt;
&lt;li&gt;Map&lt;/li&gt;
&lt;li&gt;Set&lt;/li&gt;
&lt;li&gt;Queue&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;But the &lt;strong&gt;list&lt;/strong&gt; and &lt;strong&gt;map&lt;/strong&gt; are mostly used. Set and queue are used in some special cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  List
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The list is a collection of data having the same data type. In other languages &lt;strong&gt;List&lt;/strong&gt; is called &lt;strong&gt;Array&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;In list, data is stored in an ordered way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Every individual element of the list can be accessed by its index number. The index number always starts from 0.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are two types of list:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fixed length list&lt;/li&gt;
&lt;li&gt;Growable list&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Fixed Length List
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;In the fixed length list once the length of the list is defined it cannot be changed during run time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;List&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;list_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;List&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;length&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;list&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kt"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;marks&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;List&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;    &lt;span class="c1"&gt;// Inserting values to list&lt;/span&gt;
  &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;35&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;65&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;75&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;63&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;elements&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;marks&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;elements&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="mi"&gt;25&lt;/span&gt;
&lt;span class="mi"&gt;35&lt;/span&gt;
&lt;span class="mi"&gt;65&lt;/span&gt;
&lt;span class="mi"&gt;75&lt;/span&gt;
&lt;span class="mi"&gt;63&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Growable List
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The length of Growable list is dynamic. It can be changed during run time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;List&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;list_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;List&lt;/span&gt; &lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Way 1&lt;/span&gt;
&lt;span class="kt"&gt;List&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="n"&gt;type&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;list_name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;element1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;element2&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt; &lt;span class="c1"&gt;// Way 2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

  &lt;span class="kt"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;countries&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"India"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Nepal"&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt; &lt;span class="n"&gt;elements&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;countries&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;elements&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="n"&gt;India&lt;/span&gt;
&lt;span class="n"&gt;Nepal&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, guys, That’s it for a list. As I always say practice it, understand it conceptually. Till then Keep Loving, Keep Coding. And just like always I’ll surely catch you up in the next article. 😊&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Maps in Dart</title>
      <dc:creator>Jay Tillu</dc:creator>
      <pubDate>Mon, 16 Sep 2019 03:03:39 +0000</pubDate>
      <link>https://dev.to/jay_tillu/maps-in-dart-2nb5</link>
      <guid>https://dev.to/jay_tillu/maps-in-dart-2nb5</guid>
      <description>&lt;ul&gt;
&lt;li&gt;Just like List, Map is also a type of collection. In Maps data is stored in key: value pairs. Keys and values can be of any type.&lt;/li&gt;
&lt;li&gt;The map is a growable collection that means it can shrink and grow at runtime.&lt;/li&gt;
&lt;li&gt;Map can contain NULL value as well.&lt;/li&gt;
&lt;li&gt;There are two ways to to declare maps:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Using Map Literal&lt;/li&gt;
&lt;li&gt;Using Map constructor&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Using Map Literal
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Just like we declare list using var keyword, we can also use var for declaring Maps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The main difference between declaration is, for declaring list we use &lt;a href="https://dev.tosquare%20brackets"&gt;&lt;/a&gt;, but to declare maps we have to use {}(curly braces).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;for declaring list use [ ]&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;for declaring map use {}&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax for declaring map through variable
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;VariableName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; 
  &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample code for declaring Map through variable
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"jay"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"1234"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Jay Tillu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;output&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;id:&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;password:&lt;/span&gt; &lt;span class="mi"&gt;1234&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;name:&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;Tillu&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Syntax for Adding value to Map at Runtime
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="n"&gt;mapName&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample code for adding value to Map
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"jay"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"1234"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"name"&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Jay Tillu"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;};&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"************ Before adding data in Map ************"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Adding value to Map&lt;/span&gt;

  &lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"india"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"************ After adding data in Map ************"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="o"&gt;************&lt;/span&gt; &lt;span class="n"&gt;Before&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt; &lt;span class="o"&gt;************&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;id:&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;password:&lt;/span&gt; &lt;span class="mi"&gt;1234&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;name:&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;Tillu&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;************&lt;/span&gt; &lt;span class="n"&gt;After&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt; &lt;span class="o"&gt;************&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;id:&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;password:&lt;/span&gt; &lt;span class="mi"&gt;1234&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;name:&lt;/span&gt; &lt;span class="n"&gt;Jay&lt;/span&gt; &lt;span class="n"&gt;Tillu&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;country:&lt;/span&gt; &lt;span class="n"&gt;india&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Map Constructor
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;For declaring Map we can also use Map() constructor. It’s just which way you like. There nothing wrong if you declare map using standard method.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Syntax for declaring map through Map constructor
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;mapName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;mapName&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// For adding value to your Map&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  Sample Code for declaring map through Map constructor
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight dart"&gt;&lt;code&gt;&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="n"&gt;myMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"************ Before adding data in Map ************"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;//  Adding value to Map&lt;/span&gt;
  &lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"jay"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"1234"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"country"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"India"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"************ After adding data in Map ************"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;myMap&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;Output&lt;/span&gt;
&lt;span class="o"&gt;************&lt;/span&gt; &lt;span class="n"&gt;Before&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt; &lt;span class="o"&gt;************&lt;/span&gt;
&lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="o"&gt;************&lt;/span&gt; &lt;span class="n"&gt;After&lt;/span&gt; &lt;span class="n"&gt;adding&lt;/span&gt; &lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="kt"&gt;Map&lt;/span&gt; &lt;span class="o"&gt;************&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nl"&gt;id:&lt;/span&gt; &lt;span class="n"&gt;jay&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;password:&lt;/span&gt; &lt;span class="mi"&gt;1234&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nl"&gt;country:&lt;/span&gt; &lt;span class="n"&gt;India&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;So, guys, That’s it for maps. Feel free to let me know if I miss something. Till then Keep Loving, Keep Coding. And Just like always I’ll catch you up in the next article. 😊&lt;/p&gt;

&lt;p&gt;Remember no teacher, no book, no video tutorial, or no blog can teach you everything. As one said Learning is Journey and Journey never ends. Just collect some data from here and there, read it, learn it, practice it, and try to apply it. Don’t feel hesitate that you can’t do that or you don’t know this concept or that concept. Remember every programmer was passed from the path on which you are walking right now. Remember Every Master was Once a Beginner. Work hard and Give your best.&lt;/p&gt;

&lt;h3&gt;
  
  
  Follow me for more such content
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jaytillu.com/" rel="noopener noreferrer"&gt;My Site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jaytillu.com/blogs/" rel="noopener noreferrer"&gt;My Blogs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.github.com/jay-tillu" rel="noopener noreferrer"&gt;Github&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.linkedin.com/in/jaytillu/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.instagram.com/jay.tillu/" rel="noopener noreferrer"&gt;Instagram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://x.com/jay_tillu" rel="noopener noreferrer"&gt;X&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://stackoverflow.com/users/8509590/jay-tillu" rel="noopener noreferrer"&gt;Stackoverflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://community.aws/@jaytillu" rel="noopener noreferrer"&gt;AWS Community&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dart</category>
      <category>todayilearned</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
