Introducing SpeckCode -- A macOS IDE for Particle Development

We are proud to introduce a new IDE and management application tailored to Particle developers on the macOS platform.

To see screen shots and in-depth feature descriptions visit https://www.speckcode.com/ or in the macOS App Store.

SpeckCode is the IDE for IoT. SpeckCode provides an integrated development environment (IDE) for crafting great applications for the Particle platform. Develop your Photon, Electron, or Pi based applications in a modern development environment utilizing all the advantages of a macOS based application. No more cross platform sacrifices needed.

SpeckCode principally provides two capabilities: Project Management (Code Editor) and Device Management.

General Features:
• Support for multiple Particle accounts, simultaneously. Add all your accounts and work seamlessly across each account.

Code Editor Features:
• Integrated Build and Run actions to compile and run for target devices.
• Syntax coloring for all source views
• Customizable color schemes with multiple pre-defined schemes
• Configurable code editing features including auto-completion, identation management, and more advanced code editing capabilities
• Tight integration with Particle libraries. Import libraries into an active project with two clicks
• Project auto-saving and history: Automatically manage project revisions and easily revert to previous versions with ease.
• Bidiretional serial port monitoring with auto-connect

Device Management Features:
• Manage all your devices across multiple Particle accounts
• View variables for each device
• Monitor and log events published by devices. Maintain a persistent history of events across application launches.
• Call functions exposed by individual devices and view the results
• View configured webhooks
• Manage authentication tokens

SpeckCode is a subscription based service ($0.99/month) and requires an active subscription to enable most functionality. Subscriptions last 1 month and will renew automatically until cancelled. Subscriptions begin with a 2 week free trial and may be cancelled anytime through Apple iTunes or through the manage subscriptions functionality within the application.

Enjoy!

2 Likes

An updated version, 1.0.10, is propogating it’s way through the App Store. This version has significant enhancements to the source editor.

Major improvements include:

Integrated Documentation Viewer

Built-in to SpeckCode is a API documentation reference. Select Window -> Documentation (or shortcut ⇧⌘0) to see the documentation viewer window.

Code Autocompletion
Can’t remember that perfect API name? Use code autocompletion by pressing ^Space or using the Editor -> Show Completions menu. Enable the autocompletion preference and the autocompletion menu will appear automatically when you pause while typing a completable word.

Code Formatting
Reformat that ugly code to your preferred style. Six built-in coding styles based on widely used open source projects with customizable code style rules coming soon.

Code Editor Improvements
Code editor improvements. Shift left/right, comment/uncomment, and more. Reference the Editor menu or right click in source.

Bug Fixes and Performance Improvements
Each release contains bug fixes and performance improvements. Please note most functionality requires an active subscription ($0.99/Month – Free 2 week trial).

Enjoy!

1 Like

Macbook Pro 15, Mid 2015, OS X Sierra 10.12.4

GPF’s when trying to run program. Deleted, re-downloaded. Same result.

Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY

Yikes. Can you please send the full crash report to support AT speckcode.com?

E-Mailed

Kenny

Version 1.0.12 is making its way to the app store and contains a fix for the startup crash experienced by some. Special thanks to @Kenny for working with me to to diagnose the issue.

This version slips in a new feature for subscribers too: Variable history. While SpeckCode is running variables are polled and archived periodically (approximately every 2 minutes). The history for individual or all variables for a device can be viewed:

This can be opened in a new window as well.

And the event stream shows variable changes as they are detected:

Enjoy!

Version 1.0.13 has been released

This is mostly a bug fix and polishing release but does contain some nice enhancements:

  • Bug Fixes, particularly in the code editor.

    Issues with the code syntax coloring have been resolved.

  • All successful builds now download and archive the generated firmware.

  • Last successful build is available for easy download in the debug output window. Click the save link to copy the firmware to your Downloads directory. Finder will open automatically on the downloaded file. Great for using with Particle tools to flash via USB.

  • Added ability to lock particular builds to prevent their deletion. Save your working build.

  • Flash firmware from the build history to any number of selected devices, even across accounts.

  • Added ability to put USB attached devices in serial mode or DFU mode.

  • Major performance enhancements around observations (history). Fixed issues with history items not sorting correctly.

  • Added the Particle inspired code style to the autoformatting options. Reformat code using 7 different established code styles (SpeckCode being the best!).

Enjoy!

Version 1.0.14 is heading to the App Store.

The official change long is:

  • Major performance improvements. Months of data can be stored and analyzed with little overhead.
  • Added web hook history.
  • Bug fixes

The performance enhancements are significant. We spent a considerable time heads down in performance analysis tools to resolve issues that can happen with a large number of devices or huge number of observable events per second.

We think we got it nailed and you should be able to record months of activity of even the heaviest of accounts with minimal CPU usage.

There are various bug fixes included as well. Now that the performance issues are (hopefully) resolved we will focus on more visible changes.

Please let us know what you want to see, and as always,

Enjoy!

Any vouchers available?

I have a Particle folder that contains many projects, one per sub-folder. I can’t seem to open those in the editor, but they work just fine in Particle Dev.

Also, every time I exit out of Preferences, the application crashes.

Is there a preferred means to provide feedback (i.e. via this board or another venue)?

[update] I’m running 10.12.5 on a MacBook Pro Touchbar 13"

The best way is probably to email support AT speckcode dot com. If you have a copy of the crash log that would be great.

As per the projects – we do not yet have an importer for external projects. I would just create a new project and drag the source files into the new project. If you are using libraries I would import them using the built-in library mechanism rather than copying those over.

We welcome all feedback you may have.

Enjoy!

Looking good, downloaded and installed it.

Will probably start using it more however I’m currently running the macOS High Sierra Beta to test other stuff and it keeps crashing.
Have emailed you a crash log.

We haven’t done any testing on High Sierra yet. Hopefully it is the OS causing the issue and not our code. I did receive your crash report and will analyze and contact you directly.

Version 1.0.15 has been released
This release includes bug fixes, performance enhancements, and new features including:

  • Improvements to the visualizations (graphs) of the devices overview
  • Graphics improvements
  • Added ability to ping individual or multiple devices (based on their state)
  • Added ability to associate notes with devices (synchronized via the Particle cloud)
  • Added the ability to start/stop signaling a device (flash the device’s LEDs in a rainbow)
  • Improvements to OAuth token management
  • Updated the firmware API documentation

The device overview is simplified and adds ping, signaling, and notes associated with devices.

The devices overview allows you to ping multiple devices at once – either all or by their current state. Ping results are shown in the observations table.

Ping only the devices you want:

Enjoy!