demo-xcode-contacts

Demo Apple Xcode iOS Swift project that uses contacts with emphasis on accessibility

https://github.com/joelparkerhenderson/demo-xcode-contacts

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.0%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Demo Apple Xcode iOS Swift project that uses contacts with emphasis on accessibility

Basic Info
  • Host: GitHub
  • Owner: joelparkerhenderson
  • Language: Swift
  • Default Branch: main
  • Homepage:
  • Size: 1.4 MB
Statistics
  • Stars: 4
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 3 years ago · Last pushed about 1 year ago
Metadata Files
Readme Citation

README.md

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.

Screenshot

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.

Goals

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.

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.

User Interface Guidance

Colors:

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

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

Actions:

  • All actions use buttons.

  • Not tab menus, not slideout grips, etc.

Gestures:

  • 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 feedback:

  • All taps provide immediate feedback.

  • Not zero-feedback, not feedback delay until release, 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. "video.circle", "arrow.left.circle".

  • Not "video", not "video.fill", not "video.circle.fill", etc.

Xcode project

This section describes the Xcode project files we use.

Main:

  • PhotoCallerApp: the main SwiftUI struct.

  • AppDelegate: typical app delegate, such as for notifications.

  • Log: typical global singleton instance of the app's logger.

  • Config: typical global class for configuration, such as for colors, sizes, etc.

Views:

  • ContentView & ContentViewModel: track contact list, current contact, etc.

    • ContactView
    • ContactImageView: show the contact's photo
    • ContactTextView: show the contact's name
    • NavView: navigation area for buttons, such as prev, next, etc.
    • ButtonImageView: a big button with an Apple SF Symbols image.
    • RectangleVerticalView & RectangleHorizonalView (spacers)

Helpers:

  • Open: Launchers for kinds of URLs, such as for phone, email, etc.

  • Parse: Sanitizers for strings, such as for phone numbers, email addresses, etc.

  • Extensions: utility functions for contacts, images, characters, etc.

  • AppButtonStyle: big button image with black tint, green press highlight, etc.

For demos and tests:

  • ContactsDemo: ad-hoc ways to create contacts for a demo.

  • Fab: Fabricators for fake data, such as for demos, tests, etc.

  • Unused: Placeholder codd, such as fragments that we're considering.

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?

Owner

  • Name: Joel Parker Henderson
  • Login: joelparkerhenderson
  • Kind: user
  • Location: California

Software developer. Technology consultant. Creator of GitAlias.com, NumCommand.com, SixArm.com, and many open source projects.

Citation (CITATION.cff)

cff-version: 1.2.0
title: Screenshot
message: >-
  If you use this work and you want to cite it,
  then you can use the metadata from this file.
type: software
authors:
  - given-names: Joel Parker
    family-names: Henderson
    email: joel@joelparkerhenderson.com
    affiliation: joelparkerhenderson.com
    orcid: 'https://orcid.org/0009-0000-4681-282X'
identifiers:
  - type: url
    value: 'https://github.com/joelparkerhenderson/demo-xcode-contacts/'
    description: Screenshot
repository-code: 'https://github.com/joelparkerhenderson/demo-xcode-contacts/'
abstract: >-
  Screenshot
license: See license file

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Committers

Last synced: over 1 year ago

All Time
  • Total Commits: 2
  • Total Committers: 1
  • Avg Commits per committer: 2.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Joel Parker Henderson j****l@j****m 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 12 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels