NYU final project

Preview:

Citation preview

By Daniel Yoon (zeradan@gmail.com)

Introducing

Placeholder for iOS

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 (zeradan@gmail.com)

Recommended