# Moving project from Web IDE to Particle Dev on a Mac

**URL:** <https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398>\
**Category:** General\
**Created:** [January 6, 2017, 3:29pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398 "2017-01-06T15:29:56Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 6, 2017, 3:29pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/1 "2017-01-06T15:29:56Z")

</div>

Is there a page or procedure defined to explain how to move from a successfully built and tested project on the WEB IDE to PARTICLE DEV on a Mac?

Thanks

---

<div class="post-metadata">

**Author:** ![Moors7](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/moors7/32/588_2.png) [@Moors7](https://community.particle.io/u/Moors7)\
**Post date:** [January 6, 2017, 4:42pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/2 "2017-01-06T16:42:58Z")

</div>

Unfortunately, for the time being, that would mean copy & paste. You can download the libraries that you’ve used by clicking their github icon.  
Keep these points in mind when working with Dev though: [Particle Dev Tips](http://community.particle.io/t/particle-dev-tips/28275)

You might find the CLI to be a more comfortable way to work ‘locally’, allowing you to use any IDE you prefer.

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 6, 2017, 7:22pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/3 "2017-01-06T19:22:46Z")

</div>

Ok Thanks

Still a wee bit uncomfortable with the Particle Editor… (I’m on old SW engineer with 25+ years on Vim+predecessors. ) So… Any suggestions for integrating with my more comfortable vim/gvim/macvim environment?

It would still be nice to use the buttons in the particle env to build/download.

Thanks

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 6, 2017, 7:46pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/4 "2017-01-06T19:46:32Z")

</div>

@awardblvr

> [@awardblvr](#):
>
> So... Any suggestions for integrating with my more comfortable vim/gvim/macvim environment?

As @Moors7 mentioned you could use particle-cli for terminal based development using Particle's Servers to compile your code.

I would also suggest trying [po-util](https://nrobinson2000.github.io/po-util/). Its a tool that I created to provide a local workflow for Particle development. It allows you to easily compile locally and work offline. po-util can be installed with Homebrew on Mac:

```bash
$ brew tap nrobinson2000/po
$ brew install po
$ po install

```

po-util can work with your preferred terminal based environment or with [Atom](https://atom.io), the editor Particle Dev is based on.

po-util has its own library manager, so you can easily download and use the libraries used on the Web IDE.

po-util operates with [project directories](https://github.com/nrobinson2000/po-util#project-directory-structure), so that you can have as many separated projects as you want.

Here are the commands to create and build a po-util project for a photon:

```bash
$ mkdir particleProject
$ cd particleProject
$ po init photon
$ po photon build

```

All firmware is kept in the `firmware/` directory, primarily in the `main.cpp` file.

Another feature of po-util is that it supports automatic flashing over USB using dfu-util.

To build and flash you can do:

```bash
$ po photon flash

```

To just flash you can do:

```bash
$ po photon dfu

```

> [@awardblvr](#):
>
> It would still be nice to use the buttons in the particle env to build/download

Po-util supports build keyboard shortcuts for Atom. For example, to `build` you would do CTRL+ALT+1

The rest of the keyboard shortcuts can be found in the manpage for `po`.

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 9, 2017, 6:15pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/5 "2017-01-09T18:15:48Z")

</div>

All I can say is that I started following this on Friday after you sent it. It has been nearly flawless and a HUGE productivity booster. I could not get the direct loading part to work, but OTA (“po photon ota …” works perfectly well. I cannot believe your steps worked installing so many utils and dependencies perfectly.

So very very cool Nathan… Very Very cool. The Particle world owes you a big debt. If there were Emmy awards for Particle contribs, you would get one.

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 9, 2017, 10:45pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/6 "2017-01-09T22:45:18Z")

</div>

> [@awardblvr](#):
>
> I could not get the direct loading part to work.

You need to upgrade the system firmware on the Photon to allow automatic DFU mode and upload.

```bash
$ po photon upgrade

```

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 10, 2017, 4:41pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/7 "2017-01-10T16:41:22Z")

</div>

THANKS …Cool… Took a while to remember to put Photon in DFU… But after that… everything perfect and “po photon flash” —\> perfection.

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 11, 2017, 5:52am UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/8 "2017-01-11T05:52:03Z")

</div>

That’s great. I’m glad you are enjoying po-util.

I made a page on the po-util wiki with step by step instructions to get started with po-util on Mac to help users interested in po-util.

> **[nrobinson2000/po-util](https://github.com/nrobinson2000/po-util/wiki/macOS-Guide)**
>
> Classic Edition of po-util: The Ultimate Local Particle Experience for Linux and macOS

Also, you can see the full features of po-util by doing `man po`.

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 30, 2017, 6:50pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/9 "2017-01-30T18:50:00Z")

</div>

**Any news on how Particle’s new Library manager should be used with Nick’s po-util tool set?**

Thanks… And especially Nick for this really great environment!

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 30, 2017, 7:32pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/10 "2017-01-30T19:32:14Z")

</div>

Who is nick? 😉

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 30, 2017, 8:07pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/11 "2017-01-30T20:07:54Z")

</div>

oops… Sorry Nathan! hey… it’s a free new name, new identity??? (I won’t make the same mistake again.)

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 31, 2017, 12:28am UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/12 "2017-01-31T00:28:12Z")

</div>

@awardblvr

I am working on adding support for the Particle Library Manager in po-util.

You can now install and use libraries from `particle-cli` with po-util.

Example:  
If you do:

```auto
po lib get HttpClient

```

po-util will use `particle-cli` to download the library because the argument is not a URL.

You can add a library to a project the same way you would add a Git library:

```auto
po lib add HttpClient

```

Update po-util to get this feature:

```auto
po update

```

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 31, 2017, 7:09pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/13 "2017-01-31T19:09:24Z")

</div>

Ok Cool But, this did not seem new. Is it? I thought your functionality was always there for this???

**Now… HOW do I go in an see the header files for common libraries?**

For instance, I want to see what other functions are prototyped wherever “strmp” is proto’d. This so I can see if there is a “safe” version “strncmp” and other related functions. But, all the libraries are kinda obfuscated and I have no idea where to look. Even going to github, it is kinda unclear which repo has, say, the standard stuff that is included when particle.h (application.h) is included.

Any advice appreciated.

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 31, 2017, 7:35pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/14 "2017-01-31T19:35:07Z")

</div>

> [@awardblvr](#):
>
> this did not seem new. Is it? I thought your functionality was always there for this???

This is new. Basically if the argument you supply to `po lib get` is not URL to a repository, it will use Particle Libraries 2.0 to get the library from Particle.

---

<div class="post-metadata">

**Author:** ![awardblvr](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/awardblvr/32/12719_2.png) [@awardblvr](https://community.particle.io/u/awardblvr)\
**Post date:** [January 31, 2017, 8:21pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/15 "2017-01-31T20:21:42Z")

</div>

Thanks... any suggestion on...

> [@awardblvr](#):
>
> Now... **HOW do I go in an see the header files for common libraries?**
> 
> For instance, I want to see what other functions are prototyped wherever "strmp" is proto'd. This so I can see if there is a "safe" version "strncmp" and other related functions. But, all the libraries are kinda obfuscated and I have no idea where to look. Even going to github, it is kinda unclear which repo has, say, the standard stuff that is included when particle.h (application.h) is included.

---

<div class="post-metadata">

**Author:** ![nrobinson2000](https://sea2.discourse-cdn.com/flex026/user_avatar/community.particle.io/nrobinson2000/32/15624_2.png) [@nrobinson2000](https://community.particle.io/u/nrobinson2000)\
**Post date:** [January 31, 2017, 11:09pm UTC](https://community.particle.io/t/moving-project-from-web-ide-to-particle-dev-on-a-mac/28398/16 "2017-01-31T23:09:29Z")

</div>

The Particle firmware is located in `~/github/firmware`.

`application.h` is located in `user/inc`

A lot of the stuff is in `wiring` and `system` as well.

I think @BDub and @mdma could help refer you to what you are looking for.

I have answered this question here

> **[Char arrays? Or, String objects?](http://community.particle.io/t/char-arrays-or-string-objects/29037)**
>
> Old c developer here.. Used to c arrays, pointers, strcmp() and other age-old methods of handling strings. I was scared by the String.h issues in arduino. Speed, memory, bla bla bla. So... What is the preferred method for handling strings in...
