Test Automation

Asynchronous iOS Testing in Swift with XCWaiter

Apple recently announced Swift 3.1 development snapshot  and XCode 8.3 for the developers. There are couple of handy classes added to the XCTest framework to enable Asynchronous Testing for iOS and macOS applications. In this post, we will see how we can perform asynchronous testing using XCWaiter. Swift 3.1-Dev Newly added classes are available in Xcode 8.3 which is currently available Read more…

Build Automation

Swift Dependency Management for iOS

Dependency/Package Manager Most modern languages come with an official solution for code distribution. In today’s world of modern mobile development, it is essential to re-use the code already written by developers. Code reuse can be achieved by creating and distributing the packages from central repository. A package manager is a tool that simplifies the process of working with code from multiple sources. Typical Read more…

Test Automation

Beginers Guide to iOS Continuous Integration with Xcode Server

Apple has very comprehensive documentation on Xcode Server and Continuous Integration with OSX Server (app) and Xcode Server (Xcode within the server app). You might be wondering what’s the point of this post if everything is documented in the guide. However Apple’s guide still reads as OSX Server than macOS Server but Apple has released new macOS Server (5.2) with some improvements in the Automated Xcode Builds. Anyway this Read more…

iOS DevOps

Stabilizing the CI By Re-runing Flaky iOS XCUI Tests

Apple has released Xcode UI Testing a.k.a XCUI Test framework at WWDC 2015 which enable UI testing of iOS application straight from Xcode without any third party tools like Appium, Calabash or KIF.  These tools that call themselves mobile testing frameworks but they’re actually little more than wrappers to UIAutomation or Instruments.  The release of iOS 10 has broken all these open-source mobile test Read more…

iOS DevOps

Top 5 reasons for Continuous Integration failure

Agile software development can’t be perfect without effective Continuous Integration process. Continuous Integration a.k.a CI is a process of continuously analyse, build, test and deploy software. Continuous Integration checks an internal quality of the code and tests the business logic of the product before we release it to the production. Ideally, we shouldn’t allow software to deploy to the product when the Read more…

iOS DevOps

Pros and Cons of using Xcode Server for iOS Continuous Integration

Continuous Integration a.k.a. CI is an integral part of iOS development process which gives early feedback when something breaks during application development. In an agile application development, producing working app is not only writing good code but also setting up infrastructure to deliver it continuously. The process of Continuous Integration and automating the build can help to achieve continuous delivery.  There Read more…

iOS DevOps

Continuous Integration with Xcode Server on macOS: Complete Setup Guide

Apple has very comprehensive documentation on Xcode Server and Continuous Integration with OSX Server (app) and Xcode Server (Xcode within the server app). You might be wondering what’s the point of this post if everything is documented in the guide. However Apple’s guide still reads as OSX Server than macOS Server but Apple has released new macOS Server (5.2) with some improvements in Read more…

Test Automation

Integrating Fitnesse iOS Acceptance Test with XCTest using Xcode8

Fitnesse for iOS Recently Fitnesse has entered in the world of iOS development. An OCSlimProject has enabled an ATDD and BDD practices in iOS development world. This project enabled us writing and blazing fast acceptance test with Fitnesse for iOS. Thanks to Paul Stringer and other contributors.  You can read more about what are the problems that Fitnesse can solve in Read more…

Build Automation

Building packages with Swift Package Manager and Docker without Xcode

Swift Package Manager Apple has recently open-sourced Swift and announced it’s own package management tool called “Swift Package Manager“. Swift has became cross platform and can be built on both macOS and Linux so Swift Package Manager can be Dependency Manager Build Tool Test Tool IBM is currently working hard to provide centralised repository for hosting those package and creating Read more…