www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 1 of 6
Case Study
Workflow Automation App for a Construction
Company
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 2 of 6
Client is a leading construction company that required a Quality and Control iPhone application to
maintain transparency across geographically diverse offices. This application helps diversely located
offices to work in sync with each other, track progress and lend a helping hand. Each field inspector
is assigned to each office for tracking the progress of the tasks and its checkpoints and act
according to the status.
This application helps the company to enhance team abilities and deliver every piece of work as per
the schedule. The application was expected to be extremely user-friendly and capable of handling
multiple requests at a time. The Application manages the schedule & identifies non-compliant
constructions.
Client mainly required the following features:
 Dynamic search: This application allows users to search as per their own fields of interest
 Allows capturing and adding multiple images at run time
 Uncompromised performance even when dealing with huge database
 Images and other data sync with geo-location
 Clean design and application architecture
 Images to be stored in virtual folder to avoid reuse
 Integrity between various app sections
 Integration of easy yet advanced communication methodology
 Icons to define checkpoints and task-lists
 Construction QA inspectors and consultants
 Photo integrity via GPS and auto time stamping
Client Requirement
Project Challenges
Team faced the following challenges:
 Client required user-defined search facility for which different ways had to be adopted
for defining protocols for universal search.
 Calling Camera APIs at the run-time to add multiple high graphics images along with
the attributes such as date, time, filename, type, location etc.
 Icon-based checkpoints and task-lists.
 It was difficult to sync the timeframes and activities.
 Attractive application with limited color choice. We used a lot of combinations of the
desired colors.
 Clean design and architecture of the app.
 Allowing to dynamically delete the images.
 No images re-use which means images must not reside in default device gallery. It
must reside in virtual folder which releases the memory once photos are uploaded.
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 be low:
 Introduced high level of server and data fetching technology.
 Research and analysis were scheduled to get the actual level of data output which were in the
form of different verticals and business logics.
 Development – High Level Coding Standards were followed for managing backup data volume.
Simultaneously, synchronization with server for recent data modulations was also performed.
 Syncing existing and newly available data for backup with our database required specific
attention. This helped in result generation.
Operating System &
Server Management
iOS, Multi-Server Architecture with Staging & Production Environment
through Version Controlling releases, Server Optimization, Security &
SSL Implementation, Scheduler for Back-ups, Alert Monitoring System
Integration, Server Performance Tuning at regular intervals, Software
Firewall Configuration & Maintenance
Development Tools &
Environments
Xcode 4.2.1, SQLite Framework, Objective C, Core Data Framework,
iOS SDK 5.0, MVC etc.
Database SQL Lite Database Server, DB Clustering, DB Optimization, Master
Slave Replication, Query Optimization, Scheduler for Backups
Project Leader 1
Developers 2
Designers 1
Quality Assurance Testers 1
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 4 of 6
 Maintained consistency in Graphical appearance with the help of given wireframe.
 Milestones were defined to complete each inter-linked assignment. Continuous data
synchronization between the mobile device and server was required at every interval.
Architecture
 Application Life Cycle
The application life cycle constitutes the sequence of events that occurs between the launch and
termination of the 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 the application by calling its main function. From this point on, the
bulk of the initialization work is handed over to UI Kit which loads the application’s user interface and
readies its event loop. During the event loop, UI Kit coordinates the delivery of events to the custom
objects and responds to commands issued by the application. When the user performs an action that
would cause your application to quit, UI Kit 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, UI Kit sends specific messages to the application’s delegate object to
let it know what is happening. During the event loop, UI Kit dispatches events to your application’s
custom event handlers.
Figure: Application life cycle
 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
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd Page 5 of 6
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
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 is built around objective C and core data framework. The design for
each screen is implemented using the storyboard framework which is newly integrated for iOS
5.0. This application was also made compatible to iOS SDK 5.1 at a later stage. Almost all the
modules are developed using foundation, core graphics and UI KIT frameworks. All the user
interface items are placed in view controllers and are linked with the controller files project along
with the outlets, actions of the UI element. Geo-fencing technology was used at many stages.
Core data framework is used to maintain and store all the details across the project scope. The
site was developed and fully functional within a span of 3 months.

Application for Data Sync Between Different geo Locations

  • 1.
    www.brainvire.com | ©2013 Brainvire Infotech Pvt. Ltd Page 1 of 6 Case Study Workflow Automation App for a Construction Company
  • 2.
    www.brainvire.com | ©2013 Brainvire Infotech Pvt. Ltd Page 2 of 6 Client is a leading construction company that required a Quality and Control iPhone application to maintain transparency across geographically diverse offices. This application helps diversely located offices to work in sync with each other, track progress and lend a helping hand. Each field inspector is assigned to each office for tracking the progress of the tasks and its checkpoints and act according to the status. This application helps the company to enhance team abilities and deliver every piece of work as per the schedule. The application was expected to be extremely user-friendly and capable of handling multiple requests at a time. The Application manages the schedule & identifies non-compliant constructions. Client mainly required the following features:  Dynamic search: This application allows users to search as per their own fields of interest  Allows capturing and adding multiple images at run time  Uncompromised performance even when dealing with huge database  Images and other data sync with geo-location  Clean design and application architecture  Images to be stored in virtual folder to avoid reuse  Integrity between various app sections  Integration of easy yet advanced communication methodology  Icons to define checkpoints and task-lists  Construction QA inspectors and consultants  Photo integrity via GPS and auto time stamping Client Requirement Project Challenges Team faced the following challenges:  Client required user-defined search facility for which different ways had to be adopted for defining protocols for universal search.  Calling Camera APIs at the run-time to add multiple high graphics images along with the attributes such as date, time, filename, type, location etc.  Icon-based checkpoints and task-lists.  It was difficult to sync the timeframes and activities.  Attractive application with limited color choice. We used a lot of combinations of the desired colors.  Clean design and architecture of the app.  Allowing to dynamically delete the images.  No images re-use which means images must not reside in default device gallery. It must reside in virtual folder which releases the memory once photos are uploaded.
  • 3.
    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 be low:  Introduced high level of server and data fetching technology.  Research and analysis were scheduled to get the actual level of data output which were in the form of different verticals and business logics.  Development – High Level Coding Standards were followed for managing backup data volume. Simultaneously, synchronization with server for recent data modulations was also performed.  Syncing existing and newly available data for backup with our database required specific attention. This helped in result generation. Operating System & Server Management iOS, Multi-Server Architecture with Staging & Production Environment through Version Controlling releases, Server Optimization, Security & SSL Implementation, Scheduler for Back-ups, Alert Monitoring System Integration, Server Performance Tuning at regular intervals, Software Firewall Configuration & Maintenance Development Tools & Environments Xcode 4.2.1, SQLite Framework, Objective C, Core Data Framework, iOS SDK 5.0, MVC etc. Database SQL Lite Database Server, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups Project Leader 1 Developers 2 Designers 1 Quality Assurance Testers 1
  • 4.
    www.brainvire.com | ©2013 Brainvire Infotech Pvt. Ltd Page 4 of 6  Maintained consistency in Graphical appearance with the help of given wireframe.  Milestones were defined to complete each inter-linked assignment. Continuous data synchronization between the mobile device and server was required at every interval. Architecture  Application Life Cycle The application life cycle constitutes the sequence of events that occurs between the launch and termination of the 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 the application by calling its main function. From this point on, the bulk of the initialization work is handed over to UI Kit which loads the application’s user interface and readies its event loop. During the event loop, UI Kit coordinates the delivery of events to the custom objects and responds to commands issued by the application. When the user performs an action that would cause your application to quit, UI Kit 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, UI Kit sends specific messages to the application’s delegate object to let it know what is happening. During the event loop, UI Kit dispatches events to your application’s custom event handlers. Figure: Application life cycle  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
  • 5.
    www.brainvire.com | ©2013 Brainvire Infotech Pvt. Ltd Page 5 of 6 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
  • 6.
    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 is built around objective C and core data framework. The design for each screen is implemented using the storyboard framework which is newly integrated for iOS 5.0. This application was also made compatible to iOS SDK 5.1 at a later stage. Almost all the modules are developed using foundation, core graphics and UI KIT frameworks. All the user interface items are placed in view controllers and are linked with the controller files project along with the outlets, actions of the UI element. Geo-fencing technology was used at many stages. Core data framework is used to maintain and store all the details across the project scope. The site was developed and fully functional within a span of 3 months.