nyu final project
TRANSCRIPT
Agenda
Congratulations to the class for completing “iPhone and iPad App Development”!Thank you to Professor Ehsan and NYU for teaching us!
1Description & Screenshots 2Unique
Characteristics 3Engineering Challenges
Description/Screenshots of Placeholder for iOS1
1) Transforming an iPhone/iPod Touch into a mobile device that can keep track of different place/properties visited.
A) Renting of ApartmentsB) Purchase of Real EstateC) Places Visited
2) Taking advantage of the unique capabilities of the iPhone/iPod Touch
A) UITableView (covered in class)B) UITextField / UITextViewC) UISegmentedControl D) 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?
-According to data published in April 2011 by the US Census Bureau and the National Association of Realtors (NAR) in 2010, sales of existing and new homes in the United States in 2010 had an aggregate transaction value of approximately $1.2 trillion.
-For the year 2010, using data from the U.S. Census Bureau, National Association of Realtors and REAL Trends, Zillow.com estimates that residential real estate brokerage commissions and fees totaled approximately $60 billion.
-For the year 2009, using data from the Federal Financial Institutions Examination Council and the Mortgage Bankers Association, Zillow also estimates that loans generated fees for mortgage lenders and brokers of approximately $26 billion.
Source: Zillow.com Company Filings
What is the Market Opportunity? (Can We Make $)
-In 2010, 89% of buyers used the Internet to search for homes according to the 2010
National Association of REALTORS Profile of Home Buyers and Sellers.
-In 2010, 38% of buyers found through the Internet the actual home they purchased,
according to the 2010 National Association of REALTORS Profile of Home Buyers and
Sellers.
-In March 2011, 19.4 million unique users visited Zillow.com’s website and mobile
applications, representing year-over-year growth of over 90%.
-Of these more than 8 million times was on mobile devices.
Source: Zillow.com Company Filings
Sizeable Fee Pool for RE Services + Migration Towards Internet/Mobile
2 Unique Characteristicswithin Placeholder for iOS
2. Summarizes Rent, Bedrooms, Bathrooms
Initial UITableView Menu For Tracking Properties
3. Lists Address of Place if Geocode is Saved 4. Adds Thumbnail Photo of Place if Saved
1. Shows name of the place
-UIDatePicker to change available start date (or date property
was viewed) -UIPickerView to
change starting rent (or other price info like
broker cost)
Detailed Tabs take advantage of iPhone/iPod Touch capabilities
-UISegmented Control
to change number of bedrooms, bathrooms,
doorman, pets
-MKMapKit, CLLocationManager,
CLGeocoderto get and save location of the
property
-UIImageViewto take and get a
picture of he property
-UITextFieldto change name of
property
2. Summarizes Rent, Bedrooms, Bathrooms
Changed UITableView Menu After Detailed Tabs
3. Lists Address of Place if Geocode is Saved 4. Adds Thumbnail Photo of Place if Saved
1. Allows you to name the place
No Connection (Wifi/3G/4G) Required
1. Besides CLLocationManager and CLGeocoder (optional), all inputs can pretty much be generated directly from the iPhone/iPod Touch.
-Application is fast as it does not need any data from the internet-Application can be used anywhere which is
helpful for properties in remote locations
2. Uses Core Data to persistently store structured data in a searchable store.
-Core Data is backed by a SQLite Database-Core Data provides some services that SQLite
can not provide easily
3. Facebook Integration is the likely next step-Ability to load images from Facebook-Ability to share properties with other users from
Facebook-Will slow down the application and will require
Wifi/3G/4G Connection
3 Engineering Challenges while building Placeholder for iOS
Choose in the beginning whether you will use Core Data.
Lesson Number 1
Since it is almost impossible to add later
Pros and Cons of the Various Methods of Persisting Data
1) 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 other properties
2) Object Archives-More complex/more code required compared to property lists-Easier to scale relative to property lists
3) 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 properties
4) Core Data (later choice – but needed to rebuild from scratch to get data model editor)-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
Build a display view controller to show key variables
Lesson Number 2
And then have that class write to/read from the database
My Summary View Controller Saved Me a Ton of Time
UITextField forMKMapKit and
CLLocationManagerHas the
1) Latitude2) Longitude
3) Latitude Delta4) Longitude Delta
-UIBarButton for Persisting Data
Indifferent to choice of 1) Property Lists,
2) Object Archives3) SQLite3, or4) Core Data
-UITextField for 1. UIPickerView
(rent amount or other metric)
2. UIDatePicker (start date or date visited) 3. UISegmentedControl
(number of bedrooms, number of bathrooms,
whether there is a doorman,
whether it allows pets)
Use class methods to optimize code
Lesson Number 3
Almost impossible to add later
Common Class Methods Employed In the Program
Class 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 of an object-Class methods have no access to the variables to a particular instance (unless they are passed in as parameters)
-Static helper classes(the ultimate in reusing code)
Class PlacesReturn current place
Changes current placeSearches the database
Creates an element in the databaseGets an element from the database
Saves the databaseDeletes an element in the database
NSDateFormatter settings codeShrinks ImageShrinks Image
MKMapRect in Meters
Details Matter
Lesson Number 4
The User Should Notice
Attention to Details takes time
-Disable UITabBar on initial load of menu
-Disable UIBarButton to add when in
delete mode
-Display CLGeocoder only if user got it and
saved it
-Slide screen up when keyboard
appears
What’s Your Message?Any Questions?Placeholder for iOS
Keep in Touch!Contact me
Daniel Yoon ([email protected])