Your task is to develop an app that utilizes GPS, accelerometer, and magnetometer data to determine the location and position of the device. The app should update an image at least 10 times per second for real-time updates.
Using the sensor data, you will send a request to a public API to retrieve information about celestial objects and display them on a black canvas within the app. When a user taps on an object, a short description of the object should be displayed.
To manage states within the app, you should use either the BLoC or Provider pattern. The objects to be displayed in the app include all planets of the solar system, the sun and moon, and three constellations of your choice.
The main objectives of this exercise are to work with hardware sensors, collect celestial objects using object-oriented programming (OOP) techniques, render objects in real-time, and work with APIs. The Provider pattern is available for reference in the documentation.
Remember to follow best practices for coding and app development, and be sure to document your code and any decisions made during the development process. Don't forget to consider user experience and design when creating the app, as a visually appealing and intuitive interface will be important for its success. Good luck!