nyu final project

20
By Daniel Yoon ([email protected]) Introducing Placeholder for iOS

Upload: daniel-yoon

Post on 30-Jun-2015

83 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: NYU final project

By Daniel Yoon ([email protected])

Introducing

Placeholder for iOS

Page 2: NYU final project

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

Page 3: NYU final project

Description/Screenshots of Placeholder for iOS1

Page 4: NYU final project

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?

Page 5: NYU final project

-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

Page 6: NYU final project

2 Unique Characteristicswithin Placeholder for iOS

Page 7: NYU final project

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

Page 8: NYU final project

-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

Page 9: NYU final project

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

Page 10: NYU final project

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

Page 11: NYU final project

3 Engineering Challenges while building Placeholder for iOS

Page 12: NYU final project

Choose in the beginning whether you will use Core Data.

Lesson Number 1

Since it is almost impossible to add later

Page 13: NYU final project

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

Page 14: NYU final project

Build a display view controller to show key variables

Lesson Number 2

And then have that class write to/read from the database

Page 15: NYU final project

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)

Page 16: NYU final project

Use class methods to optimize code

Lesson Number 3

Almost impossible to add later

Page 17: NYU final project

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

Page 18: NYU final project

Details Matter

Lesson Number 4

The User Should Notice

Page 19: NYU final project

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

Page 20: NYU final project

What’s Your Message?Any Questions?Placeholder for iOS

Keep in Touch!Contact me

Daniel Yoon ([email protected])