We (Team Practical Projects) have been developing Internet-connected projects using Particle Photon and Electron IoT devices for some years now. We have used a number of services to communicate with our Particle devices, such as IFTTT and Blynk. These services work fine and do not require any programming. However, they are necessarily limited; specifically, in respect to the very limited logic that you can place in the app. This has required us put all of the logic and computation required of the project into the Particle device firmware. This is frequently undesirable; specifically when we wish to develop hardware and firmware that can be used for more than one purpose.
MIT App Inventor 2 is a very easy-to-use programming system for developing realmobile apps. It is currently limited to developing Android apps, but the MIT team has promised iOS support in 2018. Furthermore, there are Android emulators available that will run apps created with MIT App Inventor 2 on Windows and Mac/OSX platforms.
This project is about teaching you how to develop apps in MIT App Inventor 2 that can interact with your Particle-based project. You can develop your own app that can read Particle Cloud-exposed variables (Particle.variable() ) from your Particle device and can call Cloud-exposed functions (Particle.function() ) on your Particle device. This project includes Particle firmware and a corresponding app, as well as documentation about how this code works.
This project also shows you how to include our Particle App Template into your MIT App Inventor 2 app. This Particle App Template is also written in MIT App Inventor 2 and provides your app with the capability for a user to login to their Particle account and select a Particle device for use with the app. Including the Particle App Template inside of your app means that you can publish your app as a pre-built (.apk) file; the user of your app does not have to manually place their Particle user access_token and deviceID inside of source code and compile it themselves.
Happy app developing!
Team Practical Projects