Develop Particle iOS mobile app using a Windows machine

I’m looking into developing an iOS mobile app for setting-up and monitoring my photon.
However, I have two main concerns:

  1. I have zero experience in building mobile applications.
  2. I do not have a Mac.

I can see that the docs actually have a guide on developing my first iOS app (this addresses my first concern). It also has the device library setup. I would love to follow those guides in building my first iOS app and then move on from there. However, from what I can understand, following those guides require that I work on a Mac (see concern no. 2).

I was hoping I could be able to maximize the documentations and guides Particle provides in developing my first iOS app while working on a Windows machine.

Is this possible? Any thoughts?
Or should I start begging for alms to get a Mac?

Thanks in advance!

What exactly is the purpose of the app? Is it for private use, or are you planning for a commercial launch? If it’s the former, I really wouldn’t bother with an iOS app, but would rather go for a mobile webpage to control everything. Though you could set up a virtual “hackintosh” and install XCode and whatnot, that’d still require a $99/year Licence from Apple, or a jailbroken device.
There are websites/programs available for making hybrid apps for Android/iOS based on a HTML version if I’m not mistaken. Appinventor is one of those I believe.

1 Like

It's my understanding that this is no longer true (though I haven't tried it). I think you can now put an app on your own phone with no licence.

2 Likes

@engr.pron, do.you have any of experience with Objective-C or Swift? If not, creating an iOS app will be difficult, if not impossible. If your needs are pretty basic, you could use Blynk to control the device, but not for setup.

2 Likes

Hey Moors7,

Thanks for the reply.
Right now, I am only looking at developing an iOS app just like the Particle mobile app - allow me to setup a new photon and allow me to call some functions.

Based on my googling, your suggestion of a virtual machine on Windows and installing a macOS in it seems to be the most economical option. Thanks for that.

However, I would like to ask some more regarding development using a plain Windows machine :

1.) The links below seem very helpful, However, from my limited understanding in app development, I assume I cannot use them if I do not have a Mac or a “virtual ‘hackintosh’”. Is that correct?
https://docs.particle.io/guide/how-to-build-a-product/mobile-app/
https://docs.particle.io/reference/ios/#ios-cloud-sdk

2.) I have gone thru the internet and have seen those “hybrid apps” you have mentioned. I have also seen this Xamarin guy in the community: Particle SDK for Xamarin
Now, if I opt to go with cross-platform development using those “hybrid apps”, will I have to develop my own SDK as well, just like the Xamarin guy? Does it also mean that I will not be able to utilize the iOS Cloud SDK and device library setup provided by Particle in their docs?
(I’m sorry if I’m not using the terms correctly. I did some youtube on those terms, but it barely helped.)

(By the way, the mobile webpage seems like a good idea, I would like to explore this option some other time.)

Thanks again!

Hey Ric,

I assume I will develop apps with increasing complexity. I guess I really have to learn those languages!
Thanks for the heads-up.

Hey @engr.pron, All you need to interact with Particle is simple Http requests through their REST API. If you look at any of the SDK’s, that’s all that is being done. Pretty much any framework can do this for you. If you want to develop an iOS application on a Mac, there are no native options for development. Both Xamarin and React Native require a mac computer, only Xamarin allows the Windows machine to connect to a Mac to build the iOS application. Native applications will be built using the XCode tool chain and the same is true with native Xamarin iOS or React Native iOS apps. Let’s not confuse Xamarin or React Native with Hybrid. Hybrid application development is where you are using HTML and JavaScript techniques paired with the JavaScript interpreter found on the native OS.

So if you can’t use a mac, you can’t use any native development. Ignore Obj-c, Swift, Xamarin and React Native. If you want a true native app, get a mac and go with ReactNative if you come from a web background. I love Xamarin, but there is going to be a learning curve for you there with mobile and C#. If you’re a C# wiz, then try out Xamarin. I personally can’t go without Task or async/await ever again. Also if you develop with Xamarin, you can use my SDK (although ashamed of it, I haven’t updated it to match the most recent API). Again though, my SDK just uses HttpClient to send basic web requests to the Particle REST API. I just wrote it in a generic way contained in a PCL that can be used in any C# project.

Another option for you would be something like ReactXP which will allow you to develop iOS apps in a browser. There are a lot of other options like this, but they all will have the overhead of using the JavaScript compiler. You also will be unable to access security components like the iOS Keychain or fingerprint. Apple doesn’t let the JavaScript compiler touch anything security for obvious security reasons. If your app is a consumer facing application, I would strongly recommend against this option. Most likely your competitors already have native applications in the app store.

I hope this helps answer any questions. I’ll check back to see if you have any other questions. Disclaimer, I am that Xamarin guy and still work for Xamarin under Microsoft. These statements only reflect my opinions :smile:

1 Like

DrWatson,

Woah! You’re the Xamarin guy! #respect
Thanks a lot for the reply DrWatson!

Sounds to me like I will really have to have a Mac then. I especially want to follow thru Particle’s guide using Swift.

For now, I’ll keep your Xamarin and ReactNative suggestion. Also your SDK :wink: . I can sense that I’ll soon have to leave native development and go cross-platform. Thanks

As I’ve stated I’m a noob to developing apps whether mobile, web, android or iOS. Right now, I opted to try developing a web app first as it seems to have less hardware requirements.
I’m trying to learn node.js since Particle has a good document on its JavaScript SDK. In the process, I hope to learn more about these terminologies in this app development thing. I’ll especially try and understand this one:
“All you need to interact with Particle is simple Http requests through their REST API. If you look at any of the SDK’s, that’s all that is being done.”

Again, thanks!