Free Essay

Iphone Real-Estate Property

In:

Submitted By freestylershawn
Words 6736
Pages 27
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

iii

Copyright © 2011 by Rakhi Harkawat
All Rights Reserved

iv

ABSTRACT OF THE THESIS
Mobile Real Estate Agent for iPhone by 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 4.1 MLS Search Demo .......................................................................................... 37 4.2 More Menu Demo ........................................................................................... 38 4.3 Quick Search Demo ........................................................................................ 39 4.4 Detail Search Demo ........................................................................................ 40 4.5 Agent List Demo ............................................................................................. 41 4.6 Mortgage Calculator Demo............................................................................. 42

5

COMPARATIVE STUDY WITH ANDROID .......................................................... 49 5.1 Development Environments............................................................................ 49 5.2 Programming Ease .......................................................................................... 49 5.3 Handling Application Stores ........................................................................... 49 5.4 Documentation ................................................................................................ 50 5.5 Tools ............................................................................................................... 50 5.6 User Experience .............................................................................................. 50 5.7 Expandable Memory ....................................................................................... 50 5.8 Process Juggling.............................................................................................. 50 5.9 Openness ......................................................................................................... 51

6

CURRENT LIMITATIONS ....................................................................................... 52

7

FUTURE IMPROVEMENTS .................................................................................... 54

8

SUMMARY ................................................................................................................ 56

9

CONCLUSION AND OBSTACLES ......................................................................... 58

BIBLIOGRAPHY ................................................................................................................... 59

vii

LIST OF FIGURES
PAGE
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_oper ating_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 kernel are shown in Figure 2.1 [6].

Figure 2.1. iOS technology layers.
Source: Apple. iOS Overview, 2010. http://developer.apple.com/ library/ios/#referencelibrary/GettingStarted/
URL_iPhone_OS_Overview/_index.html%23
//apple_ref/doc/uid/TP40007592, accessed
Oct. 2011.
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/iphoneappprogra mmingguide.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

7

Figure 2.3. iPhone application life cycle. Source: Apple. iOS App Programming
Guide, 2011. http://developer.apple.com/library/ios/ documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogram mingguide.pdf, accessed Oct. 2011. where the UIApplicationMenu() is called, from our code method, it will be checked whether the application did finish launching with options. Also, during the event loop, events are handled by our code. Now, when the application is asked to exit, from our code applicationWillResignActive: method will be assigned to the application and when the application moves to background, the method which is called is applicationDidEnterBackground:. 2.4 LAUNCHING THE APPLICATION
When the application is launched, the main nib is loaded and creates the application delegate. On the next step the application is initialized and didFinishLaunchingWithOptions: method is called. Then after this the application enters the foreground and calls the method applicationDidBecomeActive:. See Figure 2.4 [8].

8

Figure 2.4. Launching into the active state. Source: Apple. iOS App Programming
Guide, 2011. http://developer.apple.com/library/ios/ documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogra mmingguide.pdf, accessed Oct. 2011.

2.5 EXITING THE APPLICATION
When the user presses the home button, while the application is running, the applicationWillResignActive: method is called and the application moves to the background and calls the applicationDidEnterBackground: method. See Figure 2.5 [8].

2.6. IPHONE APPLICATION SDK
The iPhone Software Development Kit (SDK) [9] allows developers to make applications for the iPhone and the iPod Touch. Xcode is the development environment for the iOS SDK. The applications for iPhone and iPod Touch are written in Objective-C. An emulator with this makes this package complete. This can be used to test the iPhone applications. In the next chapter, you can find the details on the implementation of the various functionalities of the application. Chapter 4 shows the final result or the final output of the application, various screen shots in there will help you understand the flow and working of the application. Chapter 5 provides a comparative study with Android OS. Chapter 6 deals

9

Figure 2.5. Moving application from foreground to background. Source: Apple. iOS App Programming Guide, 2011. http://developer.apple.com/library/ios/ documentation/iphone/conceptual/iphoneosprogrammingguide/iphoneappprogra mmingguide.pdf, accessed Oct. 2011. with the limitations of the application and Chapter 7 talks about removing these limitations in the Future Work. Chapter 9 gives the summary of the whole application. Conclusion on this application is provided in Chapter 9.

10

CHAPTER 3
IMPLEMENTATION
3.1 SETTING UP THE DEVELOPMENT ENVIRONMENT
The first thing that was required to develop an iPhone application was to get the development environment setup [10]. The development was required to be done on Mac OS.
Now, first thing needed to do the development was Xcode IDE (see Figure 3.1). I got the latest version of the Xcode IDE from Apple website. It comes embedded with an iPhone simulator to run and test our custom applications. But, to actually deploy your application on an iPhone, one needs to buy an iPhone developer license for $99 an year. Once we have all this, we are all set up for writing code for an iPhone application, using Objective C. Now, C and C++ can also be used for developing iPhone applications but Objective C is the most preferred option and I stuck to it. The two important frameworks I used were
UIKit.framework and MapKit.framework, the later one was used for the Show maps feature of this application.

3.2 IMPLEMENTATION OF THE TAB BAR
I started with the implementation of the Tab bar, which is the base controller for the whole application. I configured this tab bar to have five different tab bar menu items viz. a viz. MLS Seach, Quick Search, Detail Search, Agent List and Mortgage Calculator. Selection of each of these options actually calls the respective navigation controller and the table view controller which is associated with it. For example, when the user selects the MLS Search tab bar item, it calls the MLSNumberNavController along with
MLSNumSearchTableViewContoller. This actually then renders the MLS Search view on the device UI. As soon as the application is launched, the didFinishLaunchingWithOptionss method from AgileAgentAppDelegate is called. It actually loads the tabBarController to the main window and makes it visible (see Figure 3.2).

11

Figure 3.1. X-code IDE.
//AgileAgentAppDelegate.m
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self parsePlist];
[self parseLoginXML];
[window addSubview:tabBarController.view];
[window makeKeyAndVisible]; return YES;
}

3.3 IMPLEMENTATION OF THE MLS SEARCH
When the user selects the MLS Search, it will take the control to the
MLSNumberSearchTableViewController. Now, the viewDidLoad method is called at first,

12

Figure 3.2. TabBarController. which sets the MLS Search icon as the rightNavigationBarItem and it is action is thus set to call the doMLSSearch method.
- (void)viewDidLoad{ self.title = @"MLS Search"; self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch 13 target:self action:@selector(doMLSSearch:)] autorelease];
[self setMlsNumberCell: [self newDetailCellWithTag:0]];
}
After this, the UITableViewDelegate methods are called, which actually design the table and cells. The list of such methods is as follows:
1. numberOfSectionsInTableView:
2. numberOfRowsInSection:
3. cellForRowAtIndexPath:
4. titleForHeaderInSection:
5. didSelectRowAtIndexPath:
Out of all these methods, cellForRowAtIndexPath is used to create the cells. Now, the mlsNumberCell is being created here and required UITextField(s) are set up. To bring up the required numeric keyboard to get the data from the user, the keyboard type has been set to
UIKEyboardTypeNumbersAndPunctuation.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
EditableTableCell *cell = nil;
NSInteger tag = INT_MIN;
NSString *placeholder = nil;
NSUInteger section = [indexPath section]; cell = [self mlsNumberCell]; tag = 0; placeholder = @"MLS Number";
UITextField *textField = [cell textField];
[textField setTag:tag];
[textField setText:@""];
[textField setPlaceholder:placeholder]; if (section == 0){
[textField setKeyboardType:UIKeyboardTypeNumbersAndPunctuation];
[textField setReturnKeyType:UIReturnKeyDone];
}
return cell;
}
Now, the doMLSSearch method actually does the search which is requested by the user. After the user inputs the MLS Number of the property, it is picked up by this method
(see Figure 3.3). This input value is thus appended on the MLSSearchURL as

14

Figure 3.3. MLS search.
“&MlsNumber=******”. This MLSSearchURL is actually stored in
AgileAgentAppDelegate. The complete URL with the MLS Number, then requests the server to get the required data. The server responds back with the XML output, which is stored in the returnXMLString. Now this string is passed to the parser which is actually residing in
XMLParserPropertyDetails. This then returns output in the form of a key value pair, i.e. labelList and valuesList. After this, the data is sent to the propertyDetailViewController.

15
- (void) doMLSSearch:(id)sender {
AgileAgentAppDelegate *appDelegate = (AgileAgentAppDelegate
*)[[UIApplication
sharedApplication] delegate];
NSMutableString *MLSSearchURL = [[NSMutableString alloc] initWithString:appDelegate.detailSearchURL]; [MLSSearchURL appendString:@"&MlsNumber="]; if ([self.mlsNumber length]!=0 ) {
[MLSSearchURL appendString:self.mlsNumber];
}
NSError* error = nil;
NSString *returnedXMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:MLSSearchURL] encoding:NSASCIIStringEncoding error: &error];
XMLParserPropertyDetails *parser = [[XMLParserPropertyDetails alloc] init];
[parser parseXMLFile:returnedXMLString]; self.labelList = parser.labelList; self.valuesList = parser.valuesList;
If(propertyDetailViewController == nil) {
PropertyDetailViewController *viewController =
[[PropertyDetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; self.propertyDetailViewController = viewController;
[viewController release];
}
self.propertyDetailViewController.labelList = self.labelList; self.propertyDetailViewController.valuesList = self.valuesList; self.propertyDetailViewController.labelValues = parser.labelValues; self.propertyDetailViewController.title = @"Property Details";
[self.navigationController pushViewController:propertyDetailViewController animated:YES]; }
The URL which actually requests the server for the data is as follows: http://www.********.com:8080/*********/TextCommandServlet?method=detailedSearch &serialNumber=SERVER%20UNKNOWN&StoredUsername=*******
Now, lets discuss a little bit about the XML Parsing done over here. The delegate which is used here is NSXMLParserDelegate. It defines the optional methods implemented by the delegates of NSXMLParser objects. So, when the XML data is actually required to be parsed, it calls parseXMLFile method.
- (void)parseXMLFile:(NSString *)data {
BOOL success;

16
LabelValues = [NSMutableDictionary dictionary]; valuesList = [[NSMutableArray alloc] init]; currentString = [NSMutableString string]; storingCharacters = NO;
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:[data dataUsingEncoding: NSUTF8StringEncoding]];
[parser setDelegate:self];
[parser setShouldResolveExternalEntities:YES]; success = [parser parse]; currentString = nil;
[parser release];
}
The different methods of the NSXMLParserDelegate which actually get called automatically are the following:
1. didStartElement
2. foundCharacters
3. didEndElement
4. parseErrorOccured
So, when an XML tag starts which is to be parsed, the didStartElement method is automatically called and while its parsing each character one by one, its actually the foundCharacters method, which is actually doing the work. After this, the whole strings formed using these characters are stored in our model in the next method which is didEndElement. - (void)parser:(NSXMLParser *)parser didEndElement:(NSString
*)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName { if ([elementName isEqualToString:kLabels]) { self.labels=[[NSString alloc] initWithString: self.currentString]; self.labelList = [labels componentsSeparatedByString:@"|"];
[self.labels release]; self.labels =nil;
}
else if ([elementName isEqualToString:kKeys]) { self.keys=[[NSString alloc] initWithString: self.currentString]; self.keysList = [keys componentsSeparatedByString:@"|"];
[self.keys release]; self.keys=nil; for (int i=0;i 0){
[quickSearchURL appendString:@"&streetNumber="];
[quickSearchURL appendString:streetNo];
}
if (streetName != nil && [streetName length] > 0) {
[quickSearchURL appendString:@"&streetName="];
[quickSearchURL appendString:self.streetName];
}

20 if (area != nil && [area length] > 0 && [area rangeOfString:@"All"].location
== NSNotFound ){
[quickSearchURL appendString:@"&area="];
[quickSearchURL appendString:area];
}
if (status != nil && [status length] > 0 && [status rangeOfString:@"All"].location == NSNotFound ) {
[quickSearchURL appendString: @"&status=" ];
[quickSearchURL appendString: status];
}
NSData * dataXml = [[NSData alloc] initWithContentsOfURL:[NSURL
URLWithString:quickSearchURL]];
XMLParserPropertyList *reader = [[[XMLParserPropertyList alloc] init] autorelease]; [reader parseXMLFile:dataXml]; self.propertyList = [[NSArray alloc] initWithArray:[[reader propertyList] retain]]; [dataXml release];
If([self.propertyList count] > 0){
PropertyListViewController *viewController = [PropertyListViewController alloc]; self.propertyListViewController = viewController;
[viewController release];
[self.navigationController pushViewController:propertyListViewController animated:YES]; self.propertyListViewController.propertyList = nil; self.propertyListViewController.propertyList = self.propertyList; self.propertyListViewController.title = @"Property List";
}
else {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"No Property Found" message:@"Search tips to try:\n-Check search criteria\n-Try alternate spellings\n-Type partial entries" delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
Now, in this method, the parseXMLFile method of the XMLParserPropertyList is called. The methods in there like didStartElement, didEndElement and foundCharacters actually parse the XML data. Ultimately, we get a list of the properties from here and then this list is passed to the PropertyListViewController. In the PropertyListViewController, the

21 first method to be called is cellForRowAtIndexPath. This method actually displays a list of properties with their MLS Number, area, price and size in each cell.
The next task to do was to display the details of the property, which is selected by the user. This task has been accomplished by didSelectRowAtIndexPath method in
PropertyListViewController.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { int idx= [indexPath row];
Property *prop = (Property *)[propertyList objectAtIndex:idx];
NSString *mlsNum = prop.mlsNumber;
AgileAgentAppDelegate *appDelegate = (AgileAgentAppDelegate
*)[[UIApplication sharedApplication] delegate];
NSMutableString *propertyDetailURL = [[NSMutableString alloc] initWithString:appDelegate.detailSearchURL]; [propertyDetailURL appendString:@"&MlsNumber="];
[propertyDetailURL appendString:mlsNum];
NSError* error = nil;
NSString *returnedXMLString = [NSString stringWithContentsOfURL:[NSURL URLWithString:propertyDetailURL] encoding:NSASCIIStringEncoding error: &error];
XMLParserPropertyDetails *parser = [[XMLParserPropertyDetails alloc] init];
[parser parseXMLFile:returnedXMLString]; self.labelList = parser.labelList; self.valuesList = parser.valuesList; if(propertyDetailViewController == nil) {
PropertyDetailViewController *viewController =
[[PropertyDetailViewController alloc] initWithStyle:UITableViewStyleGrouped]; self.propertyDetailViewController = viewController;
[viewController release];
}
self.propertyDetailViewController.labelList = self.labelList; self.propertyDetailViewController.valuesList = self.valuesList; self.propertyDetailViewController.labelValues = parser.labelValues; self.propertyDetailViewController.title = @"Property Details";
[self.navigationController pushViewController:propertyDetailViewController animated:YES]; }
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. typeList. listDateList, minListPriceList, maxListPriceList, fullBathList, bedroomList, sqFeetList from the AgileAgentAppDelegate. As explained earlier cellForRowAtIndexPath

23

Figure 3.5. Detail search. creates the UITableVIew and table cells. When the user clicks on any row to select status, type, bedroom, bathroom, list price, etc., then the DidSelectRowAtIndexPath method is called. It actually thus opens the SelectViewController for the current option selected and shows the various available options in there. In this view when the selection is to be made, didSelectRowAtIndexPath is called.
- (void)viewDidLoad{
AgileAgentAppDelegate *appDelegate = (AgileAgentAppDelegate
*)[[UIApplication sharedApplication] delegate]; self.title = @"Detail Search"; self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(doDetailSearch:)] autorelease];

24
[self setStreetNameCell: [self newDetailCellWithTag:StreetName]];
[self setCityCell:
[self newDetailCellWithTag:City]];
[self setCountyCell: [self newDetailCellWithTag:County]];
[self setZipcodeCell: [self newDetailCellWithTag:Zip]]; self.areaList = appDelegate.areaList; self.statusList = appDelegate.statusList; self.typeList = appDelegate.typeList; self.listDateList = appDelegate.dateList; self.minListPriceList =appDelegate.minPriceList; self.maxListPriceList = appDelegate.maxPriceList; self.bedroomList = appDelegate.bedroomsList; self.fullBathList =appDelegate.bathsList; self.sqFeetList =appDelegate.sqFtList;
}
After this, the doDetailSearch method comes into action and after it reads the detailSearchURL, it appends various other search parameters onto it. Now, this URL again requests the server for some data and the server responds back with the XML data which again needs to be parsed using the parseXMLFile method of the XMLParserPropertyList.
The result from here is ultimately passed on to the PropertyListViewController which displays a list of properties matching the search criteria. After this, when the user selects one property out of that list, then the details about that property are shown by the didSelectRowAtIndexPath method.
- (void) doDetailSearch:(id)sender
{
AgileAgentAppDelegate *appDelegate = (AgileAgentAppDelegate
*)[[UIApplication sharedApplication] delegate];
NSMutableString *detailSearchURL = [[NSMutableString alloc] initWithString:appDelegate.detailSearchURL]; area = [areaList objectAtIndex:areaSelectedIndex]; status = [statusList objectAtIndex:statusSelectedIndex]; type = [typeList objectAtIndex:typeSelectedIndex]; listDate = [listDateList objectAtIndex:listDateSelectedIndex]; minListPrice = [minListPriceList objectAtIndex:minListPriceSelectedIndex]; maxListPrice = [maxListPriceList objectAtIndex:maxListPriceSelectedIndex]; bedroom = [bedroomList objectAtIndex:bedroomSelectedIndex]; fullBath = [fullBathList objectAtIndex:fullBathSelectedIndex]; sqFeet = [sqFeetList objectAtIndex:sqFeetSelectedIndex]; if (type != nil && [type length] > 0 && [type rangeOfString:@"All"].location
== NSNotFound ){
[detailSearchURL appendString:@"&propertytype="];
[detailSearchURL appendString:type];

25
}
if (status != nil && [status length] > 0 && [status rangeOfString:@"All"].location
== NSNotFound ) {
[detailSearchURL appendString: @"&status=" ];
[detailSearchURL appendString: status];
}
.
.
.
NSData * dataXml = [[NSData alloc] initWithContentsOfURL:[NSURL
URLWithString:detailSearchURL]];
XMLParserPropertyList *reader = [[[XMLParserPropertyList alloc] init] autorelease]; [reader parseXMLFile:dataXml]; self.propertyList = [[NSArray alloc] initWithArray:[[reader propertyList] retain]]; [dataXml release]; if([self.propertyList count] > 0){
PropertyListViewController *viewController = [PropertyListViewController alloc]; self.propertyListViewController = viewController;
[viewController release];
[self.navigationController pushViewController:propertyListViewController animated:YES]; self.propertyListViewController.propertyList = nil; self.propertyListViewController.propertyList = self.propertyList; self.propertyListViewController.title = @"Property List";
}
else {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"No Property Found" message:@"Search tips to try:\n-Check search criteria\n-Try alternate spellings\n-Type partial entries" delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}

3.6 IMPLEMENTATION OF AGENT LIST
Just like one can search for a property, in a similar way the user can search for a real estate agent as well (see Figure 3.6). The search parameters are the following:

26

Figure 3.6. Agent list.
1. First name: It refers to the first name of the real estate agent.
2. Last Name: It refers to the last name of the real estate agent.
3. Listing Office: It refers to the listing office of the real estate agent.
When the user lands on the Agent List view, then AgentSearchTableViewController comes into action. As in the other controllers, the first method to be called here is the viewDidLoad, which actually sets up the navigation buttons and the cells for the various search fields are created in cellForRowAtIndexPath method. Now, when the user inputs the

27 search criteria then it’s the doAgentSearch method which actually takes the values of the different parameters and appends it over to the agentSearchURL. This URL then requests the server for the data and the server responds back in form of XML data.
- (void) doAgentSearch:(id)sender {
AgileAgentAppDelegate *appDelegate = (AgileAgentAppDelegate
*)[[UIApplication sharedApplication] delegate];
NSMutableString *agentSearchURL = [[NSMutableString alloc] initWithString:appDelegate.agentSerachURL]; if (firstName != nil && [firstName length] > 0){
[agentSearchURL appendString:@"&firstName="];
[agentSearchURL appendString:firstName];
}
If (lastName != nil && [lastName length] > 0) {
[agentSearchURL appendString:@"&lastName="];
[agentSearchURL appendString:self.lastName];
}
if (listingOffice != nil && [listingOffice length] > 0) {
[agentSearchURL appendString:@"&listingOffice="];
[agentSearchURL appendString:self.listingOffice];
}
NSLog(@"%@",agentSearchURL);
NSData * dataXml = [[NSData alloc] initWithContentsOfURL:[NSURL
URLWithString:agentSearchURL]];
XMLParserAgentList *reader = [[[XMLParserAgentList alloc] init] autorelease]; [reader parseXMLFile:dataXml]; self.agentList = [[NSArray alloc] initWithArray:[[reader agentList] retain]];
[dataXml release]; if([self.agentList count] > 0){
AgentListViewController *viewController = [AgentListViewController alloc]; self.agentListViewController = viewController;
[viewController release];
[self.navigationController pushViewController:agentListViewController animated:YES]; self.agentListViewController.agentList = nil; self.agentListViewController.agentList = self.agentList; self.agentListViewController.title = @"Agent Listing";
}
else {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"No Agent Found" message:@"Search tips to try:\n-Check search criteria\n-Try alternate spellings\n-Type partial entries"

28 delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles:nil];
[alertView show];
[alertView release];
}
}
Now the XML response from the server needs to be parsed which is done using
XMLParserAgentList. The output from here is an agentList which is then passed to the
AgentListViewController which displays the list of the Real estate agents with their names and phone numbers. Now, when the user selects a particular cell or agent from this list, then the agent details are extracted using XMLParserAgentDetails which are then passed to
AgentDetailViewController for this agent. Here the cellForRowAtIndexPath method is called which actually renders the result which is the agent detail to the device UI.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue2 reuseIdentifier:CellIdentifier] autorelease]; }
NSUInteger row = [indexPath row]; switch (row) { case FullName:{ cell.textLabel.text=@"Name"; cell.detailTextLabel.text=agent.fullName; break; } case Office:{ cell.textLabel.text=@"Office"; cell.detailTextLabel.text=agent.phone_direct_office; break; } case Mobile:{ cell.textLabel.text=@"Mobile"; cell.detailTextLabel.text=agent.car_phone; break; } case Email:{

29 cell.textLabel.text=@"Email"; cell.detailTextLabel.text=agent.member_email; break; } case ListingOffice:{ cell.textLabel.text=@"Listing"; cell.detailTextLabel.text=agent.lo_name; break; }
}
return cell;
}

3.7 IMPLEMENTATION OF MORE MENU
When the user is on the Property Details View, he can get some more specific information about this property via the more option given to him (see Figure 3.7). This option is available as a right navigation bar button on the top right corner of the Property
Details View. On the click of this button, the moreDetails method is called.
- (IBAction) moreDetails{
UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:@"More" delegate:self cancelButtonTitle:nil destructiveButtonTitle:@"Cancel" otherButtonTitles:@"Show Map",@"Directions",@"To Show",@"Agent Info",
@"Public Remarks",@"Realtor Remarks",nil]; popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
[popupQuery release];
}
The more menu is created using UIActionSheetDelegate along with the
PropertyDetailViewController and by over-riding the actionSheet:clickButtonAtIndex: method. The various choices available under ‘More’ are as follows.

3.7.1 Show Map
When the user selects the ‘Show Map’ option from the More menu, the address, city, state and zipcode of that property is passed to the MapViewController which has two important functions of converting the address to latitude and longitude using Google’s

30

Figure 3.7. More menu. webservice for Geo Code using the convertToCordinates method. The result of this method, which is the latitudinal and longitudinal value of the location of the property is passed on the showLocationonMap method.
NSString *makeGoogleMapsURL = [NSString stringWithFormat:@"http://maps.google.com/maps/geo?q=%@&output=csv", [location stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; NSError* error = nil;

31
NSString *returnedCSVString = [NSString stringWithContentsOfURL:[NSURL
URLWithString:makeGoogleMapsURL] encoding:NSASCIIStringEncoding error: &error];
NSArray *returnedArray = [returnedCSVString componentsSeparatedByString:@","]; if([returnedArray count] >= 4 && [[returnedArray objectAtIndex:0] isEqualToString:@"200"]) { propLatitude = [[returnedArray objectAtIndex:2] doubleValue]; propLongitude = [[returnedArray objectAtIndex:3] doubleValue];
}
else { propLatitude = 0.0; propLongitude = 0.0;
}
}
Now, the showLocationOnMap method uses these coordinates to pinpoint the location of the property on mapView. In case the full address does not resolve to a valid latitude and longitude value, then it uses just the zipcode of the property to get these coordinates and display its location over the mapView.
-(void) showLocationOnMap{
//Remove all annotations from Map
[mapView removeAnnotations:mapView.annotations];
//Set map to San Deigo by Default
CLLocationCoordinate2D sanDiego = {latitude: 32.76572795, longitude: 117.07319880};
MKCoordinateSpan span = {latitudeDelta: 0.9, longitudeDelta: 0.5};
MKCoordinateRegion county = {sanDiego, span}; mapView.region = county; mapView.mapType = MKMapTypeStandard; mapView.showsUserLocation = YES;
//Now Zoom to Location of Restaurant
CLLocationCoordinate2D location = {latitude: propLatitude, longitude: propLongitude}; AnnotatedLocation *annotation = [[AnnotatedLocation alloc] init]; annotation.coordinate = location; annotation.title = @"Property"; annotation.subtitle = address;
[mapView addAnnotation:annotation];
[annotation release];

32
//Zoom to Restaurant location
MKCoordinateRegion viewRegion =
MKCoordinateRegionMakeWithDistance(location, 2000, 2000);
MKCoordinateRegion adjustedRegion = [mapView regionThatFits:viewRegion]; [mapView setRegion:adjustedRegion animated:YES];
}

3.7.2 Directions
When the user selects the More menu option of Directions, he is able to see a pop up dialog showing him the rough directions to the property. The following code snippet from clickedButtonAtIndex method of PropetyDetailViewController is executed for showing this dialog box. titleHeader = @"Directions"; message = [labelValues objectForKey:@"directions"]; if ([ [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet] ] length]==0) message= @"No Direction Found";
[self showMessage];

3.7.3 To Show
When the user selects the ‘To Show’ option from the more menu, it gives him the instructions for looking at the property or scheduling any appointment to do so. The following code snippet is implemented to perform this action. titleHeader = @"To Show"; message = [NSString stringWithFormat:@"Instruction: %@ \n\nOwner: %@",
[labelValues objectForKey:@"ftr_toshow"], [labelValues objectForKey:@"owner_name"]]; if ([ [message stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet] ] length]==0) message= @"No Data";
[self showMessage];

3.7.4 Agent Info
If the user wants to see the information about the agent who is dealing with this property, then he can choose the Agent Info option from the More menu. agent = [[Agent alloc] init]; agent.fullName = [NSString stringWithFormat:@"%@ %@", [labelValues objectForKey:@"la_first_name"], [labelValues objectForKey:@"la_last_name"]];

33 agent.car_phone = [labelValues objectForKey:@"la_car_phone"]; agent.phone_direct_office = [labelValues objectForKey:@"la_phone_direct_office"]; agent.lo_name = [labelValues objectForKey:@"lo_name"]; agent.member_email = [labelValues objectForKey:@"la_member_email"]; if(agentDetailViewController == nil) {
AgentDetailViewController *viewController = [[AgentDetailViewController alloc] InitWithStyle:UITableViewStyleGrouped]; self.agentDetailViewController = viewController;
[viewController release];
}
self.agentDetailViewController.agent = agent; self.agentDetailViewController.title = @"Agent Details";
[self.navigationController pushViewController:agentDetailViewController animated:YES]; It gets the agent details like full name, listing office, etc. and creates and Agent object to pass to the AgentDetailViewController for display. Detailed information about implementation of this feature has already been provided in the section 2.5 Implementation of Agent List.

3.7.5 Public Remarks
If the user wishes to see the comments of the general public about a property, then he can select the Public Remarks option from the ‘More’ menu. This will thus display a pop up dialog with the requested information.

3.7.6 Realtor Remarks
Similarly, if the user wants to see the remarks of the realtors about any property, then he can select the Realtor Remarks option from the ‘More’ menu. This will again display a pop up dialog with the relevant information.

3.8 IMPLEMENTATION OF MORTGAGE CALCULATOR
The user has also been provided with one more feature in this application, which is the Mortgage Calculator. The user can feed in the Price for the property and the amount of down payment, which he can make. Thus, depending on the number of years and interest rate fed in by in the user, this mortgage calculator can provide the user with an estimate of

34 monthly P&I (Principal and Interest). For this calculateMortgage method is called from the
MortgageCalculatorController which actually calculates this result.
- (IBAction) calculateMortgage{ if ( ([purchasePrice length] > 0) && ([downPayment length] > 0) &&
([interestRate length] > 0) && ([loanPeriod length] > 0)) {
//Reading input data double dblPurchasePrice = [purchasePrice doubleValue]; double dblDownPayment = [downPayment doubleValue]; double dblInterestRate = [interestRate doubleValue]; int dblLoanPeriod = [loanPeriod intValue];
//Calculating
double dblPrinciplePrice = dblPurchasePrice - dblDownPayment; double dblRate = dblInterestRate / 100.0; int totalPayments = dblLoanPeriod * 12; double tempRate = dblRate / 12; double Temp = 1 + tempRate; double sum = 1 + Temp; for (int i = 2; i

Similar Documents

Premium Essay

Apple in Se 10-K

...3 appendix 5 4 References 7 4.1 work cited 7 INTRODUCTION 1 Executive Summary In this report I will discuss my financial analysis of Apple Corporation along with a synopsis and display of the company’s financial documents and records. I have been a consumer of Apple products for many years. With their recent conference that reveal the new iPhone 6s, iPad pro ad Apple Watch they continue to incline with innovative products and financially. “The Company must continually introduce new products, services and technologies, enhance existing products and services, and effectively stimulate customer demand for new and upgraded products” (SEC 10-K, 2014). Apple continue to produce new products to stay ahead of the competition. 2 History Apple was established in 1976 by Steve Jobs, Steve Wozniak and Ronald Wayne. Apple produces, manufactures, designs and sale computers to schools, businesses, and government agency. In addition, Apple also sales personal computers, iPod and iPhone compatible products, including application software, printers, storage devices, speakers, headphones, and various other accessories and peripherals through its online and retail stores and digital content through their iTunes Media Store. Apple is continuously providing there customers with “enhanced digital lifestyles (SEC10-K, 2014)” Apple is the second-largest information technology company, after Samsung Electronics...

Words: 877 - Pages: 4

Free Essay

Business and Support Systems

...Reality Gets Better Virtual reality generates images through the computer. Augmented reality is real-word images that are augmented by computer. What makes virtual reality and augmented reality different are: The goal of augmented reality is to confuse consumers so they cannot tell the difference between real world images and augmented reality. The goal of virtual reality is to give consumers the perception of the virtue world (Laudon and Laudon, 2012). More companies are using augmented reality to make their products more appealing to consumers. Cell phones are basically portable computers and consumers are basically using their cell phones for everyday use. Augmented reality is so appealing to marketer because it sell products. Real estate shopping applications allow consumers to drive or walk past properties that are for sale, point their cell phones at the property of choice and information about the property will be displayed on the cell phone. This is helpful if you are a consumer that does not like to deal with real estate agents (Laudon and Laudon, 2012). The Apple iPhones has various augmented reality applications. One that is popular with my neighbor is the Golf Rangefinder. My neighbor Mr. Barnes is an avid golfer and uses the golf application every time it is time for him to find a course to play. Golf rangefinder can display the range of the golf course and golf rangefinder is not a free application (Apple, 2012). The AR Soccer application is popular by my 10...

Words: 688 - Pages: 3

Free Essay

Stock Valuation

...the S&P 500 in the coming fiscal year based on the firm’s strong background, prior history, and comparative advantage. I believe that FIT will underperform the S&P 500 in the coming fiscal year due to its recent stock decline, lack of innovation, and the credibility of its well-known competitors. CB Richard Ellis Group Inc., or simply CBRE, is a worldwide real estate services & investment firm that serves real estate owners, investors, and occupiers throughout the world. In short, CBRE offers strategic and execution advice for a multitude of real estate properties and investments. According to CBRE’s website, “CBRE consists of 70,000 professionals whom provide outcomes for clients in 60+ countries”, based off this information it is clear that CBRE is an enormous firm that is continually expanding and improving. According to CBRE’s official website it had substantial revenues of around $10.9 billion. Based on the company’s recent history it’s quite evident that CBRE is one of the most dominant firms in its field for numerous reasons. For one, its size, CBRE Group, Inc. is the world’s largest commercial and real estate services and investment firms. Not only is this firms size quite impressive but its history is as well. CBRE has been a part of the fortune 500 since 2008 and for the past 15 consecutive years has been voted industry’s top brand by Lipsey Company. If that’s not impressive enough CBRE has also been named one of Fortune’s “Most Admired Companies” for four consecutive...

Words: 1897 - Pages: 8

Premium Essay

Elgile Life

...RE 310 Real Estate Practice Second 8 Week Course Spring 2012 Online Course Outline (Syllabus) Instructor: Patrick J. Hogarty Office: B 212 Office Hours: Online Office Hour Mon 1:00 - 2:00 p.m. On Campus Office Hours Tue 4:30 – 6:00 p.m., Thurs 4:30 – 6:00 p.m. Wed 4:30 – 5:30 p.m. Office Phone: (916) 558-2314 Extension: N/A Email: hogartp@scc.losrios.edu Special Note: Email is the best method for contacting me. Normally, I check my email several times a day and often-on weekends. Required Text: Huber, Walt, California Real Estate Practice, 5 th or 6 th Edition Optional Video DVD Set: See information about this optional DVD set under the heading of Course Requirements/Assignments Class Schedule: Students can watch lectures on Cable Television, view lectures over the internet, or watch lectures using DVD set available thru the college bookstore. You must have a DVD player in your computer (you cannot watch them using a television DVD player). Units: 3 Credit units Prerequisite: None Acceptable for credit: CSU Course Description This course covers operations in real estate: listing, prospecting, advertising, financing, sales techniques, escrow and ethics. This course is required by the California Department of Real Estate prior to taking the real estate salesperson’s examination. Learning Outcomes and Objectives: Upon completion of this course, the student will be able to:     develop a practical approach to real estate. develop...

Words: 3708 - Pages: 15

Premium Essay

Marketing Study for Arthaland

...PART I COMPANY PROFILE Mission To be a boutique developer that creates properties that will provide special, holistic and elevated quality of living to our customers and overall communities that we develop consistent with the sustainability values that we stand for. Vision * To become a distinctive breed of developer whose aim is to sincerely care for and improve lives and conserve the environment in all phases thru responsive and responsible planning, development and property management. We know that our work impacts on the lives of our customers, the interest of investors and business partners, the well-being of communities that we build and the welfare of the environment. * To be the preferred choice by customers who want a better and healthier environment for families, working communities that will grow and thrive thru time. * To be the benchmark in the industry for novelty and freshness in project concepts, for well-thought of and perfectly executed projects, and for long-term after sales relationship. * To be a caring and motivating employer supporting employees’ knowledge advancement, growth, health and aspirations for a quality life making them responsible citizens in society. * To be a worthy investment to our shareholders, creating and unlocking values of properties we develop which translate into long-term returns for investors. Values We are responsive and responsible to our customers throughout our projects’ life cycles – from concept...

Words: 3471 - Pages: 14

Free Essay

Thisis It

...been required by the Tax Office to divulge the details of customers with offshore structures. ''We recently complied with an order to provide the ATO with the details of all customers with a connection to Australia in various offshore jurisdictions,'' said Stephen Ries, a spokesman. Ashurst (formerly Blake Dawson) says it is its clients' responsibility to ensure they're meeting their tax obligations. ''Our firm actively advises our clients to comply with all applicable taxation laws and regulations,'' said spokesman Glenn Taylor. ''Some clients will establish international structures for a wide variety of legitimate business reasons and, on occasion, they seek our help to assist with this,'' he said. But confidential documents reveal that the secrecy of offshore accounts was paramount. File notes for the late John Anderson, a senior partner with accountancy firm KPMG, reveal his obsession with secrecy. Because of his position, ''he did not want at any stage for there to be a connection between himself and the trust,'' a Portcullis TrustNet file note reveals. ''We can assure him that his records or his confidentiality would never leave these offices.'' Mr Williams blamed accountants and lawyers for making such arrangements possible to begin with. '''I am going to focus in on those people who have got them into it in the first place and enabled this. ''I am going to target the facilitators.''   Leaks help untangle web of offshore havens and those using them Richard Dukes...

Words: 1207 - Pages: 5

Premium Essay

Automakers Become Software Companies

...AUTOMAKERS BECOME SOFTWARE COMPANIES? Case Study 2 Abstract Automakers’ diving in head first in merging cutting edge technology with automobiles has caused some growing pains. The issues with providing a constant source of Wi-Fi capabilities, privacy concerns, distributing necessary software upgrades, and protecting the customers identity have been issues auto makers have faced since this endeavor started to enter the cars we buy. So companies like Ford, GM and BMW have been on the razor edge of break through innovation to draw the curious techy generation to friendlier interface systems, with high-tech navigation, Pandora music, Wi-Fi capabilities, and applications that car buyers and use to continue their social networking, technological dependent lives on the road. Together these advances suggest that auto makers are on the verge of entering an another industry to supplement their industry. Identifying the major issues and their outcomes Identifying the major issues in automakers exploring inclusion into technology within their cars is numerous, although the upside is great and there is evidence to support it. Of the many issues that automakers face, one of the more prominent is the lack of a central system to feed into to, or off of. This system does not exist yet to where these systems can receive traffic information, schedule reservations, or even connect...

Words: 2054 - Pages: 9

Premium Essay

The Resume

...to you:         An excitement and passion for working with trading systems. 13 years of direct experience in creating and implementing real-time, multithreaded signal processing applications using statistical and numerical calculus algorithms. Experience with designing and implementing trading platform GUI front-ends using .NET Windows Forms and WPF, giving special attention to real-time performance and user friendly presentation. Experience with proprietary and open financial protocols (FIX, XML). Experience with financial business logic, including real-time messaging and sockets, reliable protocols, low latency protocols, distributed calculations, financial modeling, and automated trading algorithms. Experience with artificial intelligent systems for signal analysis and/or parameter optimizations. A high aptitude to rapidly learn and utilize new technologies, mathematics, and business infrastructures. A deep understanding of both technology and business objectives. I can effectively communicate and work with any type of person on any level, whether it is an Executive Manager, IT Professional, or PhD Quant. My long term career goal is to become a top expert in financial trading systems information technologies. Therefore, in the last few years my passion has been directed towards this goal. My proven track record is in real-time R&D signal processing technologies and I have found this experience to be directly transferable to financial trading technologies. I know...

Words: 951 - Pages: 4

Premium Essay

Information System

...three different modes that we can view and edit our website such as Express, View and Editor mode. So the Express and Editor view mode is the only two that we usually go into to edit our website contents. The template that we chose to create our real estate database with is a Business template that was available on Wix.com. However, the template’s background color was quite dark and it overlapped with the color of most of our words that we want our customers to read; therefore, we decide to replace the background of the default Wix template with our own which is a brighter color background. On the other hand, we also use our own font for the words on our website as well as its color such as red and green and a few animation effects and clip arts to get the attention of customers. Basically, we created 5 tabs that are clearly visible to our target audiences, the five tabs included a Home page, a For Rent page, a About us page, a Mobile page and a Contact page. The Home page of our website basically included the company name which is the Boston Pads on the upper left corner. Next to our company name, we designed 5 little green rectangles box that have the five clickable tabs inside. Furthermore, the Home page also included the Latest Properties For Rent and Most Popular sub-category with animated picture of a few locations where we think are most popular among college students. On the For Rent page, there are four sub-categories, which are the four locations where we figured out that...

Words: 587 - Pages: 3

Premium Essay

General Growht Properties

...Table of Contents Executive Summary (JS) 5 Introduction 6 Background / History of the Company(CD) 6 Mission Statement(CD) 7 Business(CD) 7 Major Goals(CD) 7 Corporate Philosophy(CD) 7 Strategic Evolution (KH) 8 Intended Strategies (KH) 8 Emergent Strategies (KH) 8 Stakeholders (AB) 9 Internal (AB) 9 External (AB) 9 General Growth Properties Organizational Structure (KM) 9 Purpose of the Report (CD) 10 External Analysis (KM) 11 Basic Industry Information (AB/KM) 11 Industry Growth (KM) 12 Industry Profits 12 Industry Segments (AB/KM) 13 External/ General (Macro) Environment (AB/CD) 13 General Economic Conditions and Global (CD) 13 Population Demographics(CD) 14 Societal Values and Lifestyles (Sociocultural) (CD) 14 Political, Regulatory and Legal (AB) 15 Technological (AB/CD) 15 Summary of Analysis and Impact (AB/CD) 16 Industry Analysis/Porter’s Five Forces (CD) 16 Threat of New Entrants (CD) 16 Current Rivalry Among Existing Firms (CD) 17 Supplier Power (CD) 17 Bargaining Power of Buyers (CD) 18 Threat of Substitute Services (CD) 18 Industry Attractiveness/Profitability (CD) 18 porters five forces model (JS) 19 Strategic Groups (KH) 19 Internal Analysis (AB) 20 Value Chain Analysis (AB 20 Primary Activities (AB) 20 Inbound Logistics (AB) 20 Strength: 20 Weakness: 20 Operations (AB) 20 Strength: 20 Weakness: 21 Outbound Logistics (AB) 21 Strength: 21 Weakness: 21 Marketing & Sales...

Words: 20172 - Pages: 81

Free Essay

Cisco Webex Meetings

...Take your Web meetings anywhere. It's easy to stay connected to important meetings, wherever you are. With WebEx, you can join any web conference right from your iPad and iPhone. NOTE: Cisco WebEx Meetings is now a universal app for both iPad and iPhone. NOTE: If you use WebEx on your iPad, please make sure to *REMOVE* the ‘WebEx for iPad’ app before you install this new universal app onto your iPad. Experience WebEx High Quality 2-way video on the iPad and iPhone 4 by viewing the video feeds of the participants in the web conference and streaming your own video back to them. Use video for better engagement: Whether you're holding a brainstorming session or making a presentation, turning your online meeting into a virtual video conference helps everyone focus on every word. The two-way streaming video on iPad and iPhone delivers an unparalleled visual experience on the go. Getting face-to-face has never been easier! Features: Mobile video conferencing (requires Wi-Fi) with: •High-quality, multipoint video •2-way video with camera switcher •Voice-activated video switching •Full-screen video •View content and video simultaneously (iPad only) •Cisco TelePresence WebEx OneTouch support Host account capabilities, including: •Schedule, start, and cancel a meeting •Invite others to a meeting •Pass presenter capabilities to another participant Meeting Capabilities: •Join via WebEx meeting email invite, meeting number, WebEx site URL, or My Meetings...

Words: 3188 - Pages: 13

Premium Essay

Accounting

...revered multinational company that designs and sells desktops, laptops, Smart phones, Tablets, software and accessories. Apple was the first major novel entrant to the evolving mobile Internet market otherwise known as smartphone which in 2007 introduced the Apple iPhone. ``It catalyzed a shift in the architecture of the mobile phone industry and set the standard in two ways. First, it provided a fully functional web browser that allowed users to escape previous operator-specific silos of mobile content by linking them directly to the infinitely larger and more diverse Internet value networks.Ineffect, it collapsed the boundaries between the mobile device and the Internet with its enormous content. Secondly, leveraging the iPod ecosystem, but going far beyond it, the iPhone created a platform sufficiently open and attractive to create an ecosystem of application providers with 250,000 iPhone-specific applications that encouraged billions of downloads``( Kenney,M. & Pon,B.2011). Apple designs, markets and manufactures portable communication digital media devices like personal computers (pc`s), digital musical players, and interrelated software products. Among the Company’s products and services are the iPhone, IPod, iPad, Mac Pc, Apple TV, ICloud, iTunes, iBook, the iOS and OS X operating systems and other accessories. Apple markets and sells its products and services globally via its network of retail stores, direct sales, third party sellers and Wireless Network providers...

Words: 7970 - Pages: 32

Premium Essay

Annual Report - Apple Inc

...Reporting on: APPLE, Inc. Fiscal Year 2011 Presented by: Bo Weichel Professor: Ekaterina Kouprianova Course: ACC 206 Accounting II Date: 11/20/11 Page | 1 CORPORATE GOVERNANCE Apple, Inc. is a highly successful global company offering leading technology in personal computers, phones, music players, and tablet computers. Its success doesn’t come entirely from producing consistently innovative and quality products. It reaches down into the depths of the company itself, its organizational governa nce and control. This foundation is what keeps Apple on the leading edge of the market. Apple has a Board of Directors which contains seven members, including CEO Tim Cook. The role of the Board is to “oversee the Chief Executive Officer and other senior management in the competent and ethical operation of the Corporation on a day-to-day basis and assures that the long term interests of the shareholders are being served ” (Apple 2010, p.1). Serving on the Board set s limitations on its directors; they are advised not to serve on more than four boards of other companies (Apple 2010, p.1). Directors serve for a one year term, without limitations on the number of terms served ; however they may not continue re-election after age 75. Again highlighting the Corporations excellent internal governance, it states “The Board believes the Corporation benefits from the contributions of directors who have developed, over time, increasing insight into the Corporation” (Apple 2010, p.2). This shows...

Words: 1153 - Pages: 5

Free Essay

Classified List

...Classifieds,Free Classified Ads,Buy Sell Classified ... Click India Classifieds - A Site To Post Free Buy Sell IndianClassified Ads Online. Search Classified Ads For Jobs, Find Real Estate Properties On Sale, ... www.clickindia.com/ - Cached - Similar 3 Worldstuffer | Free Local Classifieds and Social Networking Site ... Buy, Sell, Meet with our Free Local Classifieds. Participate in forums and discussions. Meet your Love, Friend or Partner. Join Us now, and your Life will ... www.worldstuffer.com/ - Cached - Similar 4 Zuxxx.com - free advertising total - free classifieds- free ... Free classifieds, ads, advertising, press releases, website promotion, business listings - Zuxxx is fast, easy and for free - post your ads without ... www.zuxxx.com/ - Cached - Similar 5 Free Classified Ads India - Click to Post Free Classifieds Ad in ... post free classified ads in india on a click - now post local ads at free classifieds website on a click in india and deal directly - its a free classified ... www.angclassifieds.com/ - Cached - Similar 6 Free Ads - Free Classifieds Ad,Post Free Classifieds Ads,Used Cars ... Free Ads - Post Free Classifieds Local Ads to Buy / Sell Second Hand, Pre Owned and Used Cars in Chennai, Bangalore, Delhi, Noida, To buy / Sell real estate ... www.freeads.in/ - Cached 7 Free classifieds in India, Classified ads in India, Online ... Free Online Classifieds Autos for Rent and Sale – Thrifty Auto Rental...

Words: 37676 - Pages: 151

Premium Essay

Brandthink

...BRANDTHINK MALAYSIA INTRODUCTION The Malaysian advertising landscape is gradually shifting its traditional media forms to the emergent new media advertising but still at a nascent stage. The latter shows much room for growth, as the industry fuels to content digitisation on web applications. This has shown when RM14.9 million worth of advertisements was spent on the Internet medium in the first half of 2008. Propelling further to this, the TV medium is creating new media technologies to include ads on applications of mobile video streaming and broadcast mobile TV services. However, this might dampen if Malaysia’s broadband penetration and Information and Communication Technologies (ICT) literacy does not improve. With Government’s various initiatives to push the take-up of broadband, perhaps the advertising market could initiate more eyeballs. I- AGENCY NAME BRANDTHINK is one of Malaysia’s fastest growing marketing services agency. They have established themselves as a growing agency providing not only advertising services, but PR, events, activation and digital. Since 2000, they’ve work with major clients in luxury, fashion, lifestyle and technology to launch iconic brands and products in Malaysia, Singapore and other countries in Asia Pacific, generating millions of advertising awareness, brand value and publicity. Their work seals their reputation as the go-to agency for marketing to the affluent. In 2012, we are voted PR Agency of the Year (Bronze and Local Hero)...

Words: 4080 - Pages: 17