free advertising platform for businesses with ios & android apps development

6
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 1 of 6 Case Study Free Advertising App For Businesses

Upload: mike-taylor

Post on 22-Nov-2014

255 views

Category:

Technology


2 download

DESCRIPTION

Free advertising platform for businesses with IOS & Android Mobile Application development & features for web syncing. OR code scanning mobile app used for free advertising.

TRANSCRIPT

Page 1: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 1 of 6

Case Study

Free Advertising App For Businesses

Page 2: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 2 of 6

Due to the emergence of ecommerce/mcommerce the entire world has become a single

marketplace. This clearly means that every brand has to fight its competitors. For business

profits, brands must not only be launched but also promoted well. Further, the brand must

convince each prospect to enroll with its services over its competitors thereby increasing the

marketing cost.

To lower the cost of advertising, client decided to launch a free advertising platform for

businesses. This application provides offers, deals directly to the customers and helps

businesses to promote its products and services. Users can register themselves with their

favorite business and check out the latest offers in a single dashboard. This application runs

on both iOS and Android platforms and encourages user to easily register and accumulate

rewards.

The application includes three main users: Admin/Vendor, User and Owner.

The application owner grants permission to the Admin/Vendor (businesses) to place ads for

customers or users. Admin or Vendors also keep track of the user activities and accordingly

place offers for the users. Vendors can restrict the validity of the offers they place and can

apply desired conditions over the offer redemption.

Users can access the app in two ways: through the native app registration and Facebook

login. It is important to note that each login would display different offers to the users. For

example, Facebook login would display Facebook-tied offers whereas an app login would

display general offers probably by brands other than those reliant on Facebook.

The application features one more important aspect to business promotion – OR code

scanning. Users can manually add offers by scanning the QR code at vendor’s physical

location. After scanning the offer is added to users’ dashboard and is available publically for

other application users.

The application required secret counter of individual QR code scan called punch cards. This

enabled vendors to record the scans made by every individual user without the user noticing

it.

Client expected the following:

Maintaining two way user login: via registration and via Facebook

Maintaining two dashboards (vendor offer dashboard and punch card dashboard)

Adding feeds such as offer details, news etc. to keep user’s engaged

Adding complex, secret counter for QR code scanning called punch cards

Reading punch cards and its quick synchronization with vendor system

Client Requirement

Project Challenges

Team faced the following challenges:

Synchronization of QR code scans with vendor’s application. The sync had to be quick

so that the vendors could quickly send campaign or offers to user’s device.

Page 3: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 3 of 6

Technologies Used

Manpower

Planning

The following development approach was adopted to equip the site with numerous

features and functionality mentioned below:

Development- High level coding standards were followed to hide the complexity of the

application. Google API was used to simplify the QR code scan practice.

Operating System iOS, Android, Linux, PHP, MYSQL, Multi-Server Architecture with

Staging & Production environment through Version controlling releases

Load Balancer, Apache optimization, security and SSL implementation,

scheduler for backups, alert monitoring system integration, server

performance tuning at regular intervals, software firewall configuration

and maintenance, email server configuration etc.

Development Environment Xcode 4.2.1, Core Data Framework, iOS SDK, MVC, Eclipse, C, Linux,

PHP, MYSQL , Google API etc.

Database SQLite, DB Clustering, DB Optimization, High Availability, Master –

Slave Replication, Query optimization, Slow Query Optimization,

scheduler for backups, Alert Monitoring System integration, etc.

Project Leader

1

Developers

2

Designers

1

Quality Assurance Testers

1

Monitoring of barcode scan and punch card calculation.

Dynamically managing design fixed templates: Customer reward dashboard has a

fixed template which had to be dynamically managed while adding deals.

Page 4: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 4 of 6

Simultaneously, practices were adopted for quick sync of QR codes with vendor system

to get response from there.

Designing the application interaction and flow to add user-friendliness and

interactivity.

Syncing existing and newly available data for back-up with our database required

specific attention. This helped in result generation.

The user interface layer was designed for cross-platform compatibility.

Architecture

Application Life Cycle

The application life cycle constitutes the sequence of events that occurs between the launch and

termination of your application. In iPhone/iPad OS, the user launches the application by tapping

its icon on the Home screen. Shortly after the tap occurs, the system displays some transitional

graphics and proceeds to launch your application by calling its main function. From this point on,

the bulk of the initialization work is handed over to UIKit which loads the application’s user

interface and readies its event loop. During the event loop, UIKit coordinates the delivery of

events to your custom objects and responds to commands issued by your application. When the

user performs an action that would cause your application to quit, UIKit notifies your application

and begins the termination process.

The following figure depicts the simplified life cycle of an iPhone application. This diagram shows

the sequence of events that occur from the time the application starts up to the time it quits. At

initialization and termination, UIKit sends specific messages to the application’s delegate object

to let it know what is happening. During the event loop, UIKit dispatches events to your

application’s custom event handlers.

Figure: Application life cycle

Page 5: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 5 of 6

Event Handling Cycle

After the UI Application main function initializes the application it starts the infrastructure needed to

manage the application’s event and drawing cycle which is depicted in the following figure. As the

user interacts with a device, iPhone/iPad OS detects touch events and places them in the

application’s event queue. The event-handling infrastructure of the UI Application object takes each

event off the top of this queue and delivers it to the object that best suited to handle it. For example,

a touch event occurring in a button would be delivered to the corresponding button object. Events

can also be delivered to controller objects and other objects indirectly responsible for handling touch

events in the application.

Figure: The event and drawing cycle

In the iPhone OS Multi-Touch event model, touch data is encapsulated in a single event object (UI

Event). To track individual touches, the event object contains touch objects (UI Touch) one for each

finger that is touching the screen. As the user places fingers on the screen, moves them around and

finally removes them from the screen, the system reports the changes for each finger

in the corresponding touch object.

When it launches an application, the system creates both a process and a single thread for that

application. This initial thread becomes the application’s main thread and is where the UI Application

object sets up the main run loop and configures the application’s event-handling code. Figure shows

the relationship of the event-handling code to the main run loop. Touch events sent by the system

are queued until they can be processed by the application’s main run loop.

Figure: Processing events in the main run loop

Page 6: Free advertising platform for businesses with IOS & Android Apps development

www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd

Page 6 of 6

The MVC Architecture is a combination of Model-View-Controller.

1. Model: The model object knows about all the data that need to be displayed. It is model

who is aware about all the operations that can be applied to transform that object. It only

represents the data of an application. The model represents enterprise data and the business

rules that govern access to and updates of this data. Model is not aware about the

presentation data and how that data will be displayed to the browser.

2. View: The view represents the presentation of the application. The view object refers to the

model. It uses the query methods of the model to obtain the contents and renders it. The

view is not dependent on the application logic. It remains same if there is any modification in

the business logic. In other words, we can say that it is the responsibility of the view's to

maintain the consistency in its presentation when the model changes.

3. Controller: Whenever the user sends a request for something then it always go through the

controller. The controller is responsible for intercepting the requests from view and passes it

to the model for the appropriate action. After the action has been taken on the data, the

controller is responsible for directing the appropriate view to the user. In GUIs, the views

and the controllers often work very closely together.

Development Highlights

This application for iPhone and Android is built around objective C and Java. The main feature of this

application is QR code scanning which was implemented using Google API. Almost all the modules

were developed using foundation, core graphics and UIKIT frameworks. The objective of application

revolves around business promotion while presenting offers to customers. All the view controllers

were linked with controller files project along with the outlets, actions of the UI element. SQLITE

framework was used to maintain and store all the details locally. The site was developed and fully

functional within a span of 4 months.