פיתוח רכיבי Retool מותאמים אישית עם איכות מובטחת

כאשר הווידג'טים המובנים של Retool אינם מספיקים למשימות לא סטנדרטיות—ויזואליזציות מורכבות, מפות אינטראקטיביות או לוגיקה ספציפית—אנחנו בונים רכיבי Retool מותאמים אישית במפתח מלא. הצוות שלנו מטפל בכל התהליך: מהקונספט והעיצוב ועד ליישום ולתמיכה שוטפת. התוצאה היא פתרון אמין שמשתלב בצורה חלקה בממשק שלך וגדל עם העסק שלך.

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

אלה רק חלק מהסוגים הטכניים של אתרים שאנו עובדים איתם, ולכל אחד מהם יכולים להיות מאפיינים ופונקציונליות ספציפיים משלו, וכן ניתן להתאים אותם לצרכים ולמטרות הספציפיים של הלקוח.

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח רכיבי Retool מותאמים אישית עם איכות מובטחת
בינוני
~3-5 ימים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

לעתים קרובות אנו נתקלים במצבים שבהם הווידג'טים המובנים של Retool מתקשים: צריך להציג 10,000+ נקודות על מפה עם קיבוץ דינמי, אבל ווידג'ט המפה המקורי קופא ב-500 נקודות. או שצריך תרשים עם אנימציה מותאמת אישית, גרירה ושחרור עם חוקים עסקיים, לוח קנבן עם מגבלות WIP. למשימות כאלה, Retool מספקת רכיבים מותאמים אישית — יישומי React מלאים המבודדים ב-iframe ומתקשרים עם המארח באמצעות postMessage API. בנינו למעלה מ-50 רכיבים כאלה במפתח מלא למשימות עסקיות שונות, ואנו חולקים את הניסיון שנצבר.

כיצד פועלים רכיבים מותאמים אישית — פיתוח רכיבי Retool מותאמים אישית

רכיב מותאם אישית הוא יישום React המתקשר עם Retool באמצעות ספריית @tryretool/custom-component-support. היא מספקת React hooks לסנכרון מצב: Retool.useStateValue לקריאה/כתיבה של המודל ו-Retool.useEventCallback לשליחת אירועים חזרה ל-Retool. סביבת הפיתוח היא שרת מקומי (Vite או CRA), וה-bundle היצרני נפרס לכל אירוח סטטי.

// src/index.tsx — точка входа кастомного компонента
import { Retool } from '@tryretool/custom-component-support';

interface ModelData {
  items: Array<{ id: string; label: string; value: number; color: string }>;
  selectedId: string | null;
}

export const BubbleChart: FC = () => {
  const [items] = Retool.useStateValue<ModelData['items']>({
    name: 'items',
    initialValue: [],
    label: 'Chart items',
    inspector: 'array',
  });

  const [selectedId, setSelectedId] = Retool.useStateValue<string | null>({
    name: 'selectedId',
    initialValue: null,
    label: 'Selected item ID',
    inspector: 'string',
  });

  const onSelect = Retool.useEventCallback({ name: 'onItemSelect' });

  const handleBubbleClick = (id: string) => {
    setSelectedId(id);
    onSelect({ id });
  };

  return (
    <BubbleChartRenderer
      items={items}
      selectedId={selectedId}
      onSelect={onSelect}
    />
  );
};

מדוע רכיבי Retool מותאמים אישית עדיפים על ווידג'טים מובנים?

ווידג'טים מובנים מכסים 80% מהמשימות הטיפוסיות, אך 20% הנותרים דורשים פתרון מותאם אישית. השוואה:

קריטריון ווידג'טים מובנים רכיבים מותאמים אישית
ויזואליזציה תרשימים סטנדרטיים (עמודות, קווים, עוגה) כל דבר: D3.js, Three.js, ECharts
אינטראקטיביות בסיסית (פילטרים, מיון) אירועים מותאמים אישית, גרירה ושחרור, אנימציות
ביצועים מוגבל ל-1–2 אלף שורות וירטואליזציה עד 50,000+ שורות
גמישות מאפיינים קבועים שליטה מלאה בעיבוד ובלוגיקה

עבור פורמטים נדירים (תרשים אקורדים, גרף מונחה כוח), רכיב מותאם אישית הוא הדרך היחידה.

משימות טיפוסיות

ויזואליזציות: תרשימי D3.js (תרשים אקורדים, גרף מונחה כוח, sankey), ECharts עם סדרות מותאמות אישית, תצוגות תלת-ממד של Three.js. לדוגמה, לקוח השיג שיפור ביצועים של 40% באמצעות ויזואליזציה מותאמת אישית של Retool D3.js לעומת תרשימים מקוריים.

טבלאות אינטראקטיביות: רשימות וירטואליות באמצעות // src/index.tsx — точка входа кастомного компонента import { Retool } from '@tryretool/custom-component-support'; interface ModelData { items: Array<{ id: string; label: string; value: number; color: string }>; selectedId: string | null; } export const BubbleChart: FC = () => { const [items] = Retool.useStateValue<ModelData['items']>({ name: 'items', initialValue: [], label: 'Chart items', inspector: 'array', }); const [selectedId, setSelectedId] = Retool.useStateValue<string | null>({ name: 'selectedId', initialValue: null, label: 'Selected item ID', inspector: 'string', }); const onSelect = Retool.useEventCallback({ name: 'onItemSelect' }); const handleBubbleClick = (id: string) => { setSelectedId(id); onSelect({ id }); }; return ( <BubbleChartRenderer items={items} selectedId={selectedId} onSelect={onSelect} /> ); }; ל-50,000+ שורות, עריכה מובנית עם ולידטורים מותאמים אישית, גרירה ושחרור למיון באמצעות @tanstack/virtual. זה מאפשר זרימות עבודה של גרירה ושחרור ב-Retool.

מפות: Mapbox GL JS / Leaflet עם אשכולות דינמיים, כלי ציור עבור גדרות גיאוגרפיות, איזוכרונים באמצעות Mapbox Isochrone API. מושלם עבור מפות אינטראקטיביות של Retool.

דפוסי UI ספציפיים: לוח קנבן של Retool עם אילוצים עסקיים, ציר זמן Gantt של Retool, עורך קוד מבוסס Monaco. אלה מכסים צרכים מתקדמים של אינטגרציה עם רכיבים מותאמים אישית של Retool.

מה כלול בעבודה?

אנו מפתחים את הרכיב במפתח מלא: מהגדרת חוזה הנתונים ועד לפריסה ותיעוד. ההיקף כולל:

  • תיאום מודל הנתונים והאירועים.
  • יישום העיבוד וכל הלוגיקה העסקית.
  • אינטגרציה עם סביבת ה-Retool שלך (ענן או self-hosted).
  • אופטימיזציית ביצועים (וירטואליזציה, טעינה עצלה, memoization).
  • פריסה ל-CDN או ל-Retool Toolbox.
  • תיעוד להתקנה ושימוש.
  • הדרכה ותמיכה בכתב למשך שבועיים לאחר המסירה.

בנייה ופריסה

הרכיב נארז לקובץ יחיד ונפרס לאחסון סטטי. Retool תומכת בשתי שיטות חיבור: דרך URL (CDN/S3/Vercel) ודרך Retool Toolbox עבור instances של self-hosted.

// vite.config.ts
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';

export default defineConfig({
  plugins: [react()],
  build: {
    lib: {
      entry: 'src/index.tsx',
      name: 'RetoolCustomComponent',
      fileName: 'index',
      formats: ['umd'],
    },
    rollupOptions: {
      external: ['react', 'react-dom'],
      output: {
        globals: {
          react: 'React',
          'react-dom': 'ReactDOM',
        },
      },
    },
  },
});

לאחר @dnd-kit/core — ה-// vite.config.ts import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; export default defineConfig({ plugins: [react()], build: { lib: { entry: 'src/index.tsx', name: 'RetoolCustomComponent', fileName: 'index', formats: ['umd'], }, rollupOptions: { external: ['react', 'react-dom'], output: { globals: { react: 'React', 'react-dom': 'ReactDOM', }, }, }, }, }); מועלה ל-CDN או ל-Retool Cloud Storage. בממשק Retool, אתה יוצר רכיב מותאם אישית, מציין את כתובת ה-bundle ואת כתובת דף ה-iframe.

העברת נתונים מורכבים

Retool מגבילה את המודל לסוגים הניתנים לסריאליזציה. עבור מבנים מורכבים (אובייקטים מקוננים, קבצים), השתמש בסריאליזציית JSON בתוך שדה מחרוזת:

const [rawConfig] = Retool.useStateValue<string>({
  name: 'config',
  initialValue: '{}',
  label: 'JSON Config',
  inspector: 'text',
});

const config = useMemo(() => {
  try {
    return JSON.parse(rawConfig);
  } catch {
    return {};
  }
}, [rawConfig]);

עבור מערכי נתונים גדולים (אלפי שורות), הנתונים מועברים דרך Retool Query שמחזיר JSON — הרכיב מקבל אותם ישירות ללא שכפול מצב במודל.

כיצד ליצור רכיב מותאם אישית: 5 שלבים

  1. הגדר את הפרויקט: צור אפליקציית React עם Vite או CRA, התקן את vite build.
  2. הגדר את חוזה הנתונים: תאם עם הלקוח את שדות המודל (ערכים, מאפיינים) ואת האירועים (callbacks).
  3. יישם עיבוד ולוגיקה: השתמש ב-hooks של dist/index.umd.js לקריאת נתונים ו-const [rawConfig] = Retool.useStateValue<string>({ name: 'config', initialValue: '{}', label: 'JSON Config', inspector: 'text', }); const config = useMemo(() => { try { return JSON.parse(rawConfig); } catch { return {}; } }, [rawConfig]); לשליחת אירועים.
  4. בנה את ה-bundle: הרץ את @tryretool/custom-component-support עם תצורת UMD.
  5. פרוס: העלה את ה-bundle ל-CDN או ל-Retool Toolbox וספק את כתובת ה-URL בממשק Retool.

הניסיון והערבויות שלנו

אנו עובדים עם פלטפורמות low-code כבר שבע שנים ובנינו למעלה מ-50 רכיבים מותאמים אישית עבור Retool. אנו מבטיחים פעולה יציבה ועמידה בלוחות זמנים. צור קשר — נבחן את המשימה שלך. עלות הפיתוח משתנה בהתאם למורכבות, אך בדרך כלל מחזירה את עצמה תוך 2–3 חודשי שימוש. עלויות פרויקט טיפוסיות נעות בין $2,000 ל-$10,000.