Appfarm Documentation
Getting startedDocumentationCommunityAppfarm Create
  • Overview
  • Getting Started
    • What is Appfarm?
    • Key concepts
    • Quickstart
      • Speed intro
      • Step-by-step guide
    • Appfarm Showroom
    • FAQ
  • Appcademy
    • Learning paths
    • Appfarm Fundamentals
      • Intro Course
        • 1. Intro to No-Code and Appfarm
        • 2. Navigation in Appfarm Create
        • 3. What is Apps?
        • 4. Intro to UI Editor
        • 5. Data Model
        • 6. App Data
        • 7. Actions
        • 8. Tips and Tricks
        • 9. Intro to practical walkthrough
        • 10. Create a details view of a Project
        • 11. Create a Custom List
        • 12. Swipe and Delete
        • 13. Functionality for simple Create of Data
        • 14. Upload and Download Photos
        • 15. Input Dialog with Validation and Save
        • 16. Dashboard
        • 17. Summary
        • Quiz
      • User Interface Fundamentals
        • Container - Sectioning, Styling and Repeating
        • Conditional Styles
        • Motions
        • Responsive Design
        • Step-by-step workflow
        • Featured UI Components
        • Quiz
      • App Data Fundamentals
        • Data Source Filtering
        • App Variables and Runtime Properties
        • URL Parameters
        • Quiz
      • Actions & Logic Fundamentals
        • Event Handlers
        • Featured Action Nodes
        • Context Parameters
        • Quiz
      • Services Fundamentals
        • Introduction to Services
        • Setting up a Service
        • Scheduling a Service
      • Integration Fundamentals
        • The web request action node
        • Fetch data from an endpoint
        • Map data to a data source
        • Modify the response
        • Nested data mapping
        • Path parameters
        • Authentication
        • Send data to an endpoint
        • Quiz
      • User handling and permissions
        • Users and roles
        • Permissions
        • Creating users
        • Extending the User object class
        • Updating and deleting users
        • Unauthenticated access
        • Quiz
    • Appfarm Professional
      • User Interfaces
        • Featured UI Components
        • Concepts and Use Cases
      • Data Structures & Data Handling
        • Data Features
        • Search & Filters
        • Featured Action Nodes
        • GraphQL
      • Logic & Flow
        • Logical Concepts
        • Date and Time Handling
        • Featured Action Nodes
        • Exception Handling
      • Login & Configuration
        • Login and Authentication
        • Settings, Configuration and Languages
      • Security & Operations
        • Security and Permissions
        • Deployment
        • Schedules and Logs
        • Debugging and App Health
      • Performance & Optimization
        • Optimizing Performance
        • Enhancing Functionality
    • Appfarm Sales Representative
    • Appfarm Developer Forum
      • Session 1: Data Modeling in Appfarm Create
      • Session 2: App Data in Appfarm Create
      • Session 3: Services in Appfarm Create
      • Session 4: Optimizing Performance
    • Background
      • Databases
        • Data modeling 101
        • Database normalization
  • Library
    • UI components
      • Advanced bar chart
      • Advanced bubble chart
      • Advanced combined chart
      • Advanced gantt chart
      • Advanced heatmap chart
      • Advanced line/area chart
      • Advanced pie chart
      • Advanced scatter plot chart
      • Advanced solid gauge chart
      • Animated component
      • Avatar
      • Avatar group
      • Basic bar chart
      • Basic gauge chart
      • Basic line chart
      • Basic pie chart
      • Bottom navigation
      • Button
      • Checkbox
      • Chip group
      • Circular progress
      • Coded component
      • Container
      • Date & time picker
      • Drawable canvas
      • Floating action button
      • Icon
      • Icon button
      • Iframe
      • Image
      • Linear progress
      • List
      • Map
      • Menu list
      • Multi select
      • PDF reader
      • Popover
      • Radio buttons
      • Rich text editor
      • Rich text
      • Select
      • Slider
      • Speed dial
      • Switch
      • Table
      • Tabs
      • Text
      • Text edit
      • View container
      • Visibility group
    • Action nodes
      • Aggregate data
      • Advanced search
      • Auth operations
      • Block
      • Catch exception
      • Copy to clipboard
      • Create file archive
      • Create file object
      • Create object
      • Create user account
      • Delete objects
      • Delete user account
      • Duplicate objects
      • End execution
      • Exit block
      • Exit loop
      • Export data
      • Foreach
      • Generate document
      • If
      • Import data
      • Invalidate cache
      • Log in
      • Log to console
      • Log out
      • Next iteration
      • Navigate
      • Open/close popover
      • Open confirm dialog
      • Open print dialog
      • Open snackbar
      • Open Unsplash dialog
      • Open URL
      • Persist objects
      • Push notifications
      • Read objects
      • Request permissions
      • Run code
      • Run other action
      • Run service
      • Scan barcode/QR code
      • Send email
      • Send SMS
      • Set client language
      • Set data source attributes
      • Set selection
      • Set theme
      • Set user account image
      • Show install app prompt
      • Sleep
      • Sort objects
      • Throw exception
      • Toggle drawer
      • Update object
      • Update secret
      • Update user account
      • Web request
      • While
  • Reference
    • Appfarm Create
      • Appfarm Commander
      • Blue dots
      • Copy & Paste
      • Farmer's Market
      • Find references
      • Find usage
      • Keyboard shortcuts
      • Undo/Redo
      • User preferences
    • Platform concepts
      • Conditions
      • Data bindings
      • Date and time
      • Event handlers
      • Filters
      • Functions
      • Markdown
      • Objects
      • Operators
      • Value processor
    • Dashboard
    • Apps
      • UI
        • Views
          • Dialog
          • Drawer
        • Layout designer
        • Component properties
        • Shareable UI components
      • Data
        • App variables
        • Data sources
        • Calendar data sources
      • Actions
      • App settings
      • App size
      • App health
    • Services
      • Service Endpoints
      • Service settings
      • Service health
      • API explorer
    • Data model
      • Object classes
      • Object class properties
      • Enumerated types
      • GraphQL
        • Queries
        • Mutations
      • Data Extract API
      • Time series data
    • Operations
      • Deploy
      • Schedules
      • Logs
    • Resources
      • Themes
      • Files
      • Fonts
      • Internationalization
    • Configuration
      • Environments
      • Login
        • Custom auth providers
    • Security
      • Users
      • Service accounts
      • Roles
      • Secrets
      • Permissions
        • Conditional Permissions
    • Appfarm Client
      • Developer tools for Apps
      • Developer tools for Services
      • Warnings and errors
  • How to
    • Data modeling
      • Many-to-many relationships
      • Use naming conventions
      • Offline data handling
      • Data silos and White labelling
    • User interface
      • Manage a many-to-many relationship with a Chip group
      • Configure drag and drop
      • Build a drag-and-drop calendar
      • Design a responsive layout
      • Work with flexbox
      • Use Mapbox as a map layer
      • Understand charts
    • Logic and flow
      • Event Log Design
      • Configure advanced search
    • Themes and styling
      • Change the active theme
      • Add custom email templates
    • Enhance your app
      • Add deep links
      • Add keyboard shortcuts
      • Add link previews for social media
      • Apply SEO best practices
      • Change the active language
      • Generate a PDF from a Container
    • Integrations
      • Integrate with external systems
      • Integrate with OpenAI
      • Integrate with Google Analytics (GA4)
      • Configure a custom email account
      • Integrate with a payment provider
      • Integrate with Signicat
      • Integrate directly with an external database
      • Retrieve a Bearer token from Google Cloud
      • Fetch data from BigQuery
      • Retrieve access token from Microsoft Entra ID
    • Workflow automation
      • Update an OAuth 2.0 access token from a service
    • Authentication and access control
      • Add users and assign roles
      • Configure unauthenticated access
      • Implement third-party authentication
    • Security, testing and deployment
      • Add a custom domain
      • Install an app on a device
      • Get ready for Production
      • Optimize performance
      • Security checklist
      • Test and debug
    • Example apps
      • Create an Instagram clone
        • The end result
        • Designing the feed
        • Create new post
        • Add a like-button
        • Add comment-functionality
  • Solution administration
    • Subscription and billing
    • Dedicated tier benefits
    • Guide to GDPR
      • Key principles
      • How Appfarm protects personal data
      • How you can protect your clients’ data
      • Glossary
    • Appfarm and the EU AI Act
  • Policies
    • Appfarm Policies
    • Data Processors
    • Privacy Policy
Powered by GitBook
On this page
  • Enable the Appfarm Developer tools
  • Status indicator
  • Panels
  • Logs
  • App data
  • Actions
  • App Validation
  • Developer tools settings
  • Advanced debugging using the browser developer tools
  • Console Tab
  • Network tab
  • Application tab

Was this helpful?

Export as PDF
  1. Reference
  2. Appfarm Client

Developer tools for Apps

The Appfarm Client features its own Developer tools (also known as DevTools). Developer tools are helpful for reviewing the state of your app at a given time, for diagnosing problems, and to fine-tune functionality, logic, and performance.

Enable the Appfarm Developer tools

To enable Developer tools in the Appfarm Client, you need to first enable client logs for that environment in Appfarm Create. To enable client logs, navigate to Environments > ENVIRONMENT > Log Options and select Enable Client Log.

Once client logs are enabled for an environment you can enable Developer tools in the Appfarm Client. There are two ways to enable Developer tools. Open an app and:

  • Append ?enable_devtools=true as a query parameter to the client URL. For example: https://SOLUTION_SHORTNAME-dev.appfarm.app/APP_NAME/VIEW_NAME?enable_devtools=true, or

  • Open your browser's Developer tools console and type appfarmDebug.enableDevTools().

Once enabled, the Developer tools will appear at the bottom of the screen. You can minimize Developer tools by clicking the down arrow at the top-right of the panel. They will be minimized to a button at the bottom-right which you can click to re-open. To disable the Developer tools, click the cog icon to access Developer tools settings, and click Close developer tools.

Status indicator

The Developer tools rocket icon changes color depending on the status of your app. This provides a quick indication if an issue has occurred as you develop or use an app.

  • The circle around the rocket will turn orange or red if there are any warnings or errors respectively, under Logs or App Validation.

  • The rocket will turn gray if Live Preview is disabled.

Panels

The functionality within the Developer tools is grouped into five panels.

Logs

The Appfarm Client generates messages when performing different operations, such as running actions. These messages are printed in the Logs panel.

The messages include:

  • A data view of modified data sources.

  • The payload sent when calling external APIs.

  • Context data for an action, such as action params.

  • Error messages from failed action nodes.

  • Execution time of actions and action nodes.

App data

The App Data panel lists the data sources used in the app, along with the objects contained in those data sources and the properties that are in use in the app.

From the list of objects contained in a data source, you may right-click a row to copy the record (or all records) as JSON.

Important

App Data FAQ #1: Why are some properties missing on the data source in Dev Tools, but are present in the object class?

Appfarm only sends metadata for properties used in the App to the client. The Dev Tools only have access to the same data as the App. Thus, properties that are not used or written to in the App will not be shown in Dev Tools.

App Data FAQ #2: Some objects are missing data for some properties, but when I check the database with GraphQL, the data is still there

Data that is displayed in Dev Tools are of properties that are needed in the App, meaning: data that is displayed in the UI, used to update other data, used in filters, conditions, functions or action nodes. We do not read data for properties that are only written to in the App. Thus, if you have a column that is only written to the property will be shown in Dev Tools but will only contain data if the object is created in the client. Those data will be removed upon refresh of the App since the App will read data from the database during a refresh.

Actions

The Actions panel lists all actions in your app with an overview of how many times they have been run. You can also set breakpoints at the action node level in order to control action execution.

Select an action to display the action nodes contained inside. Toggle a breakpoint by clicking on an action node.

All breakpoints are displayed in a list to the right. You can activate/deactivate a breakpoint by clicking the corresponding switch in this list. This is useful if you want to retain the breakpoint for later, but deactivate it temporarily.

When an action is paused due to a breakpoint, you can choose to resume action execution, step to the next action node, or abort the action execution, by using the buttons in the toolbar.

App Validation

Developer tools settings

This panel provides some settings and information about the Appfarm Client. Any settings changed here are stored in the browser's local storage and will continue to apply after reopening Developer tools or restarting the browser.

Client Preview Mode

Live Preview is the hot reload functionality that refreshes the app when changes are made in Appfarm Create. If you are experiencing issues, or collaborating with other developers, it can be useful to disable Live Preview.

Include Generated Data will reveal data records for system generated data sources in the App Data section of the Developer Tools. Generated data sources are created when two object classes are joined. For example, when a list of Contacts are displaying Contact.Company.Name - a join from the Contact table to the Company table occurs, and a Generated Data Source between the two is created.

Developer Tools Theme

Enable a dark theme for the Developer tools.

Share App Link

Display a QR code for opening the app.

Send Client State

If requested by Appfarm Support, you can send us your client state to help identify a potential issue.

Version Information

Details of the exact version of the Appfarm Client in use.

Close Developer Tools Panel

Advanced debugging using the browser developer tools

With reference to Google Chrome, here is how you may debug different scenarios.

Console Tab

The Console tab gives you a full-height view of the execution log. You may also undock the developer tool in a separate window. You may find it easier to use when doing a lot of analysis, and it works better than the Appfarm Developer Tools when debugging and simulating mobile devices in your browser at the same time.

Also, a few handy commands exist that may be typed into the console:

  • appfarmDebug.enableDevTools() and appfarmDebug.disableDevTools(): To enable and disable the Appfarm Developer Tools. Typically used when debugging with logging in Production environments.

  • appfarmDebug.listDataSources(): Gives you a list of all Data Sources with IDs, Name and number of objects.

  • appfarmDebug.logging.enableGuiUpdateStats() and appfarmDebug.logging.disableGuiUpdateStats(): Useful if you want extended logging of what happens while rendering the UI.

Network tab

Two main use cases exist for this tab: Simulating offline of high latency / low bandwidth environments, and viewing the requests/responses (messages) from the client to the server.

The top bar (which has a default network setting No throttling) may be set to simulate Offline, Fast/Slow 3G, or custom network environment settings.

The Network tab may be used to see the timing of the messages between the client and the server. By filtering on WS (Websocket), selecting the entry to the left (refresh needed first time this is enabled), and navigate to Messages - you see details for all traffic as below:

Application tab

The Application tab may be used if you want to see the content of Cookies, or what Appfarm has stored in the Local Storage or Session Storage. You may also delete Cookies or data in Local- or Session Storage from here.

PreviousAppfarm ClientNextDeveloper tools for Services

Last updated 11 months ago

Was this helpful?

App Data only lists the data sources and properties actually used in the app. If a specific property is never referenced within an app, it will not be shown in Developer tools. Use Appfarm Create to review your data model or, to get a complete picture of the data stored in the database, consider using .

If an action is executed often (such as when used in a ) and clutters the execution log, you may select the Action and toggle the Mute log switch to stop it from logging.

App Validation displays any validation warnings and errors for the app. Note that messages in this section may arise from issues out of an Appfarm Create developer's control. Please contact if you suspect such an issue.

If you close the Developer tools, you will need to again if you later wish to use it.

All browsers come with built-in developer tools, that may be used for displaying the console log of the web application, the network traffic (and simulating offline or high-latency / low bandwidth environments), and memory usage. The built-in developer tools may be used to investigate technical issues related to data handling and usage, performance, latency, timing and memory - or if you want a full view of the execution when running actions.

For the above example, we see the Length (bytes uploaded or downloaded) and Time (finish time for the message). By clicking the entry and expanding some sections, we see that this is the message sent when updating the property Done on an object in my Tasks Data Source. It does not state the Data Source Name, but you may look-up the dataSourceId by running appfarmDebug.listDataSources() in the .

GraphQL
support@appfarm.io
enable them
Log
Console tab
Timer
Browser Developer Tools - Advanced Network Log