Find My Car (iPhone App): Difference between revisions
No edit summary (change visibility) |
|||
| Line 133: | Line 133: | ||
==References== |
==References== |
||
http://developer .apple.com/ |
http://developer .apple.com/ |
||
==Author== |
|||
<ul> |
|||
<li>Safak Yakti |
|||
</ul> |
|||
Latest revision as of 12:57, 13 May 2013
Introduction
Goal The goal of my project is to create a user-friendly, efficient and useful iPhone application to find the location of the parked car. Scope Find My Car application gives the chance of finding parked car by using last saved location data of the car. Anyone who has an iPhone can use Find My Car application easily. Method At the planning stage of this project I had three different alternative methods to use for finding the location of the parked car. I will introduce all three alternatives:
Alternatives
First Alternative: Tracking a Phone Option
First alternative method works by tracking an old phone left in the car intentionally. In this option, application requires phone verification. User may use any kind of phone that have to have open-source software to start this application. By verifying the phone, application starts to work by retrieving the location data by using the phone as an antenna.
- User-Side
- User verifies her/his phone by using verification steps of the application. After verification, user leaves her/his phone in the parked car and when s/he wants to find her/his car, s/he starts the application and application finds the location of the car and shows the route to that location.
- Pros:
- User has the chance of finding her/his car even if it is moved by tow or somebody else
- User can find her car even if s/he doesn’t predict to forget the location of the car.
- Cons:
- If the battery of the verified phone is empty, user is not able to find her car anymore.
- It may not be possible to trace and find the exact location of the phone because GPS tracing sometimes gives the location in a short distance range.
- It is hard to find a phone that has open source software. This alternative has complicated usage because of second phone need.
- Nowadays most people handle their daily works by using smart phones. Nobody needs to have a second phone especially an useless phone because of that a few people will want to use this application because of the second phone need.
Second Alternative: Reading QR CODE Option
In this option, I need to place QR codes into each parking space because this alternative uses QR codes to work. Each QR code store the longitude and latitude of each parking space. Application reads the QR code that is placed to the parking lot and saves the read location into the database. When finding location is needed, Find My Car retrieves the saved location and directs the user to that parking lot.
- User-Side
- User starts the application after parking her/his car and uses the application to read QR code that placed into the parking space. After reading process, application saves the read location into the database. User closes the application until s/he needs to find her/his car again. To find her/his car, user starts the application and clicks show route button then application finds the location of the car and shows the route to that location.
- Pros:
- This method is east to use. User saves the location by using application when s/he parks her/his car.
- Nothing else except an iPhone is needed to find the parked car. QR codes have the information of that location so user will not do or need anything else except reading QR code.
- Cons:
- It is hard to produce QR codes for all parking lots and place them into each parking space.
- This method forces me to find a provider to supply all expenses to produce and place QR codes. It is obviously expensive.
- QR code barcodes may be damaged, erased or lost easily. It is hard to protect and maintain them.
Third Alternative: Pinning Option
This option uses the pinned the location. Application saves the longitude latitude of the parked location to its database then when the location is needed it retrieves the data directs the user to the pinned place.
- User-Side
- User starts the application after parking her/his car and uses the application to pin the location. After pinning process, application saves the location into the database. User closes the application until s/he needs to find her/his car again. To find her/his car, user starts the application and clicks show route button then application takes the location of the car from database and shows the route to that location.
- Pros:
- This method is east to use. User saves the location by using application when s/he parks her/his car.
- Cons:
- There are no cons for this method.
After discussion of all these three alternative methods, I decided to use the third option because of its easiness cheapness and it doesn’t require any additive helper.
Specifications
TECHNICAL BACKGROUND
Programming Language: Objective C
Developer Tool: X-Code Version 4.6.2
Used Frameworks
- Mapkit.framework, CoreLocation.framework, Foundation.framework, CoreGraphics.framework, UIKit.framework
- Category: Navigation
- Application Size: 320KB
- Full Application Size: 428KB(with documents and database savings)
- Language: English
- Compatible with: iPhone 3G, 4, 5, iPod 3 and later, iPad
- Requirements: This application requires an active Internet connection to retrieve data and also need to turn on “Location Services” option in the settings
of iPhone. 
Description
Almost everyday people need to go shopping, and they park their car in the parking lot. But sometimes when people park their car in a parking lot, they know it, the parking lot is so crowded and complex, and they will not able to find their car easily. But from now on iPhone users are able to find their cars easily with my application. Find My Car is an iPhone Application that finds the parked car and directs the user to the car.
- About Mapkit
- The Map Kit framework provides an interface for embedding maps directly into your own windows and views. This framework also provides support for annotating the map, adding overlays, and performing reverse-geocoding lookups. Framework is based on the Google Earth and Google Maps data and APIs and provides iPhone developer with a simple mechanism for integrating detailed and MapKit framework from the point of view of the application developer is the MKMapView class. This class is a subclass of UIView and provides a canvas onto which map and satellite information may be presented to the user. Information may be to determine place mark information for a given map coordinate.
*The MapKit **Interactive mapping capabilities into any application. The core element of the presented in map, satellite or hybrid (whereby the map is superimposed onto the satellite image) form. The user via a process of pinching stretching may change the displayed geographical region manually and panning gestures, or programmatically from within the application code via methods calls and property manipulation on the MkMapView instance. The current location of the device may also be displayed and tracked on the map view. The area of the map that is currently displayed to the user is referred to as the region. This is defined in terms of a center location (declared by longitude and latitude) and span of the surrounding area to be displayed. Adjusting the span has the effect of zooming in and out of the map relative to the specified center location. In iOS 5.1 and earlier, the Map Kit framework uses the Google Mobile Maps (GMM) service to provide map data. Use of specific classes of this framework (and their associated interfaces) is subject to the Google Mobile Maps terms of service.
- About Core Location Framework:
- The Core Location framework lets you determine the current location or heading associated with a device. The framework uses the available hardware to determine the user’s position and heading. You use the classes and protocols in this framework to configure and schedule the delivery of location and heading events. You can also use it to define geographic regions and monitor when the user crosses the boundaries of those regions.

- About UIKit Framework:
- The UIKit framework provides the classes needed to construct and manage an application’s user interface for iOS. It provides an application object, event handling, drawing model, windows, views, and controls specifically designed for a touch screen interface.
- About Foundation Framework
- The Foundation framework defines a base layer of Objective-C classes. In addition to providing a set of useful primitive object classes, it introduces several paradigms that define functionality not covered by the Objective-C language. The Foundation framework is designed with these goals in mind:
- Provide a small set of basic utility classes.
- Make software development easier by introducing consistent conventions for things such as deallocation.
- Support Unicode strings, object persistence, and object distribution.
- Provide a level of OS independence, to enhance portability.
- The Foundation framework includes the root object class, classes representing basic data types such as strings and byte arrays, collection classes for storing other objects, classes representing system information such as dates, and classes representing communication ports.
- The Foundation framework defines a base layer of Objective-C classes. In addition to providing a set of useful primitive object classes, it introduces several paradigms that define functionality not covered by the Objective-C language. The Foundation framework is designed with these goals in mind:
User Interface
- Main Page:
- On main page there are buttons as “Find My Location”, “Continue” and “Locations” and there is a Map Kit view. Main page shows the Map Kit and the location of the user but it doesn’t show the longitude and latitude at first. User needs to push “Find My Location” button. Here if user pushes “Continue” button, it doesn’t work.
 When user pushes “Find My Location” button, main page shows the latitude and longitude on two labels and “Find My Location” button turns into “Refresh Location” button. If user wants to sure about her/his location, s/he can push “Refresh Location” button. Application will retrieve the data again and show last current location. Application finds the location by using the “startUpdatingLocation” method that provided by “CLLocationManager” Class. This service is the most appropriate for applications that need more fine-grained control over the delivery of location events.
After finding current location, user may push “Continue” or “Locations” button. S/he may check if s/he saved the same location or not by pushing “Locations” button. S/he also can see last saved location on this page by pushing “Locations” button. To start saving process user pushes “Continue” button then application directs her/him to the second page.
- Second Page: Second page has three labels that show “Current Location”, “Latitude” and Longitude” and also there is “Save” button and a table that shows database.
 If user wants to complete saving process and save the current location to the database s/he pushes “Save” button on the right corner. When “Save” button pushed, application adds the current longitude and latitude to the database. When the data is saved, an alert notifies user with “Location successfully added to the database” notification. After pushing “OK” on the alert, user sees the new location that is added to the database table.  Saved latitude and longitude appears on the table with a LocationCell. User have to push this newly added cell to start routation.  After pushing the cell application directs the user to the third page. On this page there are six labels that show “Saved Location”, “Latitude”, “Longitude”, “Current Location”, “Latitude”, “Longitude” and two buttons that show “Find Current Location” and “Delete Record”. Application aims to show user the last saved latitude and longitude of the location and make user push to “Find Current Location”. “Find Current Location” button runs the “startUpdatingLocation” method that provided by “CLLocationManager” Class to find the updated new current location. After finding current location, user has to push “Show Route” button to see the directions between two saved locations. “Show Route” button starts the Maps application and sends the longitudes and latitudes of the saved two locations.  Maps application directs the user to the first saved location.  After using the saved location, user can delete it by pushing “Delete Location” button. “Delete Location” button calls deleteRecord action and deletes the data. When the data is deleted, an alert notifies the user with “Record deleted successfully” warning.
References
http://developer .apple.com/
Author
- Safak Yakti