NYU final project


Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

NYU final project

  1. 1. By Daniel Yoon (zeradan@gmail.com)IntroducingPlaceholder for iOS
  2. 2. AgendaCongratulations to the class for completing “iPhone and iPad App Development”!Thank you to Professor Ehsan and NYU for teaching us!Description &ScreenshotsUniqueCharacteristicsEngineeringChallenges
  3. 3. Description/Screenshotsof Placeholder for iOS
  4. 4. 1) Transforming an iPhone/iPod Touch into a mobiledevice that can keep track of differentplace/properties visited.A) Renting of ApartmentsB) Purchase of Real EstateC) Places Visited2) Taking advantage of the unique capabilities of theiPhone/iPod TouchA) UITableView (covered in class)B) UITextField / UITextViewC) UISegmentedControlD) MKMapView and CLLocationManagerE) CLGeocoder and AddressBookF) UIDatePicker and UIPickerView (new)G) UIImageView (!)3) To try to optimize the codeA) Static Methods (reuse code)B) Core Data (!)(Word Count: 83)In Less than 200 Words, What is Placeholder for iOS?
  5. 5. -According to data published in April 2011 bythe US Census Bureau and the NationalAssociation of Realtors (NAR) in 2010, sales ofexisting and new homes in the United States in2010 had an aggregate transaction value ofapproximately $1.2 trillion.-For the year 2010, using data from the U.S.Census Bureau, National Association ofRealtors and REAL Trends, Zillow.com estimatesthat residential real estate brokeragecommissions and fees totaled approximately$60 billion.-For the year 2009, using data from the FederalFinancial Institutions Examination Council andthe Mortgage Bankers Association, Zillow alsoestimates that loans generated fees formortgage lenders and brokers ofapproximately $26 billion.Source: Zillow.com Company FilingsWhat is the Market Opportunity? (Can We Make $)-In 2010, 89% of buyers used theInternet to search for homesaccording to the 2010 NationalAssociation of REALTORS Profile ofHome Buyers and Sellers.-In 2010, 38% of buyers found throughthe Internet the actual home theypurchased, according to the 2010National Association of REALTORSProfile of Home Buyers and Sellers.-In March 2011, 19.4 million uniqueusers visited Zillow.com’s website andmobile applications, representingyear-over-year growth of over 90%.-Of these more than 8 million timeswas on mobile devices.Source: Zillow.com Company FilingsSizeable Fee Pool for RE Services + Migration Towards Internet/Mobile
  6. 6. Unique Characteristicswithin Placeholder for iOS
  7. 7. 2. Summarizes Rent, Bedrooms, BathroomsInitial UITableView Menu For Tracking Properties3. Lists Address of Place if Geocode is Saved 4. Adds Thumbnail Photo of Place if Saved1. Shows name of the place
  8. 8. -UIDatePicker tochange available startdate (or date propertywas viewed)-UIPickerView tochange starting rent(or other price info likebroker cost)Detailed Tabs take advantage of iPhone/iPod Touch capabilities-UISegmentedControlto change numberofbedrooms, bathrooms, doorman, pets-MKMapKit,CLLocationManager,CLGeocoderto get and savelocation of theproperty-UIImageViewto take and get apicture of heproperty-UITextFieldto change name ofproperty
  9. 9. 2. Summarizes Rent, Bedrooms, BathroomsChanged UITableView Menu After Detailed Tabs3. Lists Address of Place if Geocode is Saved 4. Adds Thumbnail Photo of Place if Saved1. Allows you to name the place
  10. 10. No Connection (Wifi/3G/4G) Required1. Besides CLLocationManager and CLGeocoder(optional), all inputs can pretty much be generateddirectly from the iPhone/iPod Touch.-Application is fast as it does not need any datafrom the internet-Application can be used anywhere which ishelpful for properties in remote locations2. Uses Core Data to persistently store structured datain a searchable store.-Core Data is backed by a SQLite Database-Core Data provides some services that SQLitecan not provide easily3. Facebook Integration is the likely next step-Ability to load images from Facebook-Ability to share properties with other users fromFacebook-Will slow down the application and will requireWifi/3G/4G Connection
  11. 11. Engineering Challengeswhile building Placeholderfor iOS
  12. 12. Choose in the beginning whether you will use Core Data.Lesson Number 1Since it is almost impossible to add later
  13. 13. Pros and Cons of the Various Methods of Persisting Data1) Property Lists-Simple and can be edited manually using Xcode or the Property List Editor.-Can not directly use custom objects and classes like UIImage.-Can not easily create properties that are derivations of/calculations from otherproperties2) Object Archives-More complex/more code required compared to property lists-Easier to scale relative to property lists3) SQLite3 (initial choice – but significant amount of SQL code required)-Effective at saving and loading large amounts of data-Can easily create properties that are derivations of/calculations from other properties4) Core Data (later choice – but needed to rebuild from scratch to get data modeleditor)-Creates entities and data managed objects in a data model editor-Does the work with loading and saving data to either SQLite, XML, or Binary Flat files
  14. 14. Build a display view controller to show key variablesLesson Number 2And then have that class write to/read from the database
  15. 15. My Summary View Controller Saved Me a Ton of TimeUITextField forMKMapKit andCLLocationManagerHas the1) Latitude2) Longitude3) Latitude Delta4) Longitude Delta-UIBarButtonfor Persisting DataIndifferent to choice of1) Property Lists,2) Object Archives3) SQLite3, or4) Core Data-UITextField for1. UIPickerView(rent amount or othermetric)2. UIDatePicker(start date or datevisited)3. UISegmentedControl(number ofbedrooms, number ofbathrooms, whetherthere is a doorman,whether it allows pets)
  16. 16. Use class methods to optimize codeLesson Number 3Almost impossible to add later
  17. 17. Common Class Methods Employed In the ProgramClass Places+ (NSInteger)currentRow;+ (void)changeRow:(NSInteger)row;+ (NSMutableArray*)searchDatabase;+ (Places*)createDatabase;+ (Places*)loadDatabase;+ (void)saveDatabase;+ (void)deleteDatabase:(Places*)eventToDelete;+ (NSDateFormatter*)formatterForDatabase;+ (UIImage*)shrinkImage:(UIImage *)image toSize:(CGSize)size;+ (UIImage*)thumbnailImage:(UIImage *)image fromSize:(CGSize)size;+ (CLLocationDistance)convertToMeters:(MKMapRect)mapRect;-Instance methods operate on an instance ofan object-Class methods have no access to thevariables to a particular instance (unlessthey are passed in as parameters)-Static helper classes(the ultimate in reusingcode)Class PlacesReturn current placeChanges current placeSearches the databaseCreates an element in the databaseGets an element from the databaseSaves the databaseDeletes an element in the databaseNSDateFormatter settings codeShrinks ImageShrinks ImageMKMapRect in Meters
  18. 18. Details MatterLesson Number 4The User Should Notice
  19. 19. Attention to Details takes time-Disable UITabBar oninitial load of menu-Disable UIBarButtonto add when indelete mode-Display CLGeocoderonly if user got itand saved it-Slide screen upwhen keyboardappears
  20. 20. What’s Your Message?Any Questions?Placeholder for iOSKeep in Touch!Contact meDaniel Yoon (zeradan@gmail.com)