You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Daisuke TONOSAKI 65995ec09f
Delete empty folder in Xcode project tree. (#1151)
14 hours ago
.github Add GitHub Actions workflow for running unit tests (#1143) 2 weeks ago
AtbUITests Improve swift style + swiftlint (#1092) 1 month ago
Configuration Set version to 7.67.3 4 days ago
Core Update embedded files (#1155) 4 days ago
DuckDuckGo Update Lottie to 3.3.0 (#1149) 4 days ago
DuckDuckGo.xcodeproj Delete empty folder in Xcode project tree. (#1151) 14 hours ago
DuckDuckGoTests Update Lottie to 3.3.0 (#1149) 4 days ago
FingerprintingUITests Improve swift style + swiftlint (#1092) 1 month ago
Instruments update to use TDS (#533) 2 years ago
IntegrationTests Integration of BSK Content Blocking stack (#1042) 3 months ago
OpenAction update copy post copy guidelines review (#774) 1 year ago
ShareExtension update copy post copy guidelines review (#774) 1 year ago
TopSitesReport Run ESLint on scripts (#984) 7 months ago
Widgets Improve swift style + swiftlint (#1092) 1 month ago
fastlane Modify metadata to include en-CA and App name change for en-GB 4 days ago
fonts/licensed onboarding experiment 2 (#427) 3 years ago
performance update to use TDS (#533) 2 years ago
styleguide Improve swift style + swiftlint (#1092) 1 month ago
submodules Update URL param ref tests (#1096) 2 months ago
.eslintignore Run ESLint on scripts (#984) 7 months ago
.eslintrc Run ESLint on scripts (#984) 7 months ago
.gitignore Run ESLint on scripts (#984) 7 months ago
.gitmodules Use Smarter Encryption feature from BSK (#1069) 2 months ago
.swiftlint.yml Improve swift style + swiftlint (#1092) 1 month ago
CONTRIBUTING.md Update CONTRIBUTING.md 4 months ago
LICENSE.md Update LICENSE (#853) 1 year ago
ManualTestsScript.md Fix force touch shortcuts and add manual tests script 5 years ago
NOTICE Added NOTICE file (#305) 4 years ago
README.md Update LICENSE (#853) 1 year ago
adhoc-build.sh ipad improvements (#682) 2 years ago
adhocExportOptions.plist Clean up naming of the dev & ad hoc provisioning profiles (#973) 8 months ago
appStoreExportOptions.plist update profiles to use bitrise specific names 8 months ago
bitrise.yml Run ESLint on scripts (#984) 7 months ago
check_version.sh [Xcode] adds script preventing version changes 2 years ago
loc_export.sh Translations (#727) 2 years ago
loc_import.sh Improvements to loc import script (#1060) 3 months ago
loc_update.sh Translations (#727) 2 years ago
package-lock.json Bump minimist from 1.2.5 to 1.2.6 (#1103) 4 weeks ago
package.json Run ESLint on scripts (#984) 7 months ago
run_atb_tests.sh Make simulator in `./run-tests.sh` configurable. (#487) 3 years ago
run_itests.sh Migrate to Swift Package Manager (#704) 2 years ago
run_site_report.sh Make simulator in `./run-tests.sh` configurable. (#487) 3 years ago
run_tests.sh Migrate to Swift Package Manager (#704) 2 years ago
screenshots.sh add ui tests, add and expand dividers, show total tracker counts (#282) 4 years ago
set_version.sh Update set_version.sh example usage (#766) 2 years ago
update_embedded.sh Script to update embedded files (#1133) 3 weeks ago

README.md

DuckDuckGo iOS

We are excited to engage the community in development!

We are hiring!

DuckDuckGo is growing fast and we continue to expand our fully distributed team. We embrace diverse perspectives, and seek out passionate, self-motivated people, committed to our shared vision of raising the standard of trust online. If you are a senior software engineer capable in either iOS or Android, visit our careers page to find out more about our openings!

Building

Submodules

We use submodules, so you will need to bring them into the project in order to build and run it:

Run git submodule update --init --recursive

Developer details

If you're not part of the DuckDuckGo team, you should provide your Apple developer account id, app id, and group id prefix in an ExternalDeveloper.xcconfig file. To do that:

  1. Run cp Configuration/DuckDuckGoDeveloper.xcconfig Configuration/ExternalDeveloper.xcconfig
  2. Edit Configuration/ExternalDeveloper.xcconfig and change the values of all fields
  3. Clean and rebuild the project

Dependencies

We use Swift Package Manager for dependency management, which shouldn't require any additional set up.

SwiftLint

We use SwifLint for enforcing Swift style and conventions, so you'll need to install it.

Fonts

We use Proxima Nova fonts which are proprietary and cannot be committed to source control, see fonts.

Debugging

Instruments

We have Custom Instruments tool to help visualize and track events that happen during runtime.

In order to run it:

  1. Build a Debug version and install it on Simulator/Device.
  2. Select Instruments target and run it on a Mac. A New instance of Instruments app will be run that has a grayed out icon indicating that it works in debug mode with custom instruments attached.
  3. Select 'DDG Trace' template or set up a custom one by importing 'DDG Timeline' instrument from Library.
  4. Start recording.

See Instruments Developer Help for reference how to create custom instruments.

Terminology

We have taken steps to update our terminology and remove words with problematic racial connotations, most notably the change to main branches, allow lists, and blocklists. Closed issues or PRs may contain deprecated terminology that should not be used going forward.

Contribute

Please refer to contributing.

Discuss

Contact us at https://duckduckgo.com/feedback if you have feedback, questions or want to chat. You can also use the feedback form embedded within our Mobile App - to do so please navigate to Settings and select "Send Feedback".

License

DuckDuckGo is distributed under the Apache 2.0 license.