Giter Club home page Giter Club logo

ios's Introduction

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.

Debugging

Instruments

We have a 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 a simulator or device.
  2. Select the Instruments target and run it on a Mac. A new instance of the Instruments app will run. It will have a grayed out icon indicating that it works in debug mode with custom instruments attached.
  3. Select the 'DDG Trace' template or set up a custom one by importing the '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.

ios's People

Contributors

afterxleep avatar alessandroboron avatar amddg44 avatar ayoy avatar brindy avatar bunn avatar bwaresiak avatar daisuke-t-jp avatar daxmobile avatar dependabot[bot] avatar diegoreymendez avatar dus7 avatar federicocappelli avatar graeme avatar jaceklyp avatar jonathankingston avatar loremattei avatar mallexxx avatar miasma13 avatar nilnilnil avatar quanganhdo avatar roop avatar sabrinatardio avatar samsymons avatar shakyshane avatar slayterdev avatar sreilly avatar subsymbolic avatar thisisdinosaur avatar tomasstrba 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  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

ios's Issues

Site rating doesn't refresh if change protocol from `http` to `https`

Steps to reproduce behavior

  1. Visit http://www.ust.hk with the app
  2. Check the site rating, the encryption type is unencrypted
  3. Change the url to https://www.ust.hk
  4. Check the site rating again, and the encryption type is still unencrypted

Expected behavior

The encryption type should be either forced, encrypted or mixed

Actual behavior

The encryption type is still unencrypted after I changed to visit the site with https

What is the version of the duckduckgo app you are running?

v7.6.1 on iPhone 6 Plus with iOS 11.4

Prevent the opening of installed apps

In any search results, such as Instagram, if you click on the link the corresponding application installed on the phone will open.

Perhaps this can be fixed so it does not happen, and put into the settings for users to turn on and off.

Important bookmarks

Hi there, not being able to import my bookmarks is the only thing stopping me from using DDG on iOS instead of Firefox.

I look forward to the possible implementation of this feature.

Add a Safari Content Blocker

Like your newly relaunched macOS app, please consider extending this app’s tracker blocking as a Safari content blocker, similar to Firefox Focus.

Bonus points if it includes an allow list, which Firefox Focus doesn’t have. ;)

Project construction issues

Why the project cannot build correct,when code signing changed~!
The most critical issue is the problem of handling two group IDs related to core

PDF scrolling is hard to follow

When I open a multi-page pdf file and try to scroll down, there is a glitch that seems to show content from several pages away, then quickly scrolls back to where it should be. It seems to happen whenever I change scrolling direction (for example, scroll down a few pages, lift off finger, then scroll up), so trying to quickly find a part of a document is hard. There also seems to be a similar glitch when zooming in.

Make building easier for external developers using xcconfig

Currently, the Xcode project file includes DuckDuckGo's Apple developer id. An external contributor (i.e. someone outside of the DuckDuckGo development team) needs to change the account id, app id and app group names before the app can be compiled. The external contributor should also take care to exclude these changes from the PR being worked upon.

It would make life easier for external contributors if these variables (development team id, app id and app group prefix) can be specified in a separate xcconfig file. The xcconfig file should not be included in the git repo, and a template can be included in place of that.

If you think this is worth doing, I can work on a PR for this.

Erase Button

I like it. I'm wondering if there is a way we can make it even more obvious that the app is automatically erasing everything for you.

This isn't a request for removal, just thinking out loud.

Please drop duckduckgo support for iOS

I have discovered very important details.
I have sold all my iOS devices.

https://forums.macrumors.com/threads/ios-is-terrible-about-privacy.2205813/
https://community.signalusers.org/t/suggestion-to-drop-signal-support-for-ios/9893

You can’t set up and use iPhone offline. You always have to do an internet activation in the setup window first. If you reset the software, internet activation is required again. iPad, iPod touch, Apple TV and Apple Watch same problem. The worst thing is if Apple shuts down the servers then you will never be able to use the iOS devices again.

Also when installing apps (locally installed by PC) you have to connect to the App Store the first time you start it. You are completely bound to Apple. Offline use is not possible.

During use it can connect over 100 undocumented Apple domains.

– my $150 or High-End Android device does not have this limitation. Can always set up and use offline.

Not to forget, iOS has a built-in remote keylogger from Apple. Every keypass is sent to Apple server!

In general, developers don’t like iOS. It is extremely limited and always set against the user.
Best duckduckgo iOS will no longer support, because iOS and the other Apple systems are harmful platform for developers and users.

It is better to support Android or Android without google service and Linux than iOS. Users always benefit first and it is the most sustainable solution.

Please will not support iOS devices and the Apple platform again. It is really a harmful platform.

[Enhancement] Add setting to clear data on termination

Hi,

If possible, please add a setting to allow us to clear all data and tabs (similar to the fire button) when we close the app.

Maybe something like this on the AppDelegate.swift?

func applicationWillTerminate(_ application: UIApplication) {
        ServerTrustCache.shared.clear()
        WebCacheManager.clear() {}
        tabManager.removeAll()
}

Thank you!

Target=“_Blank” HTML code is not honored

Within the iOS app, any links that have HTML code with target=“_blank”, the app does not honor it. Works fine on other web browsers like Safari, etc.

App version: 7.21.0
Device model: iPhone XS & iPad Pro 3rd Gen
iOS version: 12.3.1
Reproduce: click a link with the specified HTML property target=“_blank”
Expected behavior: Open a new tab to the link
Actual behavior: Takes the current tab to the link

White Theme or maybe different color themes?

Hello all,

I noticed in the app there are no options for customizing the look of the app. Maybe a white theme or a pure black theme for OLED display on the iPhone X. Just a suggestion mostly.

Have a good one!
Rose

Can't Build project ?

MacOS : 10.12.6 (16G1212)
XCode : Version 9.2 (9C40b)
Hello guys,
I have an issue when building your project on last Xcode.
What solution do I need to use to resolve this problem?

Thanks.

Hungs-MacBook-Pro:iOS-develop hungdct$ carthage bootstrap --platform iOS
*** Checking out OHHTTPStubs at "6.0.0"
*** Checking out SwiftyJSON at "4a62eb3a37e1e694a7f83d50093e803f966055ba"
*** Checking out SimulatorStatusMagic at "tags/1.9.5"
*** Checking out Device.swift at "0.5"
*** Checking out Alamofire at "4.5.0"
*** Checking out Kingfisher at "3.10.3"
*** Checking out Toast-Swift at "2.0.0"
*** xcodebuild output can be found in /var/folders/b_/n65p14fn67g8p21mpms9hflm0000gn/T/carthage-xcodebuild.OgtzLx.log
A shell task (/usr/bin/xcrun xcodebuild -workspace /Users/hungdct/Downloads/iOS-develop/Carthage/Checkouts/Alamofire/Alamofire.xcworkspace CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES -list) failed with exit code 72:
xcrun: error: unable to find utility "xcodebuild", not a developer tool or in PATH

New feature: Downloading files

Hello folks. I want to add Downloading files feature to this project. In example: downloading epub files, zip etc. So what do you think about it?

Expected behavior:

The app should download epub file, then shows it in Books app.

Actual behavior:

The app opens a page that shows the unicode.

No Eventual Connectivity

There is no Eventual Connectivity management so the user will know when he or she no longer has access to the internet. In addition, retrieving the internet connection does not continue downloading the pending data. The behavior described above can be observed in the following video:

https://youtu.be/3xmEQBXeXBU

This issue is part of a complete analysis being made to the DuckDuckGo open source iOS App
https://docs.google.com/document/d/1GY7_LbkmIzJgMrLcaoGT1i6OOF3qHF4bHFdi5eF0Els/edit?usp=sharing

Tab Switcher: the switcher background can be tapped in lieu of 'Done' bar button to dismiss

The tab switcher continually gives me the impression that I can tap the background to return to the tab I was at (e.g., dismiss the switcher as I would if I tapped the 'Done' button).

This might sound silly, but I'm constantly tapping the background expecting this behavior. Not sure if this is my own problem or not, so I'm opening this (low-priority) issue for feedback, as well as submitting a PR for the team to try out.


Alternately, swapping the location of the Settings-Cog nav-bar button and the Done tab-bar button may be enough.

In iOS, bar buttons with state transitions are more often found at the top of the screen, for example:

  • a search field with a results controller and a Cancel button that dismisses the search modal;
  • when you're editing a list in a table view and the Edit/Done nav-bar button

iPhone 5 support

Hey,

It seems since 13a22ac I can't update to 7.2.0 on my iPhone 5 through the App Store. (the target is iOS 10 but the iPhone 5 (which can run iOS 10.3.3) is 32bits)

It's not stated in the changelog, was this intentional?

I'm stuck with an upgrade I can't to in the app store, it's a bit annoying 😑

Link To App Store

Would be nice if you could place a link to the App Store in the Repo description. Currently it just says "DuckDuckGo iOS Application". There is a "link" setting so you can show a link next to the description.

I'd send a PR, but it's unfortunately not possible to PR this change.

Set DuckDuckGo as Safari Default

I think we should do this up front on setup. I think we can look at how the keyboards do it (as they have super complicated setup requirements).

I think this is the highest priority.

Traslation to others languages

Hi!

I have started to translate the app to Spanish from Spain and I see that there are many texts that do not exist in the Localizable.string file and I have started to add them, do you accept the translation to languages? :)

Regards,

Arturo.

UI/Snapshot Tests are broken

UI/Snapshot Tests are broken in develop. Something about the Onboarding, Site Ranking, and Network Offenders must have been changed and UI Tests were not updated apparently. It's a quick fix so I'm preparing a PR in case it's useful for you.

Color Scheme

I think the red while on brand is a bit alarmist in terms of color theory. We should arguably ride the private browsing wave on this and try to pull of a dark theme of some sort. I think Design can help a lot here.

swift 5.0

Excuse me, When to adapt swift 5.0?

[Error] Install fonts - Build step

I got an error from this script, when building, saying that it cannot find anything at ~/DuckDuckGo/Fonts/proximanova/. This path seems to be a Bundle path (visible inside the Xcode project), but it is not there on disk.

That aside, it tries to copy the fonts in this folder $SRCROOT/fonts/licensed. But the fonts are already there.

I don't know why you guys have this step, but to me, it seems unnecessary.

Localizations / Maintenance update

Hello,
I think it would be something great to add localizations to the app, I really miss it (French).
Plus, I think there should be a maintenance update, or some features added or ergonomic enhancements, as it is quite "repulsive" to see an app that has been last update in 2016! (I'm not saying that you're trash, hu, just telling that maybe, just maybe, a little maintenance won't hurt the app!

Thanks for reading guys, keep up the good work!

Where is your mystery unit converter?

Hello developers,

This is a question related to your website, not iOS app.

May I ask where is your mystery unit converter(s)? And how can I summon it?

Yesterday, typing 1 foot to meters made your mystery unit converter show up. Today that's not working.

Would you please help make them available in easier way? The question to a good engineer is: if you have those things, why you make it extremely hard for the users to find them?

App Name

I think we should just call it DuckDuckGo? Thoughts?

Safari Button

I think we can remove the safari button. Presumably they are here for a different reason, not to open in Safari.

Choose Theme (light or dark) when there is no Internet connection

Hello,

I wanted to know if the next behavior is expected from the app or if it is a bug:

I downloaded the app, and when I opened it for the first time, I had no Internet connection. The screen that asks users to choose a theme (light or dark) did not appear.

I ask this question because I am able to change the app's theme when I am offline in settings. Thus, the screen asking users to choose a theme the first time they open the app should appear regardless if he/she has an Internet connection or not.

Thank you.

!Bang deep links

I’d like to be able to go straight into the relevant app when doing a !Bang search. For example, !q should take the user straight into the Quora app rather than display the mobile site.

Tab restoration does not restore the tab history

When restoring a tab from disk, only the current page is restored. The tab’s back-forward history is lost.

App version: 7.25.0.0
Device model: iPhone SE
iOS version: 12.4.1

Steps to reproduce the bug:

  1. Open a new tab
  2. Go to a page (say, a DuckDuckGo search)
  3. Tap on a link (say, the first result)
  4. Wait for the page to finish loading
  5. Force-close the DuckDuckGo app
  6. Reopen the DuckDuckGo app

Expected behavior:

  • The app should open with a tab that allows one to go back (say, to the DuckDuckGo search)

Actual behavior:

  • The app opens with a tab that shows the last seen page, but doesn’t allow one to go back or forward

If you think this is worth doing, I'd be happy to discuss an implementation strategy and work on a PR for this.

Current tab highlighting is broken

Internal reference: https://app.asana.com/0/276630244458377/1128277820182171

Description

First scenario:

  1. Open a bunch of tabs.
  2. Navigate to tabs switcher.
  3. Select a tab I'm the middle.
  4. Close a tab before it.

Expected: the selected tab still has the highlight.
Actual: the highlight moves to the next tab down and it becomes the newly selected tab

Second scenario:

  1. Open a bunch of tabs.
  2. Navigate to tabs switcher.
  3. Select the last tab.
  4. Close a tab before it.

Expected: the last tab still has the highlight.
Actual: the highlight drops off.

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.