Hotel App Template iOS

* * * * (43 ratings)
Hotel App Template | App Code for Sale | Hero

Screenshots

Overview

Hotel App is a native iOS project that will help you build a complete app for a hotel in just few minutes.

Now Available for iOS 6.0

Application is ready for build and upload to iTunes store.

Application Fetures and Description


Application features:

  • easy to use, configure XML, build and run

  • about hotel

  • photo gallery and video gallery

  • news from rss feed

  • reservations form

  • interactive map

  • retina (4G) graphics support

  • and much more...

Hotel app is configurable over property list (XML), so it's easy to define everything without programming knowledge.

Application use tab navigation with five main views:

  • About

  • Gallery

  • News

  • Reservation

  • Contacts

About is first view that user see and this view display headline image and text about hotel.

Gallery view show images and video about hotel. Each image will zoom to larger size after user taps on it and zoom out on another tap.

News view use RSS reader to display news, tap on each will open separate view to display full text defined in selected news.

Reservation allows user to define several options that will display price and after user fills data this view will send this data on mail or to API (depending how you configure this view).

Contacts view display contact information about hotel with location on map.

Property list (XML) configuration

Project is easy to configure with property list (XML) without any need to know programming. This file is named config.plist can be found in folder Supporting Files.

For most tabs available in application there is equivalent dictionary type item (About, Gallery, Reservation and Location). Since all tabs have different layout same differences are reflected in this property list.

About dictionary is simple, you need to add three strings, named text, image and title. Title and text strings are used to present general information about your hotel, and image string shoud contain image file name to be used on the same screen.

Under Gallery dictionary you need to create two arrays, imagesAndTitlesItems and videosItems.

  • Under introImagesNames you will need to add image names of image files that you will add to the application separated with desired titles. Image names and titles should be of string type.

  • Under videosItems you will be adding video files names, also string type.

Under Reservation dictionary you will need to create an array named roomCategories and fill it with items that represnt each category your hotel provides.

Category is dictionary type and it contains categoryPrice and categoryName strings.

Contacts dictionary consists of two main elements:

  • contactInfo

  • locationItems

contactInfo is dictionary type and it should contain strings that with contact information (email, telephone, title, message, address, postOffice and webPage).

locationItems is array type item with locations stored in dictionary types. Each location item should consist of two string type items (title and address) and two number type items (latitude and longitude)

Please keep in mind that ordering of items under array types is important, since it is used to order those items when displayed in running application.

XCode project overview

Project requires following frameworks:

  • CoreGraphics.framework

  • Foundation.framework

  • MapKit.framework

  • MediaPlayer.framework

  • MessageUI.framework

  • UIKit.framework

In project supporting files you'll find MBProgressHUD class, used to display spinning wheel while networking action is in progress. Other networking groups are RSS and JSON, used to download news feeds and upload reservation request to given server.

XCode classes

AppDelegate

Application delegate in method:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

Customizes standard iPhone tabBar, while all navigation logic in implemented in MainStoryboard.storyboard file.

AboutViewController

This controller is the first one displayed when application launches. Image, title and text presented are created by reading from property list. Property list name is defined at top of main file:

#define kConfigPlistName @"config"

GalleryViewController

Layout of this view is built entirely by reading from property list. By arranging order in Gallery dictionary in property list you can rearange and edit subsections in Photos section. Property list name is defined at top of main file:

#define kConfigPlistName @"config"

By tapping on any of presented items following method is invoked:

- (IBAction)galleryItemPressed:(id)sender

Based on item type chosen item will be presented as large image or in case item is actually video file it will open video player with standard controls.

NewsViewController

This controller presents a table view whose data is downloaded by contacting your RSS server. Details about required RSS feed will be discussed later on.

On row select method:

- (void)tableView:(UITableView *)_tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

will open NewsItemViewController.

NewsItemViewController

This controller is used to display all details of menu item that was selected in it's parent (NewsViewController).

ReservationViewController

Reservation view displays a short description text, that is extracted from property list. Property list name is defined at top of main file:

#define kConfigPlistName @"config"

Underneath are four text fields in which user inputs information about his reservation. Button in Interface Builder is connected with following method that will take user to next screen (ReservationDetailViewController):

- (IBAction)buttonGetPriceClick:(id)sender

ReservationDetailViewController

Reservation detail view displays calculated price using parameters handed to it by it's parent view controller (ReservationViewController), and category prices that are read from property list. Property list name is defined at top of main file:

#define kConfigPlistName @"config"

Underneath the calculated price are four text fields in which user inputs his personal information. Button in Interface Builder is connected with following method that will present standard MFMailComposeViewController view, with prefilled recipient, subject and reservation data:

- (IBAction)reserveButtonClick:(id)sender

ContactsViewController

Contacts view is presented with contact information, map and two buttons. All presented data is read from property list, including map's location annotations. If allowed application will show user current location and after tapping on anotation's detail button Maps application will launch with directions to the hotel. Property list name is defined at top of main file:

#define kConfigPlistName @"config"

Methods linked from buttons in Interface Builder:

- (IBAction)buttonCallClick:(id)sender

- (IBAction)buttonEmailClick:(id)sender

Annotation

Definition of annotation used in LocationViewController, conforming to MKAnnotation protocol.

FeedDownloader

This class is used to download RSS feeds from your server. For NewsViewController to function properly you will need to edit following defines:

#define feedURL @"http://news.google.com/?output=rss"
#define feedObject @"item"
#define feedTitle @"title"
#define feedText @"text"
#define feedImageURL @"image"
#define feedBody @"link"
#define feedDate @"pubDate"

Please keep in mind that your defines must be the same as ones in response that this application will request from your server.

24 Comments Leave a comment