Convert Figma logo to code with AI

intuit logosdp

An Android lib that provides a new size unit - sdp (scalable dp). This size unit scales with the screen size.

2,252
477
2,252
1

Top Related Projects

42,146

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

20,922

Pulumi - Infrastructure as Code in any programming language 🚀

11,501

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code

Azure Quickstart Templates

62,307

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

Quick Overview

SDP (Service Deployment Platform) is an open-source project by Intuit that provides a framework for deploying and managing microservices at scale. It offers a unified approach to service deployment, monitoring, and lifecycle management across multiple cloud environments.

Pros

  • Simplifies microservice deployment and management in complex cloud environments
  • Supports multi-cloud deployments, enhancing flexibility and avoiding vendor lock-in
  • Provides built-in monitoring and observability features
  • Offers a standardized approach to service lifecycle management

Cons

  • Steep learning curve for teams new to microservices architecture
  • Limited documentation and community support compared to more established platforms
  • May require significant initial setup and configuration
  • Potential overhead for smaller projects or teams

Code Examples

# Example service definition in SDP
apiVersion: sdp.intuit.com/v1
kind: Service
metadata:
  name: my-microservice
spec:
  replicas: 3
  container:
    image: my-registry/my-microservice:v1.0.0
    ports:
      - containerPort: 8080
  monitoring:
    enabled: true
# Example deployment configuration
apiVersion: sdp.intuit.com/v1
kind: Deployment
metadata:
  name: my-microservice-deployment
spec:
  service: my-microservice
  environment: production
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 1
# Example scaling policy
apiVersion: sdp.intuit.com/v1
kind: ScalingPolicy
metadata:
  name: my-microservice-scaling
spec:
  service: my-microservice
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        targetAverageUtilization: 70

Getting Started

To get started with SDP, follow these steps:

  1. Install the SDP CLI:

    curl -sSL https://get.sdp.com | bash
    
  2. Configure your cloud provider credentials:

    sdp config set-context my-cloud --provider aws --region us-west-2
    
  3. Create a service definition file (e.g., service.yaml) and apply it:

    sdp apply -f service.yaml
    
  4. Monitor your deployed service:

    sdp get service my-microservice
    sdp logs my-microservice
    

For more detailed instructions and advanced usage, refer to the official SDP documentation.

Competitor Comparisons

42,146

Terraform enables you to safely and predictably create, change, and improve infrastructure. It is a source-available tool that codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned.

Pros of Terraform

  • Widely adopted and supported by major cloud providers
  • Extensive documentation and large community
  • Supports a broader range of infrastructure providers

Cons of Terraform

  • Steeper learning curve for complex deployments
  • State management can be challenging in large-scale environments
  • Limited support for runtime configuration changes

Code Comparison

Terraform:

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"
}

SDP:

resources:
  - name: example-instance
    type: aws::ec2::instance
    properties:
      ImageId: ami-0c55b159cbfafe1f0
      InstanceType: t2.micro

Both Terraform and SDP provide declarative ways to define infrastructure, but Terraform uses its own HCL language, while SDP uses YAML. Terraform's syntax is more concise, but SDP's YAML structure may be more familiar to some users.

Terraform is more established and versatile, supporting a wider range of providers and use cases. However, SDP offers a simpler approach for specific scenarios, particularly within the Intuit ecosystem. The choice between the two depends on the specific requirements of your project and your team's familiarity with each tool.

20,922

Pulumi - Infrastructure as Code in any programming language 🚀

Pros of Pulumi

  • Supports multiple programming languages (TypeScript, Python, Go, etc.) for infrastructure as code
  • Offers a more flexible and powerful approach to infrastructure management
  • Has a larger community and more extensive documentation

Cons of Pulumi

  • Steeper learning curve, especially for those new to programming
  • May require more setup and configuration compared to SDP
  • Can be more complex for simple infrastructure tasks

Code Comparison

SDP (YAML-based):

resources:
  - name: my-bucket
    type: s3-bucket
    properties:
      bucketName: my-unique-bucket-name

Pulumi (TypeScript):

import * as aws from "@pulumi/aws";

const bucket = new aws.s3.Bucket("my-bucket", {
    bucket: "my-unique-bucket-name",
});

Summary

Pulumi offers a more versatile and powerful approach to infrastructure as code, supporting multiple programming languages and providing extensive capabilities. However, it may have a steeper learning curve compared to SDP. SDP, on the other hand, uses a simpler YAML-based configuration, which can be easier for beginners or straightforward infrastructure tasks. The choice between the two depends on the complexity of your infrastructure needs and your team's programming expertise.

11,501

The AWS Cloud Development Kit is a framework for defining cloud infrastructure in code

Pros of AWS CDK

  • More comprehensive AWS service coverage
  • Larger community and ecosystem
  • Supports multiple programming languages (TypeScript, Python, Java, etc.)

Cons of AWS CDK

  • Steeper learning curve for beginners
  • More complex setup and configuration
  • Limited to AWS infrastructure

Code Comparison

SDP example:

resources:
  - name: my-bucket
    type: s3-bucket
    properties:
      bucketName: my-unique-bucket-name

AWS CDK example:

import * as s3 from '@aws-cdk/aws-s3';

const bucket = new s3.Bucket(this, 'MyBucket', {
  bucketName: 'my-unique-bucket-name',
});

SDP focuses on simplicity and ease of use, using YAML for configuration. AWS CDK offers more flexibility and power through programming languages like TypeScript, but requires more code and setup. SDP is designed for multi-cloud deployments, while AWS CDK is specific to AWS services. AWS CDK has a larger community and more extensive documentation, but may be overwhelming for newcomers compared to SDP's straightforward approach.

Azure Quickstart Templates

Pros of azure-quickstart-templates

  • Extensive collection of Azure deployment templates covering a wide range of scenarios
  • Well-maintained and regularly updated by Microsoft and the community
  • Includes detailed documentation and parameter files for each template

Cons of azure-quickstart-templates

  • Focused solely on Azure, limiting its use for multi-cloud deployments
  • May require more Azure-specific knowledge to customize and implement
  • Large repository size can make it challenging to navigate and find specific templates

Code Comparison

sdp:

apiVersion: sdp.intuit.com/v1
kind: Service
metadata:
  name: example-service
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080

azure-quickstart-templates:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Network/virtualNetworks",
      "name": "[parameters('vnetName')]",
      "location": "[parameters('location')]"
    }
  ]
}

The sdp repository focuses on Kubernetes-based service definitions, while azure-quickstart-templates provides Azure Resource Manager (ARM) templates for deploying various Azure resources. The code snippets showcase the different syntax and structure used in each project, reflecting their distinct purposes and target platforms.

62,307

Ansible is a radically simple IT automation platform that makes your applications and systems easier to deploy and maintain. Automate everything from code deployment to network configuration to cloud management, in a language that approaches plain English, using SSH, with no agents to install on remote systems. https://docs.ansible.com.

Pros of Ansible

  • Larger community and ecosystem with extensive documentation
  • Broader scope for IT automation beyond just deployment
  • Agentless architecture, requiring no additional software on managed nodes

Cons of Ansible

  • Steeper learning curve due to its extensive features
  • Can be slower for large-scale deployments compared to SDP
  • More complex setup and configuration process

Code Comparison

Ansible playbook example:

- name: Install nginx
  hosts: webservers
  tasks:
    - name: Ensure nginx is installed
      apt:
        name: nginx
        state: present

SDP deployment example:

apiVersion: sdp/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  template:
    containers:
    - name: nginx
      image: nginx:latest

Summary

Ansible is a more comprehensive IT automation tool with a larger community, while SDP focuses specifically on simplified deployment processes. Ansible offers greater flexibility but may require more time to master, whereas SDP provides a more streamlined approach for deployment-centric tasks. The choice between the two depends on the specific needs of the project and the team's expertise.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

issues Forks Stars Maven Central License

SDP - a scalable size unit

An android lib that provides a new size unit - sdp (scalable dp). This size unit scales with the screen size. It can help Android developers with supporting multiple screens.

for text views please refer to ssp which is based on the sp size unit for texts.

Attention

Use it carefully! for example, in most cases you still need to design a different layout for tablets.

Example

Here is a single layout built using sdp:

sdp example

And here is the same layout built using dp:

dp example

You can see that sdp scales with the screen size and the dp stays with the same size on all screen sizes.

Getting Started

To add sdp to your project (Using Android Studio and Gradle):

add implementation 'com.intuit.sdp:sdp-android:1.1.1' to your build.gradle dependencies block.

for example:

dependencies {
  implementation 'com.intuit.sdp:sdp-android:1.1.1'
}

See the sdp_example.xml to see how to use to the sdp size unit.

For easy mapping of designs to sdp units, one can create designs with 300 pixels screen width - in this case each pixel in the design corresponds to 1 sdp.

Note

The sdp size unit calculation includes some approximation due to some performance and usability constraints.