The Customer is a European company and one of ScienceSoft’s long-term clients. The company is a global leader in image processing with an extensive portfolio of innovative technologies and patents. They offer products and solutions to enhance user experience in all aspects of digital imaging including processing, compression, storage, printing and display of digital images.
The Customer came up with an app concept and started searching for an iOS application development company to develop the app and integrate it with a portable accessory (which would be attached to iOS devices and allow to take professional quality pictures). ScienceSoft was briefed to develop the app in close cooperation with the Customer’s team of developers and perform complete functional testing of the end-product.
Project planning was the main challenge faced by ScienceSoft’s developers due to a strict dependency on the portable device that was created by a third party. Thus, ScienceSoft could develop and test only the features that were already supported by the tool. And since the development was still in progress, the Customer’s business needs and technical requirements changed regularly.
In addition, the project required considerable management skills as a number of teams working on different tasks needed timely and efficient coordination.
ScienceSoft’s team started off with the development of two independent applications. One was a UI application for streaming pictures from the iOS-device viewfinder. The other provided interaction between the iOS layers and the portable tool thanks to the MFi Program allowing to work with electronic accessories that connected to iOS devices. Consequently, the applications were merged into one, so that the team could focus on the integrity of the end-product. While the specification was constantly changing, ScienceSoft’s team worked along with the Customer’s team on several features of the ultimate tool:
- Full set of shooting modes such as portrait, landscape, sports, burst and others, as well as exposure settings, namely aperture, shutter speed and ISO
- Image gallery management
- Social sharing
- Cloud-based solution for image storage and processing
- Camera firmware updates
- Remote retouching service
The portable accessory could be attached to a device only using a Lightning cable. This essentially impeded testing of the final solution (the mobile app together with the portable tool connected to an iOS device), as it was impossible to run automated tests on a device disconnected from the Mac computer.
The team investigated the ways of testing the end-product and at the same time tested the mobile application in a standalone mode. ScienceSoft’s dedicated team applied Calabash framework, a well-established and proven tool to write and execute automated tests for mobile apps. When the end-product was fully developed, Calabash was replaced by XCUI Test, a testing tool for iOS hybrid and native apps, that fit the testing needs better. The dedicated team developed a large number of repetitive (and constantly updated) testing scenarios that were automated and run to detect bugs.
Though ScienceSoft did not play the key role in the camera firmware development, the dedicated team put a considerable amount of effort into reporting the bugs to the third party.
Cooperating with ScienceSoft, the Customer delivered an innovative image processing solution for iOS devices. The product saw several releases and was awarded as an innovative image processing solution.
Technologies and Tools
iOS native development: Core Data, Core Image, Core Motion, Photos, Quartz Core, External Accessory, AV Foundation, Media Player, CFNetwork
Testing: Calabash (automated testing), XCUITest (automated testing) TestRail (test case management system), Jira (bug-tracking system), Tera Term and ZOC (terminal emulators)