Skip to content
develop
Switch branches/tags
Code

Files

Permalink
Failed to load latest commit information.

Open Food Facts iPhone and iPad app

Build Status Project Status Crowdin TestFlight release

What is Open Food Facts? What can I work on ?

Open Food Facts is a food products database made by everyone, for everyone. Open Food Facts on iPhone and iPad has 0,5M users and 1,6M products. Each contribution you make will have a large impact on food transparency worldwide. Finding the right issue or feature will help you have even more more impact. Feel free to ask for feedback on the #android channel before you start work, and to document what you intend to code.

Features you can work on

Join the team !

OpenFoodFacts has a Slack chat room where we discuss and support each other, join the #iOS and #iOS-alerts channels.

Current features

  • Barcode scanning (including a simple offline mode)
  • NOVA, Nutri-Score and Eco-Score display (including in grey if we don't have them yet for the product)
  • Ingredient analysis with a simple way to get it if not available
  • Product page (needs revamping)
  • Search for products based on name
  • Allergen alerts (would need to be more discoverable)
  • Internationalised user interface & multilingual products handling (view & data addition)
  • Product addition & editing (incl. on-the-fly OCR of ingredients and labels, plus integration of the OFF AI)
  • Image upload
  • Night mode

Code documentation

Automatically generated code documentation on the wiki

Building

Quick & automatic setup

The easiest way to setup the dependencies of the project and generate the Xcode project is to run sh scripts/setup.sh from the top of the repository, before opening the project in Xcode.

Dependency Management - Carthage

We currently use Carthage for dependency management. New to Carthage? Others have found the following resources helpful:

Before opening the project in Xcode, run brew install carthage

carthage bootstrap --platform iOS --cache-builds

To generate the Xcode project run sh scripts/create-project.sh. In order to generate the Xcode project we use XcodeGen.

Fastlane

See the fastlane/README.md for a list and description of all lanes.

To launch a lane, you must have several env variable set. This can be done by creating a .env file in the fastlane folder, and fill it (see .env.example)

You can install Fastlane with Homebrew:

brew cask install fastlane

Generating screenshots

fastlane snapshot 
Roadmap on automatic screenshot generation:

Style and conventions - SwiftLint

A script runs when building the app that executes SwiftLint to enforce style & conventions to the code.

You can install SwiftLint with Homebrew:

brew install swiftlint

Error reporting - Sentry

Track crashes

Translations

You can help translate Open Food Facts (no technical knowledge required, takes a minute to signup).