Client required a track pad that could work in any offline environment. Even in areas where there are no wi-fi connections like parking lots, all data should be saved regardless of the connection status. The already built iPad app needed to be enhanced to be utilized for IOS Mobile Based Incident Management System with the following features:
- Automated data syncing with server
- Customization in long form
- Data merging through iPad app
The team faced the following challenges
- Developing an app for iPad platform
- Automated syncing with the server every 20 seconds came as a challenge
- Customization of Long form as per the requirement and also implemented Minor Touch-ups and Data merging functionality.
|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||PHP5+, iOS SDK, Xcode, Objective C, Core Data Framework etc.|
|Database||MSSQL Database Server (Web), Symbian Native Database (Mobile), DB Clustering, DB Optimization, Master Slave Replication, Query Optimization, Scheduler for Backups|
|Quality Assurance Testers||1|
Keeping in mind the enormous nature of the application, the following 4 tier development approach was used:
- Database Layer: containing SQLite Mobile Database and MYSQL Database.
- Interface Layer and Database Abstraction Layer: to enable converting of data between incompatible type systems in databases as well as accessing data from the database respectively.
- Business Logic Layer: consisting of all the business logic procedures for varied modules.
- User Interface Layer: forms the Graphical User Interface of the iPad application.
Objective C was used for the development of ISS Trackpad. The modules that were developed in objective C could be directly executed from the UI layer. The Objective-C files consisted of all the business logic that were used for modules like Save (Add/Update), Delete, Get Single Object, Get Multiple Objects for Listing. They were specially designed to be capable of handling many more logics which were not related to the database.
An interface translating the object logic to the relational logic was used to communicate with the relational databases in an object-oriented manner in order to most effectively access the database in an object-oriented context. An intermediary abstraction layer was created for accessing data from the database. The UI layer was kept free of any business logic with images, applications and data being called from their respective servers.
The application was equipped with a robust architecture and incidences were automatically synced with the server application. In this manner, app the web and application incidences will be in sync and acknowledged incidences will also be showed on the iPad app.
The sync process runs as a background thread at the start of the app for a certain time period. . Custom fields in the Long form will be updated as customized in the Web CMS form. The form was generated from the parsed web services with custom form fields as attributes.