I am new to iPhone development. I want to make a simple iPhone application which computes the distance traveled by the user, how much calories are burnt, where the user located is and in which direction he/she is forwarding to.Can anybody provide me the details or approach to follow to develop this application.
I suggest that you go through the iPhone OS Reference Library. A good sample that relates to accelerometer is AccelerometerGraph.
Related
I am new to iphone development.I want to know that is there a framework or method to get the gps location of another iphone if the application is installed in both the iphone.
If there is any method can u please help me to sort out this
thanks in advance?
I agree with James, thank god it is not open in that anyone can see where anyone is via a single method, but I did create a solution that does this as a test app and it was not to difficult.
The frameworks that I used are Core Location to get the GPS coordinates, Foundation Framework to share the information with a web service using NSURLConnection, MapKit to map the coordinates, and the open source SBJson encoder/decoder.
I then created a PHP web service that enabled users of the app to register and choose who they would share their location with.
Then once per minute each instance of the app that is active would send its coordinates to the web service and then download any coordinates of other devices that it is allowed to see.
If I published this app, I would probably provide an option to chose the update frequency to conserve battery life.
Two free apps that also do this, that were created by Apple, are the Find Friends and Find iPhone apps.
If you are interested in creating something like this, check out the LocateMe sample code at developer.apple.com.
I am researching how to create an app for my work that allows clients to download the app (preferably via the app store) and using some sort of wifi triangulation/fingerprints be able to determine their location for essentially an interactive tour.
Now, my question specifically is what is the best route to take for the iPhone? None of the clients will be expected to have jail broken iPhones.
To my understanding this requires the use of the wifi data which is a private api therefore not meeting the app store requirements. The biggest question I have is how does American Museum of Natural History get away with using the same technology, but still available on the app store?
if you're unfamiliar with American Museum of Natural History interactive tour app, see here:
http://itunes.apple.com/us/app/amnh-explorer/id381227123?mt=8
Thank you for any clarification you can provide.
I'm one of the developers of the AMNH Explorer app you're referencing.
Explorer uses the Cisco "Mobility Services Engine" (MSE) behind the scenes to determine its location. This is part of their Cisco wifi installation. The network itself listens for devices in the museum and estimates their position via Wifi triangulation. We do a bit of work in the app to "ask" the MSE for our current location.
Doing this work on the network side was (and still is) the only available option for iOS since, as you've found, the wifi scanning functions are considered to be private APIs.
If you'd like to build your own system and mobile app for doing something similar, you might start with the MSE.
Alternatively, we've built the same tech from Explorer into a new platform called Meridian which provides location-based services on both iOS and Android. Definitely get in touch with us via the website if you're interested in building on that.
Update 6/1/2017
Thought I would update this old answer - AMNH is no longer using the Wifi-based system I describe above, as of a few years ago. They now use an installation of a few hundred battery-powered Bluetooth Beacons (also provided by Meridian). The device (iOS or Android) scans for nearby beacons and, based on their known locations and RSSI values, triangulates a position. You can read more about it in this article.
Navizon offers an indoor positioning solution that works for iOS as well as any other platform. You can check it out here:
http://www.navizon.com/product-navizon-indoor-triangulation-system
It works by triangulating the WiFi signals transmitted by the device. Since it doesn't require an app to run on the phone, it bypasses the iOS limitations and can locate any other WiFi device for that matter.
Google recently launched an API called Maps Geolocation API. You can use it for indoor tracking of devices, which essentially can be used to achieve something similar to what AMNH's app does.
I would do this using Augmented Reality. There is a system sort of in place for this, the idea being that you place physical markers that have virtual information associated with them. I believe the system I saw was a type of bar code. When a user holds up the phone with the app, the app uses the camera to read the code and then display information. This could easily be used to make a virtual tour type app distributable through the app store and not even require a WIFI or 3/4G connection. This assumes that you simply load your information and store it locally with your app. Then to update it you simply push an update through the app store. Another solution is to use a SOAP/REST service and provide the information in that way, and this does not use private API's, though it does require some form of internet connection. For this you can see a question I asked about this topic a little bit ago:
SOAP/XML Tutorials Question
In addition, you could load a map of your tour location, and based on what code is scanned you can locate the user on the map and give suggested routes based on interests etc.
I found this tutorial recently on augmented reality, I haven't gone through it, but if its anything like the rest of Ray's tutorials, it will be extremely helpful.
http://www.raywenderlich.com/3997/introduction-to-augmented-reality-on-the-iphone
I'll stick around to clarify any questions or other concerns you may have with your app.
To augment the original answer for devs who were using Cisco MSE for indoor location - now they have an iOS and Android SDK which enables you to do indoor location using the MSE. A simulator can be used as well to develop the app without implementing the infrastructure to start with : https://developer.cisco.com/site/cmx-mobility-services/downloads/
For indoor location you can use Bluetooth LE beacons since it's a very accessible technology nowadays, there are several methods:
Trilateration: it uses 3 beacons, but with the noise and attenuation of Bluetooth signals, it gets quite difficult to determine the exact position and also it's not easy to use more than 3 beacons to increase accuracy.
Levenberg Marquadt method: used to solve non-linear squares problems showed good results on indoor positioning.
Dead Reckoning method: using the motion co-processor of the device, giving an initial position you can calculate the moving path of the device. Not that easy to implement anyway.
I wrote a post on the topic, you can find more info here: http://bits.citrusbyte.com/indoor-positioning-with-beacons/
And you can use this iOS app for your own indoor positioning experiments: https://github.com/citrusbyte/beacons-positioning
I doubt the American Museum is actually using private APIS; you'll probably find the routers that have been setup serve different responses to each other, so the app can detect it's position in the museum.
If you are looking for a cheaper to way to do the same task, you could have signs with QR codes, and use an open source library to let users scan these barcodes as they move through the museum, and update the onscreen content accordingly. On an even more low tech level, you can just tag each area with unique numbers, and distinguish that way.
I am not familiar with gaming application, So Now I want to start a simple kids game application which displays the score with limited time.
What are step to proceed. Do I need to register with game center, I don't know about this. Please give me any suggestions that would help to start game application.
Thnak you,
Madan Mohan.
First of all, you will need to register an iPhone developer program, you won't be able to test your code on a device without it. Alternatively, you could purchase a copy of Xcode and develop on a simulator until you are ready for actual device. In any case, you will need the $99 program for publishing.
Now, you will need to learn Objective C. Grab yourself a book and understand how views work before designing your game.
If you want your app to run on a device (or to publish to the app store), you will need an iOS developer account for $99. However, if you want to just test you device in the built in simulator on your computer, you can do it for free.
Next, figure out what kind of game you want to make. Plan what is going to happen, what views are necessary, design an interface, write some code. Thats the basic process.
You DO NOT need to regester with Game Center. Game Center provides some easy to use feature for your app, such as simple to implement online leaderboard. If you want to use them (you will need the $99 account, not the free account), set up Game Center. I don't want to write a tutorial here since thats off topic.
Game creation is just like any other app creation. I hope this helps. You said above in a comment you are familar with Objective-C so start programming the game as you would any other app.
I am new to iPhone development. I want to make a simple iPhone application which when launched computes the distance travelled by the user,calories burnt,postion of the user,movement.Can anybody provide me the details or approach to follow to develop this application.
Unfortunetely, it's not that simple.
You will have to learn xCode/Objective C/C#.
I suggest you start by getting a book, i recommend:
Beginning iPhone Development - Mark
LaMarcheiPhone for Programmers: An
app driven approachThe iPhone
developers cookbook
You should be able to find these as eBooks as well (if that's what you like).
Unless you want a step by step tutorial for a fitness program... Then you'll be out of luck.
Yes, follow the steps outlined in the following links:
iPhone Programming Tutorial
iPhone Development Guide: Quick Start
All you need is inside the Core Location framework (and some math).
If you don't know how to use the Core Location framework, just look at the Apple developer page, there are tons of sample code (and they should also have some sample video from the last techtalk)
It would have been better if you could ask a direct question rather than sharing an app idea. Which major problem areas you are facing while developing the app,
For initial iPhone app development, I will suggest to go through following link:
https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/
For your application, you will need Location services, which should run in background too (while the application is in background) you can also consider content on Apple website:
https://support.apple.com/en-in/HT201357
More over you will be able to calculate the distance covered, position and movement, through location services and based on this information and custom information provided by user, you will be able to calculate the calories burnt by applying simple math (totally depends on the logic you want to apply).
I am currently developing a location based iPhone application. Is there any way to test the app other than taking the iPhone to different places?
Thanks
Yes, you can.
Try this: http://www.vimov.com/isimulate/
(...) With iSimulate installed on their iPhones however, their multi-touches on the iPhone (which gets interpolated for the larger iPad screen), the movement recorded by the accelerometer, the location and orientation captured by the GPS and Compass, all get wirelessly sent to the iPad Simulator, so they can develop virtually any application they want, before the iPad is itself released!
Even though an answer have long been accepted for this question I'll still chime in with some additional information on the topic.
The kind folks at FutureTap have mad the FTLocationSimulator available for free at GitHub. It allows you to prepare a test route using for instance Google Earth, and then have the simulator feed these coordinates to your app.
I've written a blog post about how to use FTLocationSimulator to easily switch between multiple routes during testing of the location features.