Presentation on theme: "Members: Twinkle Agarwal Anjana Bhirde Ravi Madaiah David Hodgson Instructor: Dr. Perez Davila Mentor: Mr. Todd Guillory."— Presentation transcript:
Members: Twinkle Agarwal Anjana Bhirde Ravi Madaiah David Hodgson Instructor: Dr. Perez Davila Mentor: Mr. Todd Guillory
Why iPhone? Not desktop, not web app. Mobile development not usually offered as a course. New programming language Learn about Mac OS Learn about Model-View-Controller (MVC) pattern Resume building
Requirements Must call a web service Must perform basic database operations This had a huge influence on what we decided to do
What is a web service? A method of machine-to-machine communication A way of calling a procedure/function/method on another machine Interoperability: can use different languages, different operating systems
Web services Two types: Big web services and RESTful Big web services use HTTP, and SOAP. Easier to consume with proxy classes. Click here for sample web service.Click here for sample web service. RESTful services use existing HTTP operations of GET, PUT. Really just parsing a well-formed web page. No SOAP involved. http://www.geoplugin.net/extras/postalcode.gp? lat=29.577637&long=-95.104244&format=xml http://www.geoplugin.net/extras/postalcode.gp? lat=29.577637&long=-95.104244&format=xml
What does our application do? Divided into three features, to satisfy different requirements First feature: gets the weather. Second feature: invite friends to a restaurant. Third feature: find directions to a friend, using Google Maps. All features assume that there is internet connectivity.
Feature One: Weather The view that loads with the application launch is the weather for the users present location It also comes with a search option to get weather update for particular zip code It also has an image that depicts the weather description (sunny, etc.) Uses response of one web service (zip code) as input for another web service (weather ): like function composition in math
Notes on feature one: The user does not need to know where he is Does not accept invalid input It consumes data from an existing web service Demonstrates interoperability (between Apple OS and Microsoft OS, and objective c to C#). Same is true for feature 2 and feature 3
Feature Two : Fix Meeting On launch of this feature displays a list of restaurants for present location Also has a search option for getting restaurants for a particular zip code Shows list with 10-12 restaurants with respect to users present location (limitation of XML?). This might be because users give long reviews of restaurants, so the service chops off the results.
Feature Two : Fix Meeting Uses two web services I. Consume existing web service for getting list of restaurants (Yahoo! API) II. Create a web service for sending invitation message via email. Deployed on DCM web server.
Notes on feature two: User does not need to know where he is User does not have to do any typing Does not accept invalid input Retains value when there are view switches User choices are stored in a singleton object Interoperability
Feature Three : Get directions On launch of this feature, displays a list of friends and their respective distance from the user Also has update location option that updates users location in database Created web service that calls a stored procedure that return relative distance between user and his friend Performs database operations (INSERT, UPDATE, SELECT)
Feature Three : Get directions Sequence Diagram
Notes on feature three Gives map as well as textual route Interoperability Illustrates web service performing database operations Database is prepopulated with users locations. The application does assume that a group of friends all have and use the application.
What is unique about our application? Two people in a new city can find each other without knowing each others current location. Inviting a friend to a restaurant does not need any typing on the users part.
Ideas of how this can be extended in future semesters On restaurant feature, can get results based on current location and radius. Other types of events: 1. Movies 2. Concerts 3. Sporting events
More stuff to do Web service authentication and encryption HTTPS Token
More to do: privacy concerns Need to authorize friends to see where I am (could stalk someone otherwise) Web service needs to check that they are actually friends before sending results
More to do: Identity Using a phone number to represent identity, which can change Need to have a way for users to update their information (name, phone number, email address)
Things we could have done better Comment code as we go, instead of at end For commercial applications, if you dont, it wont get done More time consuming otherwise Dont use comments to comment out code, and especially dont commit it into source control Break down objects more View controllers were doing a lot of work. Could move parsing XML and calling web services into another class. Makes for more reusable code.
Conclusion The requirements that we had to meet for the course are met by this application Successfully implemented the three features that we intended to implement at the start of the course Get legitimate outputs