280 likes | 357 Views
Members: Twinkle Agarwal Anjana Bhirde Ravi Madaiah David Hodgson. Team 9 : Jailbreakers Rendezvous. Instructor: Dr . Perez Davila Mentor: Mr. Todd Guillory. Why iPhone ?. Not desktop, not web app. Mobile development not usually offered as a course.
E N D
Members: Twinkle Agarwal AnjanaBhirde Ravi Madaiah David Hodgson Team 9 : Jailbreakers Rendezvous 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. • 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
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 user’s 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
Feature One: Weather Sequence Diagram
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 user’s 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 • Consume existing web service for getting list of restaurants (Yahoo! API) • Create a web service for sending invitation message via email. Deployed on DCM web server.
Feature Two : Fix Meeting Sequence Diagram
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 user’s 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 other’s current location. • Inviting a friend to a restaurant does not need any typing on the user’s 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: • Movies • Concerts • 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 don’t, it won’t get done • More time consuming otherwise • Don’t use comments to comment out code, and especially don’t 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