> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rocket.new/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a mobile app

> Convert Figma designs into deployable Flutter mobile apps using Rocket.new's Figma-to-code pipeline.

export const LlmsDirective = () => <blockquote className="llms-directive">
    For the complete documentation index, see <a href="/llms.txt">llms.txt</a>.
    For a lightweight markdown version of this page, append .md to the URL.
  </blockquote>;

<LlmsDirective />

<Info>
  **Figma to Flutter mobile app in minutes.** Import your mobile screen designs and Rocket generates a complete Flutter app for iOS and Android with native navigation, styled components, and clean Dart code. Then iterate with chat to add state management, connect APIs, and submit to app stores.
</Info>

<Note>
  Figma import is only available on the web browser at [rocket.new](https://rocket.new). It is not available in the Rocket mobile app.
</Note>

<Divider />

## What you can build

<AccordionGroup>
  <Accordion title="Consumer mobile apps" icon="mobile">
    Turn your social, fitness, food, or lifestyle app designs into working Flutter apps with real navigation and data.

    **Try this prompt after import:**

    ```plaintext wrap theme={null}
    Add pull-to-refresh on the feed screen, a bottom navigation bar, and connect Supabase for user profiles and authentication.
    ```
  </Accordion>

  <Accordion title="Business and productivity apps" icon="briefcase">
    Convert CRM, task management, or internal tool designs into functional mobile apps.

    **Try this prompt after import:**

    ```plaintext wrap theme={null}
    Make the task list sortable by date and priority. Add swipe-to-delete and connect Firebase for real-time sync across devices.
    ```
  </Accordion>

  <Accordion title="E-commerce mobile apps" icon="cart-shopping">
    Build mobile shopping experiences from your Figma product catalog and checkout designs.

    **Try this prompt after import:**

    ```plaintext wrap theme={null}
    Add a working shopping cart with quantity controls. Connect Stripe for mobile checkout and add order confirmation with push notifications.
    ```
  </Accordion>
</AccordionGroup>

<Divider />

## Before you begin

<Info>
  **You will need:**

  * Access to [rocket.new](https://rocket.new).
  * A Figma account and a design file with **view or edit permission**.
</Info>

<Card icon="figma" href="/build/create/figma/get-your-figma-url" horizontal arrow="true">
  Not sure how to get your Figma link? **Follow this quick guide to grab the right URL.**
</Card>

<Divider />

## Launch your mobile app

<Steps>
  <Step title="Import Figma">
    Click the **+** button at the lower left of the input box and select **Add from Figma**.

    <Frame caption="Click + then select Add from Figma">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/hTDiGbj74iN7UPxd/images/build-docs/create/figma/mobile-app/homepage-plus-menu-add-from-figma-light.webp?fit=max&auto=format&n=hTDiGbj74iN7UPxd&q=85&s=9cc5ae2908ed806a955db4c53dab0644" alt="The + button menu open with Add from Figma highlighted." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/create/figma/mobile-app/homepage-plus-menu-add-from-figma-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/hTDiGbj74iN7UPxd/images/build-docs/create/figma/mobile-app/homepage-plus-menu-add-from-figma-dark.webp?fit=max&auto=format&n=hTDiGbj74iN7UPxd&q=85&s=c7e5a6309dba8023532d0d598da3ea2f" alt="The + button menu open with Add from Figma highlighted." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/create/figma/mobile-app/homepage-plus-menu-add-from-figma-dark.webp" />
    </Frame>

    <Card icon="figma" href="/build/connectors/figma" horizontal arrow="true">
      First time? **Connect your Figma account to Rocket** before importing.
    </Card>
  </Step>

  <Step title="Paste your Figma link">
    In the **Import Figma design** dialog, paste your Figma frame or file URL and click **Start import**.

    <Frame caption="Paste your Figma frame or file URL">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/import-figma-design-modal-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=6128bfc667c301aea45e6c42cd77accf" alt="Import Figma design dialog with a URL input field and Start import button." className="theme-image light-image" width="2880" height="1624" data-path="images/build-docs/create/figma/mobile-app/import-figma-design-modal-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/import-figma-design-modal-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=bf3914c5a3ffb8b82928fb1fad38270e" alt="Import Figma design dialog with a URL input field and Start import button." className="theme-image dark-image" width="2880" height="1624" data-path="images/build-docs/create/figma/mobile-app/import-figma-design-modal-dark.webp" />
    </Frame>
  </Step>

  <Step title="Choose screens and framework">
    <Note>
      You can import up to **40 screens** at a time.
    </Note>

    Select the mobile screens you want to import:

    <Frame caption="Select mobile screens to convert to code">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/mobile-frame-picker-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=d9663dad9526cb91550483db077238e6" alt="Screen selection panel showing Mobile frames tab with thumbnails and a Start import button." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/mobile-frame-picker-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/mobile-frame-picker-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=70c76ad0788bd87e3169fbbd38bccf20" alt="Screen selection panel showing Mobile frames tab with thumbnails and a Start import button." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/mobile-frame-picker-dark.webp" />
    </Frame>

    <Note>**Using the free plan?** Some features may be limited. Upgrade to keep generating without interruptions.</Note>

    Click **Start import**, then select **Flutter** as your framework:

    <Frame caption="Set your framework to Flutter">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/mobile-tech-stack-picker-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=151a7e9ef2408ac70e61e23115921225" alt="Tech stack selection showing Flutter as the only option with a Submit button." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/mobile-tech-stack-picker-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/mobile-tech-stack-picker-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=a214ddfcb2d6badc87be2be8a490077c" alt="Tech stack selection showing Flutter as the only option with a Submit button." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/mobile-tech-stack-picker-dark.webp" />
    </Frame>
  </Step>

  <Step title="Select state management">
    Rocket asks how your app should manage user actions and screen changes.

    <Frame caption="State management options for Flutter">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/flutter-state-management-picker-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=85a7005edce7fcf79240c301e06518ad" alt="Flutter state management options" className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/flutter-state-management-picker-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/flutter-state-management-picker-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=4039f95390334f60ca0e7b6ce4263709" alt="Flutter state management options" className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/flutter-state-management-picker-dark.webp" />
    </Frame>

    Pick the option that fits your app:

    * **BLoC** - Great for apps with complex logic and data flows
    * **GetX** - Lightweight and fast, ideal for quick builds
    * **Provider** - Simple and reliable for most apps
    * **Riverpod** - A flexible upgrade to Provider, great for scaling
    * **Without state management** - Use only widgets (best for basic apps or prototypes)
  </Step>

  <Step title="Rocket generates your mobile app">
    Rocket parses your Figma file, optimizes images and layout, and generates clean Flutter code.

    <Frame caption="Rocket is building your mobile app in real time">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/figma-import-progress-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=640f17396ede86e49f8df4adb1398803" alt="Generation progress panel showing Fetching Figma and Writing Code steps with live status updates." className="theme-image light-image" width="1564" height="822" data-path="images/build-docs/create/figma/mobile-app/figma-import-progress-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/figma-import-progress-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=1e726349023fe6c2db23ab2d41403e63" alt="Generation progress panel showing Fetching Figma and Writing Code steps with live status updates." className="theme-image dark-image" width="1564" height="822" data-path="images/build-docs/create/figma/mobile-app/figma-import-progress-dark.webp" />
    </Frame>

    All status indicators turn green when your app is ready.
  </Step>

  <Step title="Review in Rocket and compare with Figma">
    Once generation is complete, use the **Preview** tab at the top of the editor to view your Rocket-generated mobile app.

    To view your original Figma design directly in Rocket, click the **<Icon icon="figma" />** icon in the top-right navbar. This opens the Figma preview panel, showing your source design alongside the chat panel.

    <Frame caption="Click the Figma icon in the top-right to open your Figma design in Rocket">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/figma-preview-panel-open-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=f80c94d1323440f5d5c92453f437dcff" alt="Rocket editor with the Figma icon highlighted in the top-right navbar and the Figma design displayed in the preview panel." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/figma-preview-panel-open-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/figma-preview-panel-open-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=6d89690347f30f4658444da9b8b7434c" alt="Rocket editor with the Figma icon highlighted in the top-right navbar and the Figma design displayed in the preview panel." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/figma-preview-panel-open-dark.webp" />
    </Frame>

    If your design looks slightly off, fine-tune it using chat. For example:

    * **What you see:** The card has a shadow that does not appear in the original design
    * **What Figma shows:** No shadow on the card
    * **Fix it:** `"Remove the shadow from the product cards on the Home screen"`
  </Step>

  <Step title="Add more screens">
    Need to bring in more screens after the initial import?

    Click the **+** button at the bottom of the chat, then select **Add new screen**.

    <Frame caption="Click + then select Add new screen">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/task-plus-menu-add-new-screen-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=0083cbc08c0bf69d896031bef48f4478" alt="Chat input + menu open with Add new screen highlighted." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/task-plus-menu-add-new-screen-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/task-plus-menu-add-new-screen-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=5c92fc4c926caf6d18e8ad05d6d5e855" alt="Chat input + menu open with Add new screen highlighted." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/task-plus-menu-add-new-screen-dark.webp" />
    </Frame>

    * **From the same file:** Select from the list of available screens (already-imported ones are marked) and click **Start import**.

    <Frame caption="Choose to add from the same Figma file or a different one">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/add-screen-file-source-menu-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=4ac33694945d16b89e4c0b3fb9b9a800" alt="Submenu showing From same file and From different file options." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/add-screen-file-source-menu-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/add-screen-file-source-menu-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=e88dc63931b862c87a2d429e95acf60f" alt="Submenu showing From same file and From different file options." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/add-screen-file-source-menu-dark.webp" />
    </Frame>

    Select the screens you want to add and click **Start import**.

    <Frame caption="Select screens from your Figma file">
      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/same-file-screen-picker-light.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=04efbfc2c1aeef2a2fa53e5d12aa4b92" alt="Frame picker modal showing Mobile frames with thumbnails and a Start import button." className="theme-image light-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/same-file-screen-picker-light.webp" />

      <img src="https://mintcdn.com/dhiwisepvtltd-5e04e6a4/pLntWJzZ3SjUx1lc/images/build-docs/create/figma/mobile-app/same-file-screen-picker-dark.webp?fit=max&auto=format&n=pLntWJzZ3SjUx1lc&q=85&s=7ac0f56371fba42ff5d7b3c4b25356ab" alt="Frame picker modal showing Mobile frames with thumbnails and a Start import button." className="theme-image dark-image" width="1440" height="812" data-path="images/build-docs/create/figma/mobile-app/same-file-screen-picker-dark.webp" />
    </Frame>

    * **From a different file:** Choose **From different file**, then paste a new Figma URL. This starts a new task. Your current task is not affected.
  </Step>
</Steps>

<Divider />

## After your import

Once Rocket generates your Flutter app, iterate with chat to add functionality:

| Goal                   | Prompt                                                                        |
| :--------------------- | :---------------------------------------------------------------------------- |
| Add navigation         | `Add a bottom tab bar with Home, Search, Favorites, and Profile tabs.`        |
| Connect a database     | `Connect Supabase and load the product list from a "products" table.`         |
| Add authentication     | `Add login and signup screens with email/password auth and a splash screen.`  |
| Fix visual differences | `The card shadow is too dark. Match the shadow from my Figma design exactly.` |
| Add animations         | `Add a slide-in animation when navigating between screens.`                   |
| Push notifications     | `Connect Firebase and add push notification support for order updates.`       |

<Divider />

## Tips

* **Start with key screens.** Import your most important 5-10 screens first, then add more incrementally.
* **Choose the right state management.** For simple apps, Provider or no state management works fine. For complex apps with lots of data flow, use BLoC or Riverpod.
* **Use the Figma preview.** Click the <Icon icon="figma" /> icon in the top-right navbar to view your original Figma design directly in Rocket. Use the **Preview** tab to see the Rocket-generated app.
* **Fix visual mismatches in chat.** If a shadow, spacing, or color does not match, describe the difference and Rocket corrects it.
* **Follow the design guidelines.** Mobile frames should be between 200px and 800px wide. See the [guidelines](/build/create/figma/figma-design-guidelines/overview).
* **Prototype links do not work.** Use file or frame URLs, not prototype links.

<Divider />

## What's next?

<CardGroup cols={2}>
  <Card title="Iterate with chat" icon="messages" href="/build/editor/chat">
    Refine your imported app with natural language prompts.
  </Card>

  <Card title="Connectors" icon="puzzle-piece" href="/build/connectors/overview">
    Add payments, databases, AI, email, and analytics.
  </Card>

  <Card title="Preview on device" icon="mobile" href="/build/editor/preview">
    Test your Flutter app on real devices or emulators.
  </Card>

  <Card title="Submit to app stores" icon="app-store-ios" href="/build/launch-mobile/apple-store">
    Publish your Flutter app to the App Store and Google Play.
  </Card>
</CardGroup>
