Demo Xcode contacts app with accessbility

This app is named “PhotoCaller”. It is a work-in-progress Apple iOS application. It shows a user’s contacts. It is designed for greater accessibility.

The app started as a research project for people who have Parkison’s disease. The disease can cause motor difficulties, vision difficulties, and cognitive difficulties.

The app is open source and free. We welcome constructive advice, and pull requests, and donations.


The app shows each contact as a card with:

  • The contact’s photo.

  • The contact’s full name.

  • Buttons to connect via video and voice.

  • Buttons to navigate backward and foward among contacts.

Help Wanted

If you have Parkinson’s disease, or are caring for a person who has Parkinson’s disease, and you are open to talking, then we would greatly appreaciate talking with you.

If you are an Apple iOS Swift developer, we are seeking volunteer developer help.


Good usability for people who experience motor difficulties.

  • Such as arthritis, or nerve damage, or reflex tremor, etc.

Good usability for people who experience vision difficulties.

  • Such as partially sighted vision, or double vision, or blurred vision, or hazy vision, etc.

Good usability for people who experience cognitive difficulties.

  • Such as technical inexperience, or memory loss, or confusion.



  • All views use high-contrast, thick-stroke lines and solid colors.

  • Not low-contrast, not thin-stroke lines, not gradient colors.


  • All actions use buttons.

  • Not tab menus, not slideout grips, etc.


  • All gestures are taps.

  • Not flick-to-scroll, no pinch-to-zoom, etc.

Button taps:

  • All taps are single-tap.

  • Not double-tap, not long-tap, etc.

Button sizes:

  • All buttons are 2x size or larger.

  • Not default-size buttons, not sub-size buttons, etc.

Button locations:

  • All buttons are near the screen’s bottom and center, for easy reachability.

  • Not near the screen’s top or left/right edges, etc.

Button colors:

  • All buttons are black tint.

  • Not default tint, not blue tint, etc.

Button icons:

  • All buttons use the Apple SF Symbol circle icons e.g. “”, “”.

  • Not “video”, not “video.fill”, not “”, etc.

UI/UX Current Scope

Read contacts.

  • Beyond scope: create/update/delete contacts. For these, please use the Apple Contacts app.

One contact uses one phone number.

  • Beyond scope: One contact uses multiple phone numbers. For these, please use the Apple Contacts app.

Stable contacts.

  • Future scope: contacts that are rapidly changing and/or need synchronization.

Portrait orientation.

  • Future scope: landscape orientation.

Apple ecosystem.

  • Future scope: other ecosystems, starting with Android.

Current Apple iPhone, curent Apple iPad, curent iOS.

  • Future scope: older Apple iPhone, older Apple iPad, older iOS; other devices such as Apple MacBook or Apple Watch.

Video connection uses FaceTime.

  • Future scope: other video connections such as Zoom video, Meta WhatsApp video, Microsoft Teams video, etc. For these, we welcome help.

Contact image is cropped to square.

  • Future scope: other image sizes, other image shapes.

Technical questions

We have technical questions and welcome advice from experienced developers:

  • How can iOS Swift detect if a CNContact has FaceTime capabilties?

  • How can the app ensure that open(“facetime://…”) succeeds, then after the call the person is returned to the app?


View Github