SlideShare a Scribd company logo
1 of 8
Download to read offline
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 1 of 1
Case Study
Workflow Automation App for a Construction
Company
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 2 of 2
Client is a leading construction company that required an 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.
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
Client Requirement
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 3 of 3
Technologies Used
Xcode 4.2.1 Xcode is a tool, also called as IDE, used to develop iOS and Mac
applications. It is a main component of Xcode toolset. It groups most
of the tools needed to develop software in a streamlined and
interactive manner.
Sqlite Framework This framework allows developers to quickly create and use a local
SQLITE within iPhone, iPad, iPod devices.
iOS sdk 5.0 iOS is a software development kit used to develop iPhone, iPad
applications specific to OS versions as required by the user.
Core Data Framework The Core Data framework provides generalized and automated
solutions to common tasks associated with object life-cycle and object
graph management, including persistence.
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 image 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 4 of 4
Manpower
Planning
The following development approach was adopted to equip the site with numerous
features and functionality mentioned before:
• 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.
• 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.
Project Leader 1
Developers 2
Designers 1
Quality Assurance Testers 1
www.brainvire.com
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 af
graphics and proceeds to launch your application by calling its
bulk of the initialization work is handed over to UIKit, which loads the application’s
readies its event loop. During the event loop, UIKit coordinates the delivery of ev
objects and responds to commands issued by your application. When the
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
it know what is happening. During the event loop, UIKit dispatches events to your application’s
custom event handlers.
Figure: Application life cycle
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd
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
readies its event loop. During the event loop, UIKit coordinates the delivery of ev
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
The following figure depicts the simplified life cycle of an iPhone application. This diagram shows the
ts 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
it know what is happening. During the event loop, UIKit dispatches events to your application’s
Ltd Page 5 of 5
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
ter the tap occurs, the system displays some transitional
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
user performs an action
that would cause your application to quit, UIKit notifies your application and begins the termination
The following figure depicts the simplified life cycle of an iPhone application. This diagram shows the
ts 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
www.brainvire.com
• Event Handling Cycle
After the UIApplication 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 detec
application’s event queue. The event
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
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 eve
(UIEvent). To track individual touches, the event object contains touch objects (
each finger that is touching the screen. As the user places fingers on the screen, moves
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 UIApplication
object sets up the main run loop and configures the application’s event
the relationship of the event-handling code to the main run loop. Touch
are queued until they can be processed by the application’s main run loop
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd
After the UIApplication 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 UIApplication object takes each
event off the top of this queue and delivers it to the object that best suited to handle it. For example,
nt occurring in a button would be delivered to the corresponding button object. Events
controller objects and other objects indirectly responsible for handling touch
Touch event model, touch data is encapsulated in a single eve
). To track individual touches, the event object contains touch objects (
each finger that is touching the screen. As the user places fingers on the screen, moves
around, and finally removes them from the screen, the system reports the changes for each finger
When it launches an application, the system creates both a process and a single thread for that
initial thread becomes the application’s main thread and is where the UIApplication
object sets up the main run loop and configures the application’s event-handling code. Figure shows
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.
Ltd Page 6 of 6
After the UIApplication 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
ts touch events and places them in the
handling infrastructure of the UIApplication object takes each
event off the top of this queue and delivers it to the object that best suited to handle it. For example,
nt occurring in a button would be delivered to the corresponding button object. Events
and other objects indirectly responsible for handling touch
Touch event model, touch data is encapsulated in a single event object
). To track individual touches, the event object contains touch objects (UITouch), 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
When it launches an application, the system creates both a process and a single thread for that
initial thread becomes the application’s main thread and is where the UIApplication
handling code. Figure shows
events sent by the system
www.brainvire.com
Figure: Processing events in the main run loop
• The MVC Architecture is a combination of Model
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
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 refe
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
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
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 clo
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd
events in the main run loop
The MVC Architecture is a combination of Model-View-Controller.
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
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.
The view represents the presentation of the application. The view object refe
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.
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.
Ltd Page 7 of 7
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
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
responsibility of the view's to
Whenever the user sends a request for something then it always go through 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
www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 8 of 8
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 UIKIT 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.

More Related Content

Similar to Workflow automation i phone application for a construction company

Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsMike Taylor
 
Community App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionCommunity App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionMike Taylor
 
Community App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionCommunity App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionMike Taylor
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppMike Taylor
 
Password security system for websites
Password security system for websitesPassword security system for websites
Password security system for websitesMike Taylor
 
Loyalty & Rewards Points Application on your mobile phone, iPhone, Android
Loyalty & Rewards Points Application on your mobile phone, iPhone, AndroidLoyalty & Rewards Points Application on your mobile phone, iPhone, Android
Loyalty & Rewards Points Application on your mobile phone, iPhone, AndroidMike Taylor
 
Free advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentFree advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentMike Taylor
 
Free advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentFree advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentMike Taylor
 
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled Grey Matter India Technologies PVT LTD
 
Case study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionCase study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionGrey Matter India Technologies PVT LTD
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdfruvabebe
 
In-Flight Infotainment and e-Shopping App | iPad App for shopping
In-Flight Infotainment and e-Shopping App | iPad App for shoppingIn-Flight Infotainment and e-Shopping App | iPad App for shopping
In-Flight Infotainment and e-Shopping App | iPad App for shoppingMike Taylor
 
Latest proposal project info zakat
Latest proposal project info zakatLatest proposal project info zakat
Latest proposal project info zakatUmmi Zakiah
 
Gps based search coupons on map view ios, android mobile application
Gps based search coupons on map view   ios, android mobile applicationGps based search coupons on map view   ios, android mobile application
Gps based search coupons on map view ios, android mobile applicationMike Taylor
 
Home Security App Development.docx
Home Security App Development.docxHome Security App Development.docx
Home Security App Development.docxCMARIX TechnoLabs
 
I phone programming project report
I phone programming project reportI phone programming project report
I phone programming project reportDhara Shah
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewSammy Sunny
 

Similar to Workflow automation i phone application for a construction company (20)

Application for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo LocationsApplication for Data Sync Between Different geo Locations
Application for Data Sync Between Different geo Locations
 
Community App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionCommunity App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural Interaction
 
Community App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural InteractionCommunity App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural Interaction
 
Real-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet AppReal-time Text Audio to Video PPT Converter Tablet App
Real-time Text Audio to Video PPT Converter Tablet App
 
Password security system for websites
Password security system for websitesPassword security system for websites
Password security system for websites
 
Loyalty & Rewards Points Application on your mobile phone, iPhone, Android
Loyalty & Rewards Points Application on your mobile phone, iPhone, AndroidLoyalty & Rewards Points Application on your mobile phone, iPhone, Android
Loyalty & Rewards Points Application on your mobile phone, iPhone, Android
 
Free advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentFree advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps development
 
Free advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps developmentFree advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps development
 
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled Case study on Movie Quiz App For IPhone and IPad –  Facebook Enabled
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
 
Case study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversionCase study on tablet application for real time video, audio and ppt conversion
Case study on tablet application for real time video, audio and ppt conversion
 
ios basics
ios basicsios basics
ios basics
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdf
 
Introduction of Xcode
Introduction of XcodeIntroduction of Xcode
Introduction of Xcode
 
watch_kit_v_1.0
watch_kit_v_1.0watch_kit_v_1.0
watch_kit_v_1.0
 
In-Flight Infotainment and e-Shopping App | iPad App for shopping
In-Flight Infotainment and e-Shopping App | iPad App for shoppingIn-Flight Infotainment and e-Shopping App | iPad App for shopping
In-Flight Infotainment and e-Shopping App | iPad App for shopping
 
Latest proposal project info zakat
Latest proposal project info zakatLatest proposal project info zakat
Latest proposal project info zakat
 
Gps based search coupons on map view ios, android mobile application
Gps based search coupons on map view   ios, android mobile applicationGps based search coupons on map view   ios, android mobile application
Gps based search coupons on map view ios, android mobile application
 
Home Security App Development.docx
Home Security App Development.docxHome Security App Development.docx
Home Security App Development.docx
 
I phone programming project report
I phone programming project reportI phone programming project report
I phone programming project report
 
Apple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical OverviewApple Watch and WatchKit - A Technical Overview
Apple Watch and WatchKit - A Technical Overview
 

More from Mike Taylor

Latest trends for mobile apps development
Latest trends for mobile apps developmentLatest trends for mobile apps development
Latest trends for mobile apps developmentMike Taylor
 
Features of B2C Travel eCommerce system
Features of B2C Travel eCommerce systemFeatures of B2C Travel eCommerce system
Features of B2C Travel eCommerce systemMike Taylor
 
Steps to Grow Your eCommerce Business
Steps to Grow Your eCommerce BusinessSteps to Grow Your eCommerce Business
Steps to Grow Your eCommerce BusinessMike Taylor
 
Reasons to choose php for web application development
Reasons to choose php for web application developmentReasons to choose php for web application development
Reasons to choose php for web application developmentMike Taylor
 
Unique Shopoping Experience with eCommerce Gamification Extension
Unique Shopoping Experience with eCommerce Gamification Extension Unique Shopoping Experience with eCommerce Gamification Extension
Unique Shopoping Experience with eCommerce Gamification Extension Mike Taylor
 
Android Application Development with Apple's Swift Technology
Android Application Development with Apple's Swift TechnologyAndroid Application Development with Apple's Swift Technology
Android Application Development with Apple's Swift TechnologyMike Taylor
 
New Amazing Things about AngularJS 2.0
New Amazing Things about AngularJS 2.0New Amazing Things about AngularJS 2.0
New Amazing Things about AngularJS 2.0Mike Taylor
 
Gamification - The Trending Things of eCommerce Business
Gamification - The Trending Things of eCommerce BusinessGamification - The Trending Things of eCommerce Business
Gamification - The Trending Things of eCommerce BusinessMike Taylor
 
Gamification - Enhance Customers shopping experience with latest Big things i...
Gamification - Enhance Customers shopping experience with latest Big things i...Gamification - Enhance Customers shopping experience with latest Big things i...
Gamification - Enhance Customers shopping experience with latest Big things i...Mike Taylor
 
Benefit of Web Application Development with Zend Framework
Benefit of Web Application Development with Zend FrameworkBenefit of Web Application Development with Zend Framework
Benefit of Web Application Development with Zend FrameworkMike Taylor
 
The Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentThe Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentMike Taylor
 
Most useful features for windows 10 developer
Most useful features for windows 10 developerMost useful features for windows 10 developer
Most useful features for windows 10 developerMike Taylor
 
Have a look Google next operating system update : Android Marshmallow
Have a look Google next operating system update : Android MarshmallowHave a look Google next operating system update : Android Marshmallow
Have a look Google next operating system update : Android MarshmallowMike Taylor
 
Top 20 Questions Ask Before Hire Android App Development Company
Top 20 Questions Ask Before Hire Android App Development CompanyTop 20 Questions Ask Before Hire Android App Development Company
Top 20 Questions Ask Before Hire Android App Development CompanyMike Taylor
 
Multi vendor marketplace extension
Multi vendor marketplace extensionMulti vendor marketplace extension
Multi vendor marketplace extensionMike Taylor
 
25 Famous Websites using Wordpress
25 Famous Websites using Wordpress25 Famous Websites using Wordpress
25 Famous Websites using WordpressMike Taylor
 
Bring Healthcare to fingertips - How Apps changed Medical Industry
Bring Healthcare to fingertips - How Apps changed Medical IndustryBring Healthcare to fingertips - How Apps changed Medical Industry
Bring Healthcare to fingertips - How Apps changed Medical IndustryMike Taylor
 
Have you played this Symfony? Why Symfony is great choice for Web development
Have you played this Symfony? Why Symfony is great choice for Web developmentHave you played this Symfony? Why Symfony is great choice for Web development
Have you played this Symfony? Why Symfony is great choice for Web developmentMike Taylor
 
9 vitals in business websites
9 vitals in business websites9 vitals in business websites
9 vitals in business websitesMike Taylor
 
How Technology Can Change Real Estate Industry In 2015
How Technology Can Change Real Estate Industry In 2015How Technology Can Change Real Estate Industry In 2015
How Technology Can Change Real Estate Industry In 2015Mike Taylor
 

More from Mike Taylor (20)

Latest trends for mobile apps development
Latest trends for mobile apps developmentLatest trends for mobile apps development
Latest trends for mobile apps development
 
Features of B2C Travel eCommerce system
Features of B2C Travel eCommerce systemFeatures of B2C Travel eCommerce system
Features of B2C Travel eCommerce system
 
Steps to Grow Your eCommerce Business
Steps to Grow Your eCommerce BusinessSteps to Grow Your eCommerce Business
Steps to Grow Your eCommerce Business
 
Reasons to choose php for web application development
Reasons to choose php for web application developmentReasons to choose php for web application development
Reasons to choose php for web application development
 
Unique Shopoping Experience with eCommerce Gamification Extension
Unique Shopoping Experience with eCommerce Gamification Extension Unique Shopoping Experience with eCommerce Gamification Extension
Unique Shopoping Experience with eCommerce Gamification Extension
 
Android Application Development with Apple's Swift Technology
Android Application Development with Apple's Swift TechnologyAndroid Application Development with Apple's Swift Technology
Android Application Development with Apple's Swift Technology
 
New Amazing Things about AngularJS 2.0
New Amazing Things about AngularJS 2.0New Amazing Things about AngularJS 2.0
New Amazing Things about AngularJS 2.0
 
Gamification - The Trending Things of eCommerce Business
Gamification - The Trending Things of eCommerce BusinessGamification - The Trending Things of eCommerce Business
Gamification - The Trending Things of eCommerce Business
 
Gamification - Enhance Customers shopping experience with latest Big things i...
Gamification - Enhance Customers shopping experience with latest Big things i...Gamification - Enhance Customers shopping experience with latest Big things i...
Gamification - Enhance Customers shopping experience with latest Big things i...
 
Benefit of Web Application Development with Zend Framework
Benefit of Web Application Development with Zend FrameworkBenefit of Web Application Development with Zend Framework
Benefit of Web Application Development with Zend Framework
 
The Importance Things of Full Stack Development
The Importance Things of Full Stack DevelopmentThe Importance Things of Full Stack Development
The Importance Things of Full Stack Development
 
Most useful features for windows 10 developer
Most useful features for windows 10 developerMost useful features for windows 10 developer
Most useful features for windows 10 developer
 
Have a look Google next operating system update : Android Marshmallow
Have a look Google next operating system update : Android MarshmallowHave a look Google next operating system update : Android Marshmallow
Have a look Google next operating system update : Android Marshmallow
 
Top 20 Questions Ask Before Hire Android App Development Company
Top 20 Questions Ask Before Hire Android App Development CompanyTop 20 Questions Ask Before Hire Android App Development Company
Top 20 Questions Ask Before Hire Android App Development Company
 
Multi vendor marketplace extension
Multi vendor marketplace extensionMulti vendor marketplace extension
Multi vendor marketplace extension
 
25 Famous Websites using Wordpress
25 Famous Websites using Wordpress25 Famous Websites using Wordpress
25 Famous Websites using Wordpress
 
Bring Healthcare to fingertips - How Apps changed Medical Industry
Bring Healthcare to fingertips - How Apps changed Medical IndustryBring Healthcare to fingertips - How Apps changed Medical Industry
Bring Healthcare to fingertips - How Apps changed Medical Industry
 
Have you played this Symfony? Why Symfony is great choice for Web development
Have you played this Symfony? Why Symfony is great choice for Web developmentHave you played this Symfony? Why Symfony is great choice for Web development
Have you played this Symfony? Why Symfony is great choice for Web development
 
9 vitals in business websites
9 vitals in business websites9 vitals in business websites
9 vitals in business websites
 
How Technology Can Change Real Estate Industry In 2015
How Technology Can Change Real Estate Industry In 2015How Technology Can Change Real Estate Industry In 2015
How Technology Can Change Real Estate Industry In 2015
 

Recently uploaded

Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetDenis Gagné
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxWorkforce Group
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...lizamodels9
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...Suhani Kapoor
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableDipal Arora
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMANIlamathiKannappan
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMRavindra Nath Shukla
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communicationskarancommunications
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Neil Kimberley
 

Recently uploaded (20)

Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature SetCreating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
Creating Low-Code Loan Applications using the Trisotech Mortgage Feature Set
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
Call Girls In DLf Gurgaon ➥99902@11544 ( Best price)100% Genuine Escort In 24...
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
VIP Call Girls Gandi Maisamma ( Hyderabad ) Phone 8250192130 | ₹5k To 25k Wit...
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service AvailableCall Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Pune Just Call 9907093804 Top Class Call Girl Service Available
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
A DAY IN THE LIFE OF A SALESMAN / WOMAN
A DAY IN THE LIFE OF A  SALESMAN / WOMANA DAY IN THE LIFE OF A  SALESMAN / WOMAN
A DAY IN THE LIFE OF A SALESMAN / WOMAN
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Monte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSMMonte Carlo simulation : Simulation using MCSM
Monte Carlo simulation : Simulation using MCSM
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Pharma Works Profile of Karan Communications
Pharma Works Profile of Karan CommunicationsPharma Works Profile of Karan Communications
Pharma Works Profile of Karan Communications
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023Mondelez State of Snacking and Future Trends 2023
Mondelez State of Snacking and Future Trends 2023
 

Workflow automation i phone application for a construction company

  • 1. www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 1 of 1 Case Study Workflow Automation App for a Construction Company
  • 2. www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 2 of 2 Client is a leading construction company that required an 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. 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 Client Requirement
  • 3. www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 3 of 3 Technologies Used Xcode 4.2.1 Xcode is a tool, also called as IDE, used to develop iOS and Mac applications. It is a main component of Xcode toolset. It groups most of the tools needed to develop software in a streamlined and interactive manner. Sqlite Framework This framework allows developers to quickly create and use a local SQLITE within iPhone, iPad, iPod devices. iOS sdk 5.0 iOS is a software development kit used to develop iPhone, iPad applications specific to OS versions as required by the user. Core Data Framework The Core Data framework provides generalized and automated solutions to common tasks associated with object life-cycle and object graph management, including persistence. 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 image 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
  • 4. www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 4 of 4 Manpower Planning The following development approach was adopted to equip the site with numerous features and functionality mentioned before: • 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. • 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. Project Leader 1 Developers 2 Designers 1 Quality Assurance Testers 1
  • 5. www.brainvire.com 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 af graphics and proceeds to launch your application by calling its bulk of the initialization work is handed over to UIKit, which loads the application’s readies its event loop. During the event loop, UIKit coordinates the delivery of ev objects and responds to commands issued by your application. When the 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 it know what is happening. During the event loop, UIKit dispatches events to your application’s custom event handlers. Figure: Application life cycle www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd 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 readies its event loop. During the event loop, UIKit coordinates the delivery of ev 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 The following figure depicts the simplified life cycle of an iPhone application. This diagram shows the ts 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 it know what is happening. During the event loop, UIKit dispatches events to your application’s Ltd Page 5 of 5 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 ter the tap occurs, the system displays some transitional 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 user performs an action that would cause your application to quit, UIKit notifies your application and begins the termination The following figure depicts the simplified life cycle of an iPhone application. This diagram shows the ts 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
  • 6. www.brainvire.com • Event Handling Cycle After the UIApplication 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 detec application’s event queue. The event 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 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 eve (UIEvent). To track individual touches, the event object contains touch objects ( each finger that is touching the screen. As the user places fingers on the screen, moves 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 UIApplication object sets up the main run loop and configures the application’s event the relationship of the event-handling code to the main run loop. Touch are queued until they can be processed by the application’s main run loop www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd After the UIApplication 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 UIApplication object takes each event off the top of this queue and delivers it to the object that best suited to handle it. For example, nt occurring in a button would be delivered to the corresponding button object. Events controller objects and other objects indirectly responsible for handling touch Touch event model, touch data is encapsulated in a single eve ). To track individual touches, the event object contains touch objects ( each finger that is touching the screen. As the user places fingers on the screen, moves around, and finally removes them from the screen, the system reports the changes for each finger When it launches an application, the system creates both a process and a single thread for that initial thread becomes the application’s main thread and is where the UIApplication object sets up the main run loop and configures the application’s event-handling code. Figure shows 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. Ltd Page 6 of 6 After the UIApplication 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 ts touch events and places them in the handling infrastructure of the UIApplication object takes each event off the top of this queue and delivers it to the object that best suited to handle it. For example, nt occurring in a button would be delivered to the corresponding button object. Events and other objects indirectly responsible for handling touch Touch event model, touch data is encapsulated in a single event object ). To track individual touches, the event object contains touch objects (UITouch), 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 When it launches an application, the system creates both a process and a single thread for that initial thread becomes the application’s main thread and is where the UIApplication handling code. Figure shows events sent by the system
  • 7. www.brainvire.com Figure: Processing events in the main run loop • The MVC Architecture is a combination of Model 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 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 refe 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 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 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 clo www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd events in the main run loop The MVC Architecture is a combination of Model-View-Controller. 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 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. The view represents the presentation of the application. The view object refe 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. 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. Ltd Page 7 of 7 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 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 responsibility of the view's to Whenever the user sends a request for something then it always go through 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
  • 8. www.brainvire.com | © 2013 Brainvire Infotech Pvt Ltd Page 8 of 8 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 UIKIT 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.