Case Study Community App for Promoting Cross-Cultural Interaction
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 1 of 6
Client
Requirement
Client believes that cross-cultural interaction positively impacts the world. Out of this belief, he wanted an iOS-based application that would help people from various cultural beliefs to connect with each other and share cultural information such as details about events, venues, professionals and its significance. This application seamlessly integrates with popular social networking sites such as Facebook. It includes features ranging from basic social networking, blogging to EVPro (Event, Venues and Professionals) creation. Further, client expected the following:
One-click access to Facebook Chat. Seamless integration with various chat tools such as Gtalk and the application’s own chat tool. Streaming Radio. Blogging, Reviewing, Commenting, Feedback etc. Quick contact to business via. GSM calling features. Adding reminders for events. Connecting to emails to connect with members for advice or exchange of information. Application’s ability to link mobile for receiving payments. Ability to fetch geo-location and send push notification. Adding multiple photos. Continuous availability via. application log-in and advanced remembering features.
The website version of this application is enormous exhibiting multiple functional modules. Client expected all these modules which formed an enormous structure of the website to be seamlessly integrated into an iPad and iPhone application.
Project
Challenges
Team faced the following challenges:
Replicating the massive website structure to an iOS-based application has been the biggest challenge in the project. We had to incorporate all modules while eliminating the risks pertaining to system crash, memory leak etc.
Constant synchronization between web and mobile app without affecting the performance was a challenge.
Harmonizing the simultaneous execution of various integrated features and options while maintaining consistency.
Load balance and smooth performance.
Configuring application to send mails from various modules.
To display each field and record available on the users’ web account on our mobile application.
Continuous communication with user’s social network authentication.
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 2 of 6
Technologies Operating System & Server Management
Development Tools & Environments
Used 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 Xcode 4.2.1, SQLite Framework, iOS SDK 5.0, Objective C, Core Data Framework etc. MYSQL Database Server, DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups
Database
Manpower Project Leader
1
Developers
2
Designers
1
Quality Assurance Testers
1
Planning The following development approach was adopted to equip the site with numerous features and functionality mentioned below:
Introduces high level of server and data fetching technology.
Research and analysis has been scheduled to get the actual level of output of data which is in a form of different verticals and business logics.
Development – High Level Coding Standards has been followed for managing backup data volume simultaneously synchronization with server for recent updates.
Precisely need to concentrate in sync with existing and newly available data for backup with our database for result to get generated.
The User Interface Layer which forms the Graphical User Interface of the website. www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 3 of 6
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 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 your custom objects and responds to commands issued by your 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 can also be delivered to controller objects and other objects indirectly responsible for handling touch events in the application .
www.brainvire.com | © 2013 Brainvire Infotech Pvt. Ltd
Page 4 of 6
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 5 of 6
Development Highlights This application for iPad 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 that are linked with the controller files project along with the outlets, actions of the UI element. Geo-fencing technology was used at different stages. Integration of various 3rd party tools was required. The site was developed and fully functional within a span of 5 months.
www.brainvire.com | Š 2013 Brainvire Infotech Pvt. Ltd
Page 6 of 6