Xayn Discovery is your news assistant that discovers an endless stream of news, articles and other content for you. Ad-free, loaded with privacy features and highly personalised.
Endless content
Discover a stream of continuous reading recommendations that you will love.
News, articles and other content from great sources are just one scroll away.
Full on privacy
Everything you do and read with Xayn stays on your device. We’ve also made
our product completely ad-free, so that you can't be retargeted by anyone. On top of that, we block
cookies & third-party trackers, so that you stay completely anonymous.
Your personalised news assistant
Our powerful edge AI learns all about your interests and
searches the internet for content recommendations you will love. Powered by great content sources
from around the world and individually curated for you.
You can check more details about the code structure we follow here.
Our understanding of a privacy-friendly discovery app is that, as a rule, we aim not to process any of your personal data you input in the App. Once you delete the App from your device, all your personal data should be deleted. Even though it's our long term goal, for our beta version, we track certain user actions to understand the collective user behavior. For full transparency, you can check an up-to-date list of tracked events and properties that is sent to the analytics platforms we utilize.
-
Fork the repository.
-
Add environment files
.env.debug
and.end.pod
toapplication
directory. An example of what to include in these files can be found inenv.example
. -
Provide your own keys and URLs to the newly created
.env.debug
and.end.pod
files. Alternatively, you can use our fastlane configuration to automatically fill the secrets by answering some wizard questions in the command line, just run on your terminal:$ fastlane build_runner
. -
In case you chose to run
$ fastlane build_runner
, you can skip this step.
4.1. In case you want to run on Android, add toapplication/android/custom.properties
the followingINSTABUG_TOKEN=YOUR INSTABUG TOKEN
4.2. Run on the root project terminal:
$ cd application $ flutter pub get $ flutter pub run build_runner build --delete-conflicting-outputs
-
Run the app during the development on simulators/emulators by simply executing on the terminal:
$ flutter run
.
In order to run and debug the app on a real iOS device a provisioning profile, and a developer certificate is necessary. A default development profile for development is part of this repository. To install it run:
$ open ios/profiles/Xayn_Discovery_Internal_Develop_Profile.mobileprovision
Or open the profile in the finder, then install the development certificate found
under ios/profiles/Certificates-internal.p12
the encryption key can be found in 1password.
If you want to use another profile follow this steps:
- Create a development certificate in XCode (Settings -> Accounts -> Xayn AG Team -> Manage Certificates -> "+" Button -> Apple Development)
- Create a "iOS App Development" provisioning profile under Certificates, Identifiers & Profiles
- Be sure that it matches the default team id and app id found in
ios/fastlane/Appfile
and that it contains your created certificate in step 1 - Edit the
ios/Flutter/UserDefaults.xcconfig
to contain
USER_PROVISIONING_PROFILE=YOUR PROFILE NAME
USER_CERTIFICATE=YOUR CERTIFICATE NAME
- Now plugin your iOS device (be sure it is accepted as a development device XCode -> Window -> Devices )
- Run
flutter run
NOTE: The ios/Flutter/Dartdefines.xcconfig
can contain overrides
for USER_PROVISIONING_PROFILE/ CERTIFICATE
(when running fastlane publish
) so be sure that this
is not the case!!!
Read more about the dependencies we use in Xayn Discovery here.
fastlane makes it easy to automate beta deployments and releases for your iOS and Android apps.
First, check fastlane's get started section in the documentation to make sure you install it locally.
We have custom fastlane scripts that you can run locally to make your life easier:
$ fastlane build_runner
ensures that all dependencies are created, and property files are correctly set-up.$ fastlane check
setup all dependencies then checks if the code is properly formatted, does not have any dart analysis issues, and all tests are passing.
Gitleaks is a tool for detecting and preventing hardcoded
secrets in git repos. The tool scans the repo using a set of regex rules. We have our custom set of
rules implemented in the .gitleaks.toml
file, located at the root folder of the
project.
Steps to follow for scanning the repo:
- Get started with gitleaks
- Navigate to the
root folder
of the project. - Run the terminal command
$ gitleaks detect -l debug --verbose
. For more information about the usage, please check Gitleaks documentation. _ Please note: in order to use our custom set of rules, the location where the command is run must be the same of where the.gitleaks.toml
is located. _ - Check the output on the terminal and look for any hardcoded secrets.
This project is licensed under the Apache License 2.0
. See the LICENSE file for
details.