Open Food Facts iPhone and iPad app
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
Translations
You can help translate Open Food Facts (no technical knowledge required, takes a minute to signup).