Visual feedback on iOS device of the Flutter® VRP1 (medical device often used with Cystic Fibrosis)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Apps
Classes
FLAPI
FlowerForAll.xcodeproj
FlowerForAll.xcworkspace
LocManager
Recordings
de.lproj
documents
en.lproj
es.lproj
fr.lproj
git
iPad
sqlite_database
.gitignore
Default-568h@2x.png
Default-Portrait.png
Default.png
Default@2x.png
Flower breath copy-Info.plist
FlowerForAll_Prefix.pch
Icon-120.png
Icon-152.png
Icon-76.png
Icon-iPad.png
Icon-iPad@2x.png
Icon.png
Icon@2x.png
Info.plist
LICENSE
MainWindow.xib
Podfile
README.md
TODO_DEV.md
default.css
main.m

README.md

Flower Breath iOS

Many young people suffering from respiratory problems must perform daily physiotherapy for airway clearance with a PEP medical device

By breathing out with a moderate force through a resistance, a positive pressure is generated in the airways, helping to keep them open. This positive pressure allows airflow to get beneath the areas of mucus obstruction and move the mucus toward the larger airways, where it can be coughed out.

**Project Homepage: ** http://www.defitech.ch/FlowerForAll-en

SETUP

FLowerBreath reports its data on Pryv http://pryv.com/

Install Pryv Pods with http://cocoapods.org/

run pod install in the developpement folder.

une FlowerForAll.xcworkspace after pod installation

WRITE A GAME

If you want to write a game, please read: Apps/HOWTO_WRITE_A_GAME.md

KNOWN BUGS

  • they must be some memory leaks.. and some crashes are caused by some runnning conditions that happend more often iPad and older iPhone models.
  • it would be nice to have an objective-c expert do some code review..
  • in ParametersApp: it seems that UIControlEventTouchUpInside event is not called every time the slider is touched -> changes to the profile are not recorded

DOCUMENTATION

  • Complete "How To develop a game" document, with ergonomic guidlines and events sequence description

PARAMETERS - MONITORING MODE

Actually the soft is design in a "target" or "goal" mode, but some people would like to use is as a simpe monitoring device for their exercices.
For exemple an Adult, would not do "games" with it but he will be interested in having historical statistics.
This would be easily achived by recording every blows in the database, independently of exercices start / stop.
But we need to create an interface for viewing this data..

PARAMETERS - SETTINGS

  • Makes profiles editables / removables .
  • The model is ready to be implemented

COSMETICS

  • Refactor FLOWER BREATH logo and icon

MONITORING

  • Rewrite the history monitor in OpenGL or Quartz

  • Add a current-blow percentage view.
    in the needleGL view add a progress view (vertical) that shows the persent of blowduration achieved.

APPS MENU

  • Placement is now manual.
    When we will have more apps, (more than one page) we will have to develop an automatic placement for FlowerApp subclassing applications.

VOLCANO APPS

  • It's nice but minimalist,
  • It would be great to have some animations and litlle blows off

GAMES !

  • Integrate some game engine such as unity and cocos2d

FLAPI - FLAPIX

  • Is "code spagetthi" fashionned It would be nice to have someone exetrnal do some revieweing / refactoring

AUDIO FEEDBACK

  • Add a nice audio feedback for someone who would do it's exercice without holding the iPhone.

SOUND PROCESSING

R & D

  • Possible with a bluetooth headset ?
  • Other microphone
  • Make a special piece of plastic to fix the microphone to the flutter

Known memory leaks

Monitoring on the simulator:

  • -[FLAPIX Start] : leak in SubSys_Start()
  • -[FLAPIX SetDemo] : leak in FLAPI_SUBSYS_IOS_file...
  • +[DB colS:index:] : if leak autoreleased, app crashes... might be fixed
  • -[FLAPIX init] : leak in FLAPI_SUBSYS_IOS_init...
  • +[DB getMonthes:] : if leak autoreleased, app crashes... might be fixed

Monitoring on the device:

  • many leaks detected but no one in objective c code: biggest one is in -[UIActionSheet(Private) _popoutAnimationDidStop:finished:]