SleepingBaby - Track your kids activity and allow them sleep soundly with relaxing music in ONE app

Related tags

Audio SleepingBaby
Overview

Sleeping Baby

Скачать в AppStore.

Ключевые используемые технологии:

UIKit, MVVM, Core Data, CloudKit, UserDefaults, Foundation, AVFoundation, Core Animations, Localization.

Краткое техническое описание:

  • Проект написан на UIKit;
  • В проекте использована верстка кодом за исключением ячеек на сцене Day.
  • Использована архитектура MVVM с использованием callback'ов, boxing'a и делегирования;
  • Бизнес-логика приложения, взаимодействие с базой данных, работа аудио-плеера и т.д. реализованы в отдельных сервисных слоях;
  • Проект соответствует принципам SOLID;
  • Данные сохраняются в Core Data и синхронизуются в облаке между устройствами пользователя посредством CloudKit;
  • Сохранение временных параметров приложения осуществляется в UserDefaults;
  • Реализована возможность загрузки фотографий пользователя из фотогалереи;
  • Приложение проверено на утечки памяти;
  • Приложение опубликовано в AppStore.

Ключевые возможности:

  • Ведите дневник активности (сны, бодрствования, кормления и т.д.) для нескольких детей. Приложение автоматически произведёт подсчет статистических данных для каждого дня.
  • Забудьте об опасении потерять все данные. Приложение автоматически синхронизует активность детей в вашем iCloud: вся информация доступна на любом вашем устройстве, подключенном к одной учетной записи iCloud.
  • Включайте высококачественные аудиозаписи для крепкого сна ребенка, не выходя из приложения. Воспроизводите звук на различных Bluetooth-совместимых устройствах (например, Bluetooth-колонки). Устанавливайте таймер выключения аудио для постепенного затухания аудио.

Детальное описание сцен:

Cкрин сцены Описание сцены
User
UserScene На сцене отображается список добавленных детей в виде табличного представления. Для хранения данных используется CoreData с автоматической синхронизацией в облаке (с использованием CloudKit). Табличная ячейка отображает базовую информацию о ребенке: его фотографию, возраст (количество дней склоняется в соответствии с NSStringPluralRule.
Day
DayFirst Сцена отражает активность ребенка за выбранный день. В качестве секций выступают Сны и Бодрствования, а активность, связанная с Кормлениями, Сцеживаниями отражается в виде рядов, соответствующего Сна или Бодрствования. В NavigationBar'e реализованы возможности по редактированию сведений о ребенке (titleView) и выбору текущей даты (rightBarButtonItem).
DatePicker Выбор необходимой даты осуществяется при помощи кастомного ViewController'a: DatePicker.
DayThird Для того, чтобы начать или закончить сон в текущий день достаточно просто нажать на кнопку "Начать/ закончить сон", и событие произойдет в текущее время. Если же на кнопку нажать не в текущий день, то сразу выскочит окно с выбором времени, начиная с конца последеней активности выбранного дня, заканчивая 23:59 выбранного дня.
DayFourth В конце каждого дня представлена статистика, включающая информацию по активности за прошедшую ночь, текущий день, следующую ночь. В настройках можно отключить демонстрацию как отдельных статистических параметров, так и целых секций.
DayWakefulness При выборе секции с Бодрствованием вызывается AlertController с различными действиями (на слайде не представлены некторые из них, поскольку не удовлетворяют условиям).
DaySleep При выборе секции со Сном вызывается AlertController с различными действиями (на слайде не представлены некторые из них, поскольку не удовлетворяют условиям).
KidProfile
KidProfile При нажатии на titleView на NavigationBar'e на предыдущей сцене, происходит переход в профиль ребенка, где можно изменить его фотографию, имя, дату рождения, а также диапазон ночного сна, благодаря которому сны, начавшиеся внутри которого будут автоматически помечаться как ночные.
Sleep
Sleep Сцена редактирования сна. Реализована возможность установки времени начала и окончания сна при помощи DatePicker, указания дневной или ночной сон, места сна и примечания.
Nursing
Nursing Сцена редактирования кормления. Реализована возможность установки времени начала и окончания сна при помощи DatePicker, указания дневной или ночной сон, места сна и примечания.
AudioCollection
AudioCollection Во второй секции TabBar'a, "Аудио", расположены несколько разделов аудио контента (пока доступен только один - "Окружение"), которые представлены в виде CollectionView, по тапу на которую происходит переход на сцену AudioTracks, в которой расположены аудиозаписи звуков природы и окружения, предметов быта.
AudioTracks
AudioTracks При нажатии на ячейку табличного представления, появляется аудио-плеер, реализованный в слое MainTabBar.
AudioPlayer
AudioPlayerVolume Первоначально запущенный трек проигрывается практически бесконечно (Int.max), однако, время проигрывания можно установить (диапазон: 10 - 240 минут). При установке таймера автоматически устанавливается плавное затухание звука в течение последних 10 минут проигрывания.
AudioPlayerMini Так как AudioPlayer реализован в MainTabBar, плеер доступен любом экране приложения (кроме сцен настроек). При появлении плеера происходит изменение нижнего инсета как табличного представления, так и ScrollView (сохраняется в UserDefaults), что позволяет оставить доступным контент, находящийся на ViewController'ах за AudioPlayer'ом в свернутом виде на всех сценах приложения.
AudioPlayerControlCenter Реализована возможность управления громкостью и воспроизведением аудио из Control Center'a, а также возможность передачи аудиоконтента по AirPlay.
You might also like...
MuVis is a macOS, iOS, iPadOS app for real-time music visualization.
MuVis is a macOS, iOS, iPadOS app for real-time music visualization.

MuVis MuVis is an open-source multiplatform app (using SwiftUI, Swift, and Xcode) for music visualization. It renders informative (and musically usefu

:musical_note: A Mac app wrapper for music.youtube.com
:musical_note: A Mac app wrapper for music.youtube.com

A simple Mac app wrapper using WKWebView for YouTube Music that allows YouTube Music to run as a standalone process. Features Media Keys Keyboard shor

This is a mysic detection app that uses ShazamKit to detect music. O

This is a mysic detection app that uses ShazamKit to detect music. Once it detects the music, it takes the information about that music to find lyrics for that song using a Lyrics API.

MuVis is a macOS, iOS, iPadOS app for real-time music visualization.
MuVis is a macOS, iOS, iPadOS app for real-time music visualization.

MuVis MuVis is an open-source multi-platform app (using SwiftUI, Swift, and Xcode) for music visualization. It renders informative (and musically usef

MusicKit is a framework and DSL for creating, analyzing, and transforming music in Swift.

MusicKit MusicKit is a framework and DSL for creating, analyzing, and transforming music in Swift. Examples Functional harmony let C5 = Pitch(midi: 72

A real-time, votable, democratized music queue on iPad and iPhone using Spotify
A real-time, votable, democratized music queue on iPad and iPhone using Spotify

Queue'd Music Queue'd is the best way to enjoy music with your friends. Add your favorite songs to a shared music queue at your favorite bars, restaur

YiVideoEditor is a library for rotating, cropping, adding layers (watermark) and as well as adding audio (music) to the videos.

YiVideoEditor YiVideoEditor is a library for rotating, cropping, adding layers (watermark) and as well as adding audio (music) to the videos. YiVideoE

A charmful decade with many colors patterns, disco music, and other cultural expressions that we refer to as vintage
A charmful decade with many colors patterns, disco music, and other cultural expressions that we refer to as vintage

MontyHallProblem Welcome to the 70s! 🕺 That is a charmful decade with many colors patterns, disco music, and other cultural expressions that we refer

🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.
🅿️ PandoraPlayer is a lightweight music player for iOS, based on AudioKit and completely written in Swift.

Made by Applikey Solutions Find this project on Dribbble Table of Contents Purpose Features Supported OS & SDK Versions Installation Usage Demo Releas

Classical music front-end for Apple Music: iOS app

concertino_ios Concertino is a classical music front-end for Apple Music. It's splitted in several projects. This one provides only the iOS app. (Ther

Open Opus 107 Dec 22, 2022
iOS music player app that downloads music from the internet, even YouTube

About YouTag is an iOS music player app that downloads music from the internet, even YouTube, and manages it in a local library. Music videos can also

null 263 Jan 8, 2023
A pure Swift Spotify Music App in Apple Music style

HBMusic A pure Swift Spotify Music App in Apple Music style. How to run pod inst

haoboxuxu 6 Dec 29, 2021
Squares - a toy drum machine which you can control by multi touch capabilities of your track pad

Squares Squares is a toy drum machine which you can control by multi touch capab

Umur Gedik 7 Oct 3, 2022
🎶 Control Apple Music right from your macOS menu bar.

About Music Bar is macOS application that places music controls right in your menu bar. Installation Download and unzip the latest release. Drag the a

Musa 202 Jan 4, 2023
Analyser BPM in Swift for your music/sounds/records, whatever..

BPM-Analyser Analyser BPM in Swift for your music/sounds/records, whatever.. Powered with Superpowered Preview: How To: Copy theese files to your proj

Gleb Karpushkin 71 Dec 24, 2022
Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern and MVVM architecture.

Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern ?? and MVVM architecture ?? . Made with love ❤️ by Sameer Nawaz

Sameer Nawaz 120 Jan 4, 2023
macOS app that allows the control of Spotify and AppleMusic/iTunes music playback from the menu bar.

PlayStatus is a simple macOS app that allows the control of Spotify, Apple Music(macOS 10.15+) and iTunes including iTunes Radio/Beats1 playback from

Nikhil Bolar 114 Dec 28, 2022
App for searching music and films in iTunes

inMovies App description: This is an app for searching contnent such as films and music in iTunes. Running the app brings you to page with following c

Egor 0 Nov 7, 2021
MusicPlayer - Beautiful Music Player app built using SwiftUI to demonstrate Neumorphic design pattern and MVVM architecture

Skailer ?? Beautiful Music Player app built using SwiftUI to demonstrate Neumorp

null 23 Dec 10, 2022