This paper is organized as follows: after having an overview of some existing projects, and highlighting the need for a combination of a platform that both simplifies HW and SW, the authors present their initiative in order to simplify the programming tasks for the IOIO electrical board. Then, they present the big picture of the designed system. After that, they present the steps of implementing the Android IOIO service in order to communicate with App Inventor App. After that, a demo is presented highlighting the different tasks that were made easier thanks to the developed service. Screenshots are presented, demonstrating the successful deployment of the developed App in a smartphone.CodeShoppy
IOIO is an electrical board that adds hardware I/O features to a PC or android application . The board can be controlled from a distance using Bluetooth, so it is possible to program and control it via a Smartphone mobile App. The IOIO board has a java library and is compatible with Android OS, therefore, it is possible to create Android apps that control the board’s different pins. Which leads to the next point: programming Android is complex, so it would be great if this task were easier. That is the role of the App Inventor platform, which is an online platform that allows the user to create Android Apps just by interconnecting graphical blocks. The concept is based on the Blockly interface . There is no Java code to write, no need to consider Android constraints, and the design and script interface are simple and intuitive. With this platform, even kids are capable of creating interesting projects. The existing features makes interfacing complex components easier, such as reading smartphone’s sensors, camera, microphone etc. The downside with App Inventor, however, is that it cannot control the IOIO board, the dedicated SW component does not exist in the platform. Therefore, the contribution of this paper is to bring support for this electrical board to App Inventor. This way, it will be possible to easily create Android Apps that control the IOIO board without technical knowledge. Making it possible for kids and beginners to initiate to the electronics and programming fields. The targeted audience is quite large especially that Android market share has reached 86.1% 
Particle.IO (old branded as spark core IO) is a hardware company that manufactures low-cost chips that are easier to control and provide a large set of features.  The particularity of these devices is that they are WIFI-enabled, making it possible for developed projects to access all the internet’s data and control these devices everywhere in the world, it is like a small computer, but can just run one application at the time (firmware). To program these devices, the company provides a web-interface programming tool, so it is possible to create programs from any internet-enable device. However, technical knowledge about programming is still required to be able to create functional prototypes. Particle.IO provides also an iOS SDK to allow iOS application to interact with particle.IO devices and control them
While each of the products mentioned in the previous section provides an interesting product that simplifies whether Electronics or programming, all of them tend to be very specific. They focus whether on HW only or SW only. Even if a HW product comes with its developing environment, it still requires advanced programming knowledge. The objective in this paper is to link the features of existing HW & SW products and combine them to get a better platform that offers the user the possibility to create hardware prototypes and program them quickly without needing technical knowledge especially in programming. An electrical board named IOIO is used as the hardware part, while the App Inventor platform is used as the software platform.n order to add IOIO support to App Inventor, the authors propose to develop an Android service that incorporates IOIO command. App Inventor Apps will call that service in order to add IOIO support and extend its features. In this section, the whole system will be presented as well as the different steps to establish the connection between IOIO and AppInventor. The App Inventor application will communicate with a second application called IOIOAI, which is the Android service to develop. To execute IOIO commands and retrieve data from IOIO pins. Since Android services run in the background and do not have a screen interface, a notification indicates the service running statehere is a feature in App Inventor that allows calling another App, which is ActivityStarter, in order to communicate with IOIOAI Service.