iOS application to tell the time in the British way πŸ‡¬πŸ‡§β°

Overview

Tell Time πŸ‡¬πŸ‡§ ⏰

Unit Tests

As a French guy in London, when people told me the time, I was always lost. Now thanks to this app, I can confirm what I hear and what I should say to tell the time πŸ˜„ .

A tiny iOS Swift project with SwiftUI.

πŸ“² App Store: https://apps.apple.com/gb/app/tell-time-uk/id1496541173

Screenshots

Screenshots of the application from an iPhone

Features

  • 🐰 Time is written in British english, like It's twenty past seven AM for 07:20
  • ⏰ Nice clock gives you the selected time
  • πŸ‘† You can move the clock arms to set the time
  • πŸ•° Customise the design of the clock (Classic, Art Nouveau or Drawing Style)
  • ⏱ Display minute/hour indicators or limited hour as your convenience
  • πŸ—£ Time can be heard with a British accent
  • 🐒 You can slow down the spoken utterance in configuration (Speech rate)
  • πŸ‘‚ You can activate the Speech recognition to train your pronunciation.
  • πŸ‘Ύ Today Widget gives you the current time

Icons and illustrations

All artistic work has been made by Mathilde Seyller. Go follow her!

Minimum required to build the project

Works with Xcode 12.

Libraries used

  • ⏰ SwiftClockUI: SwiftUI library that provide the Clock, with draggable arms and different design and options
  • 🏠 The Composable Architecture (TCA): library for helping building apps in a consistent and understandable way. Using two main principles: Single point of truth and unidirectional flow. It's also way more easier to test than any architecture I worked with.
  • πŸ‡¬πŸ‡§ SwiftPastTen: Swift framework to provide you the British way to tell the time by passing a "HH:mm" formatted string
  • πŸ‡¬πŸ‡§ SwiftToTen: Provide useful Swift function to recognize British english time and try converting it to Date
  • πŸ—£ SwiftTTSCombine: Swift Combine framework to use Text To Speech directly wrapped in Combine way
  • πŸ‘‚ SwiftSpeechCombine: Swift Combine framework to use Speech recognition directly wrapped in Combine way
  • πŸ“Έ SnapshotTesting: Snapshort testing library from Point-Free to test views
Comments
  • Remove deprecated placeholder in WidgetConfiguration

    Remove deprecated placeholder in WidgetConfiguration

    To have a green CI, I kept the placeholder in IntentConfiguration initialiser. GitHub actions Xcode version is beta 2, while I'm developing with beta 3. When beta 3 (build 12A8169g) will be available as Xcode 12 Beta, remove the placeholder. See https://github.com/actions/virtual-environments/blob/main/images/macos/macos-10.15-Readme.md#xcode

    opened by renaudjenny 1
  • Major glitches and crashes while compiling with Xcode 12 Beta and iOS 14

    Major glitches and crashes while compiling with Xcode 12 Beta and iOS 14

    image

    • [x] Date (actually time) Picker should be refactored completely according to new Date Picker UI
    • [x] Major glitch with SwiftClockUI Clock (certainly a bug with this library πŸ™)
    • [x] Crash when tapping on the speaker button
    opened by renaudjenny 1
  • fix(Previews): wrong calendar used in Preview

    fix(Previews): wrong calendar used in Preview

    • Remove the preview Calendar as it was misleading (spotted thanks to the recent summer time change)

    Cherry picked from the #30 PR as it's now impacting the main branch, but the PR is not ready yet to be merged (due to the need to use the last Xcode version). This PR allow this bug to be fixed without the need to upgrade Xcode on CI (hopefully).

    opened by renaudjenny 0
  • Add Speech Recognition

    Add Speech Recognition

    • The goal of this PR is to bring the idea of #23 to have another way to set the time. Moreover, it could train your pronunciation to tell the time.
    • [X] Speech recognition is working
    • [x] UI react to the speech recognition status (the button should "glow" when the speech recognition is recording for instance)
      • [x] It would be nice to add a sound when the system is ready to listen, something similar when the user trigger Siri for instance (See #27)
    • [x] Extract the Speech Recognition in its own Swift Package, Γ  la SwiftTTSCombine
    • [x] Interpret the result to extract a recognisable time in a string, kind of the opposite of SwiftPastTen (why not naming it SwiftToTen 😬)
    opened by renaudjenny 0
  • Should remove reference to SwiftLint in the GitHub Action

    Should remove reference to SwiftLint in the GitHub Action

    https://github.com/renaudjenny/telltime/blob/af4bfd08e6bace8a7143c544daa96a559ba8e60f/.github/workflows/xcodetest.yml#L16-L17

    Should be removed, it's now integrated in the mac-os image

    opened by renaudjenny 0
  • Explore Speech Recognition to

    Explore Speech Recognition to "hear the time"

    A very good new feature would be to add a Speech Recognition where we can change the time. For instance, if the app hears "It's five past four", it should change the time to 4:05.

    We can explore the Speech library, see https://developer.apple.com/documentation/speech

    enhancement 
    opened by renaudjenny 0
  • 21 add speak button on different widgets

    21 add speak button on different widgets

    Add Speak Button to middle sized and large sized widget. It's not possible yet to add a Link or Button to the small sized widget, so I skipped this one.

    Fix #21

    opened by renaudjenny 0
  • Avoid using namespace

    Avoid using namespace

    Namespace like App one is very confusing, even more as Apple introduced App protocol. It would be better to simply avoid this too generic namespace, and refactor App.reducer by a simple appReducer for instance.

    opened by renaudjenny 0
  • Improve Speech Recognition open and close microphone

    Improve Speech Recognition open and close microphone

    Add a sound when opening and closing the microphone to let user know if they can start talking and when something has been recognised and the microphone will automatically close.

    opened by renaudjenny 0
  • Improve the iPad view

    Improve the iPad view

    The application is not really adapted for iPad View. We could easily do something nice for iPad (maybe something completely different).

    I thought about adding the configuration right inside the main screen for instance.

    opened by renaudjenny 0
Releases(2.4.1)
Owner
Renaud Jenny
Renaud Jenny
Sync your app's time with server's UTC time

ServerSync for iOS Apps Sometimes your app can't rely on the device's date and time settings being correct. This library will help you calibrate your

null 10 Dec 16, 2021
Free time picker iOS Application with SwiftUI and Combine

Free time picker iOS application. This is iOS application for search free time in your calendar. Search Detail Environment macOS Catalina 10.15.3(19D7

fromkk 39 Jul 7, 2022
MovieAppSwiftUI - The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine

MovieAppSwiftUI The Application is using TMDB API and Server API to reduce user searching movies resources time with search engine.This Application is

JackSon_tm.m 5 Oct 29, 2022
null 1 Jan 27, 2022
A mobile application project designed for everybody which provides the easiest way to make searchs for public services

A mobile application project designed for everybody which provides the easiest way to make searchs for public services

null 0 Nov 23, 2021
macOS application written in SwiftUI that downloads installer pkgs for the Install macOS Big Sur application.

Download Full Installer This is a Swift UI implementation of my fetch-installer-pkg script. It will list the full macOS Big Sur (and later) installer

Armin Briegel 654 Dec 31, 2022
This application was created as a practice and shows a simply VIPER master-detail application.

MARVEL UNIVERSE CHARACTERS This application was created as a practice and shows a simply VIPER master-detail application. Main screen shows a list of

Daniel Moraleda 0 Nov 15, 2021
iOS app that shows real-time information about subway train arrivals in Seoul, South Korea.

NextTrain iOS app that shows real-time information about subway train arrivals in Seoul, South Korea. The app was implemented using clean code and TDD

null 4 Nov 18, 2021
A simple to use iOS app with clean UI to calculate time until a specified date

A simple to use iOS app with clean UI to calculate time until a specified date.Added new feature that is now you can measure time from a specified date as well. Like time spent from the day you were born.

Dishant Nagpal 2 Feb 28, 2022
A library of data structures for working with collections of identifiable elements in an ergonomic, performant way.

Swift Identified Collections A library of data structures for working with collections of identifiable elements in an ergonomic, performant way. Motiv

Point-Free 263 Jan 1, 2023
The easiest way to install and switch between multiple versions of Xcode - with a mouse click.

Xcodes.app The easiest way to install and switch between multiple versions of Xcode. If you're looking for a command-line version of Xcodes.app, try x

Robots and Pencils 4.5k Dec 26, 2022
Shazam, out of your way

SLAM SLAM: an app I made in 24 hours that’s like Shazam, but out of your way. I used it as an excuse to play with ShazamKit, the new framework made by

Linus Skucas 8 Jan 24, 2022
A MVVM Project using two way binding with DidSet swift feature

FawryTask Description Fawry Task is a MVVM Project using two way binding with DidSet swift feature , follow Solid princepl by uncle bob esecially Sing

null 1 Dec 6, 2021
A Swifty way to toggle your features.

Requirements Installation Usage TODO Communication Credits License Requirements iOS 8.0+ Xcode 8.1+ Swift 3.1+ Installation CocoaPods Create a Podfile

Marco Santarossa 11 Aug 10, 2021
VerticalTabView is a native way to display paged vertical content in SwiftUI.

VerticalTabView ?? VTabView is a native way to display paged vertical content in SwiftUI. To work it makes use of the new iOS 14 TabView PageTabViewSt

Lorenzo Fiamingo 25 Dec 16, 2022
Introducing SwiftUI. A declarative way to create User Interfaces with Swift.

SwiftUI - Landmarks Introducing SwiftUI. A declarative way to create User Interfaces with Swift. SwiftUI was introduced at WWDC 2019 by Apple. It is t

Alex Paul 8 Sep 21, 2021
ReleaseNotesKit - a brand new, elegant, and extremely simple way to present the recent version’s release notes to your users

ReleaseNotesKit This is ReleaseNotesKit, a brand new, elegant, and extremely simple way to present the recent version’s release notes to your users. R

Swapnanil Dhol 22 Jun 30, 2022
A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind

A library for building applications in a consistent and understandable way, with composition, testing, and ergonomics in mind.

donggyu 3 Jun 10, 2022
ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Since Facebook introduced reactions in 2016, it became a standard in several applications as a way for users to interact with content. ReactionButton is a control that allows developers to add this functionality to their apps in an easy way.

Jorge Ovalle 305 Oct 11, 2022