GithubHelp home page GithubHelp logo

nutritionfactsorg / daily-dozen-ios Goto Github PK

View Code? Open in Web Editor NEW
148.0 24.0 40.0 79.78 MB

Keep track of the foods that Dr. Greger recommends in his NYT's best-selling book, How Not to Die with this iOS app

Home Page: https://apps.apple.com/us/app/dr-gregers-daily-dozen/id1060700802

License: Other

Swift 98.26% Ruby 0.70% Shell 1.04%
daily-dozen ios how-not-to-die food-tracker health food nutrition help-wanted

daily-dozen-ios's Introduction

Daily Dozen iOS App

About

In the years of research required to create the more than a thousand evidence-based videos on NutritionFacts.org, Michael Greger, MD, FACLM, has arrived at a list of what he considers the most important foods to include in a healthy daily diet. Yes, greens are good for you, but how much should we try to eat each day?

Dr. Greger’s Daily Dozen details the healthiest foods and how many servings of each we should try to check off every day. He explains his rationale in his book How Not to Die. All his proceeds from his books, DVDs, and speaking engagements is all donated to charity.

Daily Dozen on the App Store

Contribute

We would love for you to contribute and help make the Daily Dozen for iOS even better!

Check out our Contribution Guidelines for details on how to get started and our suggested best practices.

Donate

To help support NutritionFacts.org, click here

License

The Daily Dozen iOS App is licensed under the GPLv3

Special thanks to the volunteer efforts of the original creators of the app:

  • Application Development: Chan Kruse
  • Application Design: Allan Portera
  • Photography: Sangeeta Kumar

Updates

3.5.1 (pending)

  • Adds data import.
  • Database upgrade.

3.4.17 (App Store: Jan 24, 2024)

  • Adds Simplified Chinese translation.

3.4.13, 3.4.15 (App Store: Dec 13, 2023)

  • Adds Traditional Chinese translation.
  • Localized product name on App Store product page for Chinese (Traditional).

3.4.11 (App Store: Nov 1, 2023)

  • Updated German translation.

3.4.9 (App Store: Sep 22, 2023)

  • Improved data export.
  • Updated language translations.

3.4.7 (App Store: Aug 10, 2023)

  • Adds Bulgarian, French, Italian, Romanian, and Slovak language support.
  • Adds support to export data to a file which can be accessed via a computer cable connection.
  • Adds Frequently Asked Questions (FAQ)
  • General software quality improvements.

3.3.3 (App Store: November 30, 2022)

  • Adds support for Czech language.

3.3.1 (App Store: Oct 21, 2022)

  • Adds anonymous opt-in analytics to support product improvement..

3.2.21 (App Store: October 2, 2022)

  • Updated Spanish (es) translation.
    • Difference between the Android and iOS translation were resolved in the daily-dozen-localization repository.
    • The common elements of the Android and iOS translations are now the same in the released app.
  • Updated Russian (ru) translation.
  • General software quality improvements.

3.2.11 (App Store: April 22, 2022)

  • Adds Catalan (ca), German (de), Hebrew (he), Polish (pl), Portuguese (pt-BR, pt-PT) and Russian (ru)

3.2.9 (App Store: July 29, 2021)

  • Improved general support for language translations
  • Improved layout for smaller screens
  • Fixed case where days completed did not correctly display
  • Updated topic link references to website

3.2.5 (App Store: February 10, 2021)

  • Updated date picker interaction
  • Fixed reminder notification
  • Fixed issue where date navigation "Today" remains as yesterday's date

3.2.3 (App Store: August 15, 2020)

  • Improved Spanish translation

    Note: Application level language selection via Settings, requires iOS 13 or newer.

3.2.1 (App Store: July 7, 2020)

  • Restructured to support international localization in general
    • Instances of static English String replaced with localizable NSLocalizedString
    • Modified Storyboard UI layouts to adapt to string length variance of different languages.
  • Adds Spanish
  • Improved data synchronization with HealthKit
  • Fixed update between Weight checkbox and Weight entry to match on the display
  • Fixed weight chart x-axis scaling

3.1.0 (App Store: December 17, 2019)

  • Additions:
    • Adds 21 Tweaks
    • Adds Weight Tracking with Health Kit Integration
    • Add Application Tab Controller bar
  • Improvements:
    • Adds settings control to choice between using "Daily Dozen only" or "Daily Dozen + 21 Tweaks".
    • Adds settings control to select whether to use Imperial or Metric type units throughout the app.

2.0.0 (App Store: March 9, 2018)

  • Brand new design
  • Daily Dozen tracking now persists over multiple days
  • Visualize your progress over time with our new Charts integration
  • Enable a daily reminder with a custom time setting in the Daily Reminder Settings
  • Backup your data to your files
  • Added additional links in the main menu including The Daily Dozen Cookbook
  • Updated About information in the main menu

1.0.2 (App Store: November 13, 2017)

  • Misspelling fix

1.0.0 (App Store: December 21, 2015)

  • Initial Release

daily-dozen-ios's People

Contributors

angelagvarela avatar chankruse avatar christirichards avatar cnst-dev avatar innerfish avatar konopielko avatar lahacker avatar marc-medley avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daily-dozen-ios's Issues

Add ability to import data

Related to #2 and #5 to allow the user to import backup data. The Android app allows users to backup data, but I can't import it into my iPhone since there is no data being stored.

Localized Time Testing

Verify that the following international localized time details are working correctly:

  • time format presentation
  • current time correctness (data entry)
  • correct date & updated date each new "today"
  • history time correctness (data storage)
  • "morning" & "evening" thresholds
  • user changes language and/or timezone via preferences
  • traveler with automatic time zone changes
  • check first morning use case

Daily Dozen Challenge

I just saw the video Dr. Gregor put out for the Daily Dozen challenge.

Idea: add some sort of competition with friends feature and share stats and challenges with each other. Facebook and Google authorization. Access to contact list to invite others to join through app without Facebook or Google account. Possible Fitbit API integration?

Love the recent UI and UX updates, btw!!

"today" remains on yesterday's date

Overview

If the app is left overnight as the last app used , then "today" may remain on yesterday's date without a clear way to go to today's actual date.

Use Case

When a user checks the Daily Dozen as the end of the day, it would be useful to be able to navigate to the current date first thing in the morning.

Configuration

The modality of the restriction varies by the OS version.

  • Daily Dozen 3.2.4 (current main branch)

  • iOS 12.4: date tumbler rolls back to yesterday's date

image

  • iOS 14.2: date picker popup selector has today's grayed out and the "Back to today" is not accessible.

image

Steps To Reproduce

iPhone, personal

  1. Open Daily Dozen checklist as the last activity of the phone for the day.
  2. Touch "today" so that the date is showing. Set the phone aside.
  3. On the next day, go directly back to the Daily Dozen checklist and try to navigate to the actual current day.

iPhone, test unit

Note: a test phone is preferred when changing the device date, since a device level date change can affect other files on the phone.

  1. Open Daily Dozen checklist to today.
  2. Touch "today" so that the date is showing.
  3. Go home. Then to go Settings.
  4. In Settings, go to the General > Data & Time Screen
    • Disable "Set Automatically" to turn off network time
    • Change the current date
  5. Return to the Daily Dozen app checklist. Try to navigate to the just set date.

Simulator

The iOS simulator does not have a mechanism to switch the simulator device date when the simulator and application are running.

Related Issues

Zen Desk 36332

Possible Fix

TBD.

Remove obsolete code: RoundedButton

Remove obsolete code RoundedButton.

Replacement of RoundedButton with UIButton elements (and adding some programmatic settings) fixed first launch settings. See Issue #65.

The remaining section to be migrated from RoundedButton with UIButton is the HistoryLayout storyboards and the associated ControlPanel.

This is a step towards reducing code complexity and reducing the InterfaceBuilder type settings. SwiftUI does not use the InterfaceBuilder.

Add three "servings" for exercise instead of one

We have quite a few users who are requesting that we break up the current single serving for exercise into three servings. Doing this will give our users a better sense of achievement upon completion and help them to feel like they are making more progress toward achieving their daily goals.

Feature Request: Allow to checkboxes beyond the recommended boxes.

Just started using the app and I’m finding that I am not hitting all the checkboxes to meet the daily goal.
So some days, I’m eating more Cruciferous Vegetables than I do Greens. Currently, I have no way of tracking when I am doing that, just that I’m lacking in one or more other categories. I’m staying within my calorie and macro goals so it’s just how I’m allocating my input.

Right now the checkboxes are grey, it would be great, as an option, to toggle additional (max 5-8) checkboxes for each category. Maybe change the current grey color, to black outline, and the additional ones to grey. When a box is checked continue with the current green/white checkmark.

One other thing that would be helpful, would be for iPadOS side by side implementation with the app. Right now, when I do that, on an iPad, the app stays centered on the screen and the other app showing on the left or right, instead of shift all the way to side of the screen.

A290054D-46CF-4886-A669-429AA56BDC5C
979844C7-2FD5-4FCD-A94E-74BA4F9EB556
E1CFB01A-CD2C-4BF2-A4E6-A6349EB71BB7

IOS App not available in german Itunes

Hello there, unfortunately (I tried 3 different iphones/ipads) I cant download the IOS app from a geolocation in germany, the app does not show up in the search results. when use the direct link

https://nutritionfacts.org/daily-dozen-challenge/

I can at least download the english version.

Could this be due to the lack of a german translation, my geoposition, or something completely diferent?

with best regards,
Hans

BUG: Safe Area Not Maintained after iOS 16 update

The update to Xcode 14 adds the new iOS 16. On iOS 16, Daily Dozen was found to have the following issues:

  • App Navigation Bar is in the System Status Bar area instead of below it.
  • App Tab Bar is in the System Home Indicator area instead of above it.

The System Status Bar and Home Indicator are each considered to be a "safe area" where the app does not normally appear.

This was not an issues for earlier Xcode/iOS build versions. It's is also now a concern as to how the existing public release will appear on the new iOS 16.

iOS_16_SafeZoneIssue

App Navigation Bar in System Status Bar Area

Top

App Tab Bar in System Home Indicator Area

Bottom

Metric weight measurement doesn't update iOS Health data correctly

Hi,

I've set my Measurement Units to Metric. When I weigh myself and want to add my weight in Kilograms I can see Kg next to the field which is great. The issue comes when I put in a value e.g. 83.8. If I then go to the Health iOS app then to Weight and Show All Data then I can see the Kilograms figure added by the DailyDozen app as 0.08Kg.

It looks like DailyDozen is adding the value as grams instead of kilograms into the Health iOS app?

Feature Request: have TWEAKS and DAILY DOZEN show the same date

User feedback: In the last couple of weeks I've accidentally entered a whole day to realize it was for today not yesterday.

This concern was reported as daily-dozen-android issue #195 and subsequently fixed with the Android version commit fed37f1.

The underlying issue is that Daily Dozen and 21 Tweaks dates are set independently. As currently implemented, the dates for "Daily Dozen" and "21 Tweaks" pages are set independently. What appears to be a "switches to today" by the software situation is really a case of the other tab has not yet been set by the user to yesterday.

Add in the ability to edit legacy tracker data

Add in the ability for users to edit past daily category details in case they forgot to track the data for that day. Heavily relies on #2 to be implemented for a browseable list/graph/calendar of days.

Daily Dozen App Translation

If you are interested to be part of the Daily Dozen App Translation Volunteer Team, please leave a comment below including which language(s) you are fluent in. It's important to be fluent in both English and any languages that you would be translating into.

The combined Andriod and Apple iOS translations, as currently released, can be viewed in the nutritionfactsorg/daily-dozen-localization repository. The Daily Doze App Translation Volunteers report to: Steven Litrov (@salitrov), Global Volunteer Director

Scope:

  • Translate short English strings of text into your language within spreadsheets.
  • Review translation within app before launch to ensure accuracy.
  • Access to both an Android and iOS device to support prerelease testing is helpful though not required. The prerelease software can be made available to multiple people.

Localize: Set new install settings to imperial/metric based on language/region

A new installation (i.e. no existing app user preferences) of the Daily Dozen app is currently implemented to always set the measurement units system to Imperial.

The Apple devices provide information which can allow the initial setting of imperial vs metric be based on the language and region in use.

Three countries officially use the imperial system.

  • US
  • Liberia Uses metric along side imperial system. ("Liberian" English)
  • Myanmar: Uses metric along side imperial system. Burmese.

Default: Imperial. User can switch to metric in settings.

The UK and former Commonwealth countries continues to some use of both imperial and metric systems. These government and business officially use metric although general public, advertising and public signs may still use imperial.

  • UK (originated imperial system, metric official adopted in 1965)
  • Canada
  • India
  • South Africa
  • Australia

Default: Imperial. User can switch to metric in settings.

Other regions:

Default: Metric. User an switch to imperial in settings.

Resources

21 Tweaks data retention issues

The 21 Tweaks wipes its data. The data has to be entered twice before it retains it. In particular, the weight always has to be entered twice before it populates and retains the tick-box. When flicking between the 21 Tweaks and the Daily Dozen the app doesnt retain the date selected and defaults back to today so the date has to be manually reselected each time. This should be a parameter-passing fix if the two apps can pass data.

Bug: history edit plus "back to today", shows incorrect consecutive days completed

If history is edited, then the consecutively days completed count shows an incorrect count after jumping back to today's date.

Steps To Reproduce

Scenario: edit to be uncompleted

  1. Go to the middle of contiguous series of completed days for an item.
  2. Uncheck the item to mark it as uncompleted.
  3. Go "Back to Today"
  4. Observe that the "N days" completed indicator is not correct.

Scenario: edit to be completed

  1. Go to the day(s) between two of contiguous series of completed days for an item.
  2. Mark the item as completed. Repeat for all days needed to join the series.
  3. Go "Back to Today"
  4. Observe that the "N days" completed indicator is not correct.

Version(s):

  • present since v2 and up to v3.2.5

Workaround

Manually page (swipe) through each of the adjacent days from the edit until the today page.

iCloud backup & Syncing

I am curious about two aspects:
(1) Is the app data backed up via iCloud backup?
(2) Is there anyway to sync my app data from my iPhone to my iPad or iPod?

Widgets or Watch complications?

Have you considered making an iOS widget to help see your progress for the day, or maybe even enter foods?

Similarly, if you ever have Apple watch support I would love to have a watch complication. Perhaps a Daily Dozen loop that you can try to close by getting 12 points?

Dark mode

Are there any plans for dark mode support?

language support

Hi, here in Germany many older people do not speak english. This app fits perfect for any age but there is this language barrier.

Is it possible to add language support? I‘m not a coder but would contribute the translation for german.

cheers
eugene

Add in Contribution details to menu

To promote visibility for the current iOS project, it would helpful to include an additional link to information on how to contribute to the project with a link to the Github repo and guidelines in the app side drawer navigation.

iOS 14 Date/Time Picker Changes

Existing date picker code behaves different under iOS 14 than previous iOS versions. The change modifies and/or breaks the user interaction in picking dates and times.

Checklist Date

iOS 12, 13: date tumbler selector

ChecklistDate_ios12

iOS 14: date popup selector

ChecklistDate_ios14_a
ChecklistDate_ios14_b

Weight Entry Time

iOS 12, 13: date tumbler selector

WeightTime_ios12

iOS 14: date popup selector

WeightTime_ios14_a
WeightTime_ios14_b

User Settings

iOS 12, 13: date tumbler selector

UserSettings_ios12

iOS 14: date popup selector obscures part of "Remind me at:".

UserSettings_ios14_a

Beverages & Stay Hydrated Integration

If you can look at further development to integrate the two apps better. It would also be good if the user ticks all of the beverages boxes in the Daily Dozen app it automatically updates the 21 tweaks with a tick in the Stay Hydrated box.

Originally posted by @nikki686 in #35 (comment)

Allow user to check off list from home screen

Instead of sending the user to another screen that only offers them an option to add to their count, please add checkbox options to the home screen list so they can immediately tick off items.

Update README

Update README with new guidelines and removal of older information.

Notification Reminder: needs text localization

    static let title = "DailyDozen app." // :NYI:ToBeLocalized:
    static let subtitle = "Do you remember about the app?" // :NYI:ToBeLocalized:
    static let body = "Update your servings for today!" // :NYI:ToBeLocalized:

German translation for iOS app

Hi,

I would like to translate the texts in the iOS app into German. I have no experience in using GitHub.

How can I contribute?

Thanks in advance!

Getting invited to slack channel

Hi, I'd like to contribute to this project. Can someone please invite me to the slack channel? I tried the usual invite mechanism but nobody has replied to my emails. I'm at [email protected] . Please let me know how to get involved. I have tried messaging on Twitter, Facebook and direct email. No replies. Thanx.

Add checkbox for the spices category

Currently, there isn't a way to track daily spice intake like the other categories. It would be helpful to add in a checkbox for this category to track how much is being consumed daily.

Add comma support for weight input

We've received a few reports of users not being able to use a comma in place of a decimal point. See below:

"I live in Sweden and my keyboard is set up to use a comma (,) when writing a decimal point - e.g. when documenting my weight, my numeric keyboard only allows me to separate fractions of a kilogram with a comma. i.e. 85,1 kg instead of 85.1 kg. Unfortunately, the app won’t register the comma! I have just discovered this today."

Upgrade: phase out Storyboard auto-generated random String IDs

Phase out Storyboard auto generated random String IDs. Here is an example set of 6 random ids for 2 phrases in 1 language:

Example Random IDs

The auto-gerenetated, non-editable random ids have the following disadvantages:

  • Auto-generated process does not inherently allow for developer override.
  • Occurs for each use-instance instead of each phrase-instance. This creates a larger set of redundant translations to manage. In the example, 2 phrases becomes 6 entries.
  • Random ids, which have no human readable meaning, require more time to work with phrases in code.
  • Not used by (and obsoleted in) SwiftUI.

The 6 random id, from the example, becomes 2 entries with 1 human readable key each.

TwoEntries

This migration supports the NSLocalizedString in the current application and is a necessary step for use by String in SwiftUI.

/* Back to today */
"dateBackButtonTitle" = "Powrót do dzisiaj";

/* Today */
"dateButtonTitle.today" = "Dzisiaj";

This example change of two phrases allowed for a reduction of 4 files in the main release version and 84 files in the multi-language branch:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.