MOBILE REAL ESTATE AGENT FOR IPHONE ______________ A Thesis Presented to the Faculty of San Diego State University ______________ In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science ______________ by Rakhi Harkawat Fall 2011
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Rakhi Harkawat Master of Science in Computer Science
San Diego State University, 2011
With the rise in standards of living and prosperity, and continuous growth in technology, throughout the world, people’s desires are also rising. They want more for themselves. They want a good life style, a good home. Now, when one plans to buy a property, one of the biggest challenges he/she faces is locating a property. Before the Internet, people used to first contact real estate agents, who had a limited list of properties in their database or you could drive around a neighborhood.
For people wanting to locate properties themselves, the Internet offers a good alternative. A lot of websites now cater to this need. People can go to these websites and get results. But this is the era of devices like smartphones, etc. The last couple of years have seen a huge increase in the sale of smartphone devices. iPhone devices constitute the third largest population of all the smartphones and in the USA they are ranked second in smartphone sales. Nobody wants to just look for a property while sitting at home. People also want to go out and look for a property and if they do not find it good, then search for another one, after lunch maybe. A smartphone is useful during lunch.
With the advancement of the latest wireless technology and devices, mobile professionals and companies came up with smartphones to provide the solution to such problems. They are capable of giving the user the ability to connect to the Internet. But, thinking from a user’s point of view, it is not a good experience going to a mobile browser and hunt a property over there. Mobile browsers have limitations of their own. It’s not the same experience when you browse a website over a smartphone. On a smartphone, the small screen hampers the browser use. An iPhone application thus makes it easier to directly feed in your requirements and get the list of properties, respective contact personnel, etc. This will be of a kind of integrated solution for all user concerns when it comes to finding a suitable property, while mobile.
v
TABLE OF CONTENTS
PAGE
ABSTRACT ............................................................................................................................. iv
LIST OF FIGURES ................................................................................................................ vii
LIST OF ABBREVIATIONS ................................................................................................ viii
ACKNOWLEDGEMENTS ..................................................................................................... ix
CHAPTER
1 INTRODUCTION ........................................................................................................ 1 1.1 Real Estate Agent Application: A Blueprint ..................................................... 1 1.2 Need for Real Estate Agent on iPhone Platforms ............................................. 2
2 TECHNOLOGY ........................................................................................................... 4 2.1 iPhone Application Development ..................................................................... 4 2.2 Key Objects in an iOS Application ................................................................... 5 2.3 iPhone Application Life Cycle .......................................................................... 6 2.4 Launching the Application ................................................................................ 7 2.5 Exiting the Application ..................................................................................... 8 2.6. iPhone Application SDK .................................................................................. 8
3 IMPLEMENTATION ................................................................................................. 10 3.1 Setting Up the Development Environment ..................................................... 10 3.2 Implementation of the Tab Bar ....................................................................... 10 3.3 Implementation of the MLS Search ................................................................ 11 3.4 Implementation of the Quick Search .............................................................. 17 3.5 Implementation of Detailed Search ................................................................ 22 3.6 Implementation of Agent List ......................................................................... 25 3.7 Implementation of More Menu ....................................................................... 29
3.7.1 Show Map .............................................................................................. 29 3.7.2 Directions ............................................................................................... 32 3.7.3 To Show ................................................................................................. 32 3.7.4 Agent Info .............................................................................................. 32
vi
3.7.5 Public Remarks ...................................................................................... 33 3.7.6 Realtor Remarks ..................................................................................... 33
3.8 Implementation of Mortgage Calculator ......................................................... 33 4 FINAL RESULTS ...................................................................................................... 37
Figure 1.1. Share of worldwide 2011 Q2 smartphone sales by OS, according to Gartner. ......................................................................................................................... 2
Figure 2.1. iOS technology layers. ............................................................................................ 4 Figure 2.2. Key objects in an iOS application .......................................................................... 6 Figure 2.3. iPhone application life cycle. ................................................................................. 7 Figure 2.4. Launching into the active state ............................................................................... 8 Figure 2.5. Moving application from foreground to background ............................................. 9 Figure 3.1. X-code IDE. .......................................................................................................... 11 Figure 3.2. TabBarController. ................................................................................................. 12 Figure 3.3. MLS search. .......................................................................................................... 14 Figure 3.4. Quick search. ........................................................................................................ 18 Figure 3.5. Detail search. ........................................................................................................ 23 Figure 3.6. Agent list. ............................................................................................................. 26 Figure 3.7. More menu. ........................................................................................................... 30 Figure 4.1. Demo of MLS search view and property details view. ........................................ 37 Figure 4.2. Demo of more menu and show map view. ........................................................... 38 Figure 4.3. Demo of directions and to show view. ................................................................. 39 Figure 4.4. Demo of agent info and public remarks view. ..................................................... 40 Figure 4.5. Demo of realtor remarks view. ............................................................................. 41 Figure 4.6. Demo of quick search view and property list view. ............................................. 42 Figure 4.7. Demo of property detail view and no property alert. ........................................... 43 Figure 4.8. Demo of detail search view and no property alert. ............................................... 44 Figure 4.9. Demo of agent search view and agent list view. .................................................. 45 Figure 4.10. Demo of agent details view and no agent alert. .................................................. 46 Figure 4.11. Demo of mortgage calculator view and its result breakdown view. .................. 47 Figure 4.12. Demo of missing fields alert. .............................................................................. 48
viii
LIST OF ABBREVIATIONS
IDE Integrated Development Environment
MLS Multiple Listing Service
NAR National Association of Realtors
Nib NeXT Interface Builder
OpenGL-ES Open Graphics Library – Embedded Systems
OS Operating System
P&I Principal and Interest
POSIX Potable Operating System Interface for UNIX
SDK Software Development Kit
SDLC Software Development Life Cycle
UI User Interface
UNIX Uniplexed Information and Computing System
URL Uniform Resource Locator
ix
ACKNOWLEDGEMENTS
I would like to accredit the success of this thesis to the support and guidance, which
has been provided to me by thesis advisors, Dr. Carl Eckberg, Dr. Joseph Lewis and
Dr. Ming Tsou. With the continuous encouragement provided by Dr. Carl Eckberg, my
confidence was always up. I discussed the progress of the thesis. I worked with him over
various strategies required for working over this Real Estate Agent Application for iPhone.
I am grateful to Dr. Joseph Lewis who provided invaluable suggestions and support in
this thesis work. I discussed some of the UI design for this application with him. Dr. Carl
Eckberg and Dr. Joseph Lewis, also provided a lot of support in my academic program as
well.
I am also thankful to Dr. Ming Tsou, was also a great resource for this thesis work.
He provided me with some very important documents and material related to iPhone
application development. All three of my thesis advisors have been a great source of
inspiration and support during this thesis work. Thus, I would like to pay my regards and
thank all three of them.
1
CHAPTER 1
INTRODUCTION
1.1 REAL ESTATE AGENT APPLICATION: A BLUEPRINT Mobile applications aim is to help users solve at least one real life problem, or
entertain them. Now, an application can either be a game, a chat client, weather forecast,
news, live streaming, video or audio application, the sole idea behind them is that they serve
a purpose. Similarly, the “Real Estate Agent Application for iPhone” aims to satisfy the
needs of people who are searching for a property. Be it a rental property or a property for
sale, the users just need to run the application, enter the various search parameters and then
let this application to look for properties for them.
Using this application, a user will be able to search for a property, using one of the
three search options available, i.e. MLS Number Search, Quick Search and Detailed Search.
Users can also access and search in the Agent Directory and see the location of the property
on a map. Apart from this, using the Mortgage Calculator, the user can calculate the
mortgage for any property. A Multiple Listing Services (MLS) Number is a unique number
assigned to each property, by local real estate professionals, who belong to the National
Association of Realtors (NAR) [1].
This application development underwent various planning and implementation
phases. It started from designing the blueprint of the UI and ended up with some final testing
of the application. The major outline of this whole process is presented here:
1. Gathering some requirements, studying some existing applications and websites [2]. 2. Making blueprint of the User Interface for the application.
3. Implementing the various types of searches using XML Parsing. 4. Implementing the show maps feature to show the location of the property.
5. Bringing the Mortgage Calculator into action. 6. Implementing the Direct Calling feature on the Real Estate Agent View.
Apart from all these things, a lot of iPhone issues have been dealt with. Everything
related to all this has been described in the respective chapters.
2
1.2 NEED FOR REAL ESTATE AGENT ON IPHONE PLATFORMS
There has been tremendous growth in the smartphone sector. Before mid 2007, when
iPhone was released, the Symbian operating system was the pioneer in the smartphone
market. After this, a huge growth is noticed in development of mobile applications. Apple’s
iPhone now constitutes 18% of the total smartphone sales in the world and ranks third. It
ranks second to Android. In Figure 1.1 [3] you can see a pictorial representation of the
smartphone sales report from Gartner.
Figure 1.1. Share of worldwide 2011 Q2 smartphone sales by OS, according to Gartner. Source: Wikipedia. Mobile Operating System, 2011. http://en.wikipedia.org/wiki/Mobile_operating_system, accessed Oct. 2011.
Given that a large number of people are using iPhones, it makes sense to have an
application available for them to search for properties, while they are out of their homes on
the search for a good property matching their needs, dreams and pockets. I came in contact
with a group of people from a Kentucky based company AGILITY CORP, via an
intermediate person. They also wanted to work on a similar application and have solutions
3
already available for Blackberry OS, Palm OS, etc. After, this I started working on the
iPhone solution. The most challenging work was interacting with the customers because of
difference in time zone. Mostly, the interactions were made using emails and few times
Skype calls were also preferred. After considerable testing and evaluation, the client is
expected to use this as version soon.
Now, the first task was gathering requirements, analyzing and studying some of the
existing applications and websites. The two most noteworthy, of those which I studied, were
Trulia (mobile app) [4] and www.zillow.com [5], a website for real estate search and
information. Both of these were very good, but they lacked a common feature. Neither had
the ability to search a property based on various parameters like bed, bath, size, list price,
type of property, etc. These applications searched a property based on its location. So, in this
iPhone application, three different kinds of searches were finalized to be included. These
three types of searches are:
1. MLS Search – Searches a property using its MLS Number.
2. Quick Search – Searches a property based on its address or location. 3. Detailed Search – Searches a property based on various parameters like number of
bedrooms, bathrooms, size, etc. 4. Apart from this the other features that have been planned for this application include:
5. Agent Search – Searches a Real Estate Agent based on his/her first name, last name or listing office.
6. Mortgage Calculator – Calculates the loan amount required and gives the user a rough estimation of the monthly P&I.
7. Show Map – Shows the location of the property on Google Maps. 8. Public and Realtor Remarks on the property.
9. To Show – Gives information about the steps to take to see the property, schedule an appointment, etc.
4
CHAPTER 2
TECHNOLOGY
2.1 IPHONE APPLICATION DEVELOPMENT Apple’s Mobile Operating System is known as iOS or iPhone OS. It supports multiple
smart devices from Apple, i.e. iPhone, iPod Touch, iTouch. iOS is derived from Mac OS X.
It is Unix-like OS by nature. This is so because the kernel in iOS is the same as Mach kernel
of the Mac OS X.
The four technology layers or abstraction layers, which reside on top of the iOS
The two base layers i.e. the Core OS and the Core Services contain the C-based
interfaces for iOS, which involve technologies like Core Foundation, CFNetwork, SQLite,
etc. They also cover how to access the POSIX threads and UNIX sockets. Some examples of
interfaces can be interfaces for accessing files, low-level data types, etc.
5
A blend of C and Objective-C [7] can be found in the upper layers. The media layer
includes OpenGL Embedded Systems (ES), Quartz and Core Audio. These all are C-based
technologies. The media Layer also has the ability to support 2D and 3D drawing, audios and
videos.
Objective-C is used by technologies in the Cocoa Touch Layer. The basic
infrastructure which is required by an application is provided by the frameworks at these
layers. An object oriented approach or support is provided for collections, network functions,
file management, etc. Another framework, i.e. UIKit helps in providing the visual
infrastructure to any application. It helps in creating windows, views, controls, controllers to
manage objects, etc. This layer forms the starting point of any application.
Its normally a good approach to start from higher level platforms while developing an
application. This is so because, in this way, a lot of the important and necessary infrastructure
will be ready in the initial phases of the application development.
2.2 KEY OBJECTS IN AN IOS APPLICATION The following are the key objects and their roles in an iOS application (and illustrated
in Figure 2.2 [8]):
1. UIApplication object: It manages the event handling in the application. It can be used to configure the appearance of the application.
2. Application delegate object: It resides in the nib file (extension is .xib) of the application. It initializes the application. It notifies the different objects when any other application level event is supposed to happen. For example, if an application needs to be interrupted, etc.
3. Data model objects: The content of the application is stored in these objects. For example, depending on the type of application, it might store a database, an image object or something else.
4. View controller objects: The presentation of the content of the application is managed by these objects. They create views, manage interactions between views and data model objects of the application.
5. UIWindow Object: This object helps in presenting different views on the device screen. The content in an application is changed by changing the views.
6. View, control and layer objects: A View helps in drawing the content in a rectangular area and then it responds to the event within that specified area.
A Control is a specialized view which implements the various UI objects like buttons,
text fields and toggle switches.
6
Figure 2.2. Key objects in an iOS application. Source: Apple. iOS App Programming Guide, 2011. http://developer.apple.com/library/ios/ documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogrammingguide.pdf, accessed Oct. 2011.
Layer objects represent visual content. These objects are used by views to render their
content. Custom layer objects can be added to the interface for implementation of complex
animations and to add visual effects.
2.3 IPHONE APPLICATION LIFE CYCLE In the life cycle of an iPhone application, when the user taps the application icon the
main method is called, which further calls the UIApplicationMain() method (see Figure 2.3
[8]). From there, a series of events are called and executed, until the application is asked to
quit. Once the application quits, the application moves to the background. Now, this was
from perspective of UIKit. Lets take our code into consideration as well. So, at the point
3.4 IMPLEMENTATION OF THE QUICK SEARCH Now, when the user wants to search for properties using the different parameters, he
will use the Quick Search feature of this application (see Figure 3.4). These parameters are as
follows:
1. Street Number: The street number of the property can be used here to search.
2. Street Name: Properties can also be shortlisted based on the street name: 3. Status: A property can either be active, pending, expired or sold. So, depending on the
user’s selection, properties of that particular status can be searched. 4. Area: Area basically refers to the location of the property.
18
Figure 3.4. Quick search.
The last two options, i.e. Status and Area are available to the user via
SelectViewController.
When the users selects the option of doing a Quick Search, then the viewDidLoad
method is called from QuickSearchTableViewController.
This method eventually calls XMLParserPropertyDetails for the specific property,
which is selected by the user, which actually parses the property details and makes it ready
for the display. The control and this data, which is actually the labelList and valueList, is thus
22
passed on the PropertyDetailViewController. This ultimately displays the details of the
property on the device UI. The description and implementation of
PropertyDetailViewController has already been described during the implementation of the
MLS Search.
3.5 IMPLEMENTATION OF DETAILED SEARCH The third type of search option which the user has is the Detailed Search (see
Figure 3.5). In this kind of search, the user can narrow down the list of properties using a
variety of search parameters. This search can also be explained as an extension of Quick
Search. Here is a list of various parameters on which this search can be done.
1. Type: It refers to the types of property like Land, Multifamily and Simple Family Residential.
2. Status: The status of the property can be something like Active, Expired, Pending or Sold.
3. Listing Date: Properties can also be searched based on the listing date. 4. Min Price: A search can be narrowed down using the minimum list price of the
property. The options here range from no min to 2,50,000. 5. Maximum List Price: A maximum cap can be set by the user on the list price of the
property, so search only those properties which suit his income and savings. 6. Bedrooms: A property can also be searched by the number of bedrooms.
7. Full Bath: Number of full baths can also be one of the search criteria’s. 8. Min Sq. Feet: The size of the property is one of the very important search criteria’s
for the user. 9. Area
10. Street Name: A property can be searched on any specific street as well. 11. City: This will help in finding properties in a city.
12. County: This will help in finding the properties in a specific county. 13. Zip Code: If the user wants to search properties in his nearby areas, he can use his zip
code to search the properties. This will give the user a very specialized set of data or list of properties which closely
matches the users need. When the user selects the Detailed search option from the menu
items, the viewDidLoad method is called. In this method, we read the statusList, areaList.
[2] Paul J. Kershaw, Robin R. Kooymans, and Peter A. Rossini. “Developing Specialized Software for Real Estate Applications: A Case Study of the Development of Upmarket.” Proceedings of the Pacific Rim Real Estate Society Conference, Gold Coast, Queensland, 1996. PRRES.
[3] Wikipedia. Mobile Operating System, 2011. http://en.wikipedia.org/wiki/Mobile_operating_system, accessed Oct. 2011.
[10] Apple. About the iOS App Development Workflow, 2011. http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/000-Introduction/introduction.html, accessed Oct. 2011.
[11] David Quail. iPhone vs Android vs webOS from a Developers Point of View, 2010. http://davidquail.com/2010/09/15/iphone-vs-android-vs-webos-from-a-developers-point-of-view/, accessed Oct. 2011.
[12] Adam Pash. iPhone vs. Android Showdown: Which Phone Is Best for Power Users?, 2010. http://lifehacker.com/5559357/iphone-vs-android-showdown-which-phone-is-best-for-power-users, accessed Oct. 2011.
[13] A Comparative Study of the Android and iPhone Operating Systems. Travis Wooley, 2010.