Pulmonis

Imperial College London

Posted by Solan Manivannan on October 21, 2016

Pulmonis Presentation Slide.

A dynamic personalised asthma action plan in collaboration with the NHS Foundation Trust, Royal Brompton and Asthma UK. Essentially this group project is all about developing an iOS application to help a user with asthma keep track of the ir asthma status and minimise the risk of fatal attacks. The app will act as a real time virutal companioin that can provide proactive support using the data collected via user input and a bluetooth enabled device.

I will begin by talking about the progress made in the first iteration of the project. This project was met with big challenges right from the get go with only myself having any experience in iOS development. Therefore, the onus was on me to offer my knowledge and expertise to the team with how best to tackle the development software (Xcode) and the programming language Swift.

Before development started, we needed to handle project management and our continuous integration platform. For the project management we have put together a useful slack account with channels including: #weblinks, #resources, #github, #trello, #XcodeServer and #general. From this it is clear to see that we have GitHub and Trello integration. I have also added a script to post to our #XcodeServer channel whenever the continuous integration system is run, but more on that later. This was the first project where I (and probably the rest of the team) has fully taken advantage of Slack. Even after a couple of days, I have really enjoyed using it as it definitely gives a feel for our other team members are contributing and the progress of a project as a whole. It's also a great place to keep everything together. This was similarly the case for Trello. With a six member team, it's more important to handle the management of a project. That being said, these services are only useful as the contributions being made to it by all team members.

Pulmonis Slack #github.
Pulmonis Trello.

Continuous Integration. As this is a project started from scratch, it was important for us to setup our own continuous integration. I will probably write a post about continuous integation, and the idiosyncrasies with iOS development, but briefly continuous integration is a development practice where the team regularly commits to a repository, and each commit is automatically tested. This allows the team to keep track of when/what tests are breaking (and by who caused that). I took responsibility for setting up our continuous integration, whilst the rest of the group spent some individual time learning Swift and Xcode. I went for using the macOS server with automated bots created using Xcode. The process was really simple with the tutorial from honza dvorsky For each bot created, I added a post integration trigger that would run a script to post the results of the automated testing to our slack channel #XcodeServer.

For this first milestone, we managed to make strong progress with building the backbone of the app. We had about 10 app pages ready to be linked to a model. The main problem for the group as a whole was using autolayout in XCode. This was especially the case for the popover segue that didn't seem to work well with any auto layout constraints provided. Overall, the only thing I thought we would be doing during this first iteration that we didn't was testing. However, testing individual app pages wasn't really relevant because there was no model connected, the pages were static, and the UI wasn't at a stage to be tested. That being said, these should start being addressed in the second milestone.

----Progress Update: