I work on various projects and the vast majority of these involve working with a text editor locally, and using git to push these changes to a live environment. As much as I admire the work done on the web IDE, I really don’t think it compares to being able to work in a text editor or IDE that you are familiar with. Indeed, working on my current IMP project sometimes fills me with a sense of dread, knowing I have to negotiate the web IDE and the issues (eg, responsiveness) that comes with it.
If I had to picture an ideal scenario, I would be able to use my favourite text editor to edit files which are contained in a local git repo on my machine (added bonus: rollback). This could include things like #import statements for external classes. The main agent file would have a predetermined name of agent.nut, and similarly device.nut for device code.
Then doing a git push up to the electric imp “cloud” would trigger a hook (or equivalent) at the Electric Imp end, and the new code would be compiled (including imports) and pushed to the device/agent, as it is when “Build and Run” is clicked currently.
While the web IDE is fancy, having to manage several of these, for things like mbed or the forthcoming Espruino is and will be a headache. Tools like a text editor and git are familiar to the vast majority who develop, and letting someone edit their code locally and simply do a “git push” to get it on their device would be really handy. I know it would help me approach IMP development with less of a sense of dread!
We have an HTTP API which some customers have been using for several months now; it allows your to manipulate models, upload code, and view logging from the command line.
It really needs some tidying before general release though, which is on the to-do list.
That’s excellent news Hugo, thanks for the response. Looking forward to seeing this come to fruition
Also a willing tester…
Once this HTTP API is tested and released I am sure the community will create various methods to use this with their favorite ‘local’ IDE.
I for one would love to develop Imp code in Eclipse and then be able to click ‘Run’ and have Eclipse send both agent and client code through this HTTP API and execute it.
I have some experience editing files through the Github API, using tools like http://prose.io/ or my own https://everid.net/ . I think such an API is the way to go and very much look forward to the HTTP API.
+1 for Eclipse support!
Using a web browser to run an IDE is OK for basic developments but it becomes a pain for serious projects.
I’m using Eclipse to manage numerous projects for various platforms.
It will be so nice to have an Eclipse plug-in for imp development.
This will allow us to have useful features like code auto-completion, dynamic help for code syntax, import/export project, partial “off-line” development (to work while in the plane or in the train) and why not … debugging!
It seems that the Squirrel team is already working on a plug-in for Eclipse called “SQDev”:
Another eager beta tester for the API here!!
Combined with the ability to fetch the server logs for device/agent (that Hugo mentioned) this HTTP API would arguable be the single best improvement that can be made to the current IDE for all of us imp-cloud freeloaders.
Any update on this? I would also like to use Eclipse.
As an alternative to external development, is there any way to get support for multi file projects going. I have developed modules for sampler support, a rules engine, debug functions, twilio, xively, Pushover and various other standardized re-useable components that need to selectively be included based on the hardware platform.
The code in a large config can reach 1500 lines on the device, and editing is becoming a nightmare.
The ability to #include specific modules as required will be of huge value since it will allow editing to focus on a specific section with minimal clutter.
Please please please!!! L-)
Any news about HTTP API?
Last post from Hugo is almost an year ago.
We just started developing a pretty complex system with Electric Imp and we very much would like to see this in action.
If you’re a commercial customer, file a support ticket and we’ll get you on the current API. The new one is still being implemented (and will be available to everyone). Hoping to launch it in the next few months.
@ammaree the API also includes library support.
Ok Hugo, it is now almost October - a ‘few months’ from your post…
Any updates on the HTTP API for non-commercial customers?
It’s currently being spec’d up, @wfldrock, with a view to implementation by the end of the year. That’s not a formal deadline, by the way, rather our anticipation of when it might be implemented, tested and made available based on the development team’s current workload. So, no promises, but that’s what we’re aiming for.
@wfidrock - I sent a PM with some more information.
It’s in internal testing, but I’m afraid I can’t say when it will be made available.