The official mobile app for The Daily Pennsylvanian, 34th Street, and Under The Button!
Table of Contents
- Top Stories: View what’s trending in The Daily Pennsylvanian, 34th Street Magazine, and Under The Button.
- Discover: Search the articles of each publication and view the most recent articles in certain categories.
- Crosswords: Challenge yourself by playing our DP+ crosswords!
- Bookmarked Articles: Save articles to read at a later time.
- Manage Feed: Change the order in which categories on your home feed change.
- Notifications: Keep up to date on breaking news and stories chosen by editors.
- Clone the repo.
git clone https://github.com/dailypenn/canada-goose.git
- Install NPM packages.
The command above runs npm install using packages that are compatible with the current expo version - if it gives you errors, feel free to try
npx expo install
npm install
instead.
🔔 Note: For most purposes, you should use the
development
branch. If you are using themaster
branch, you must set up the iOS app credentials locally:
- (
master
branch only!) Updatecredentials.json
with local iOS credentials- Get distribution certificate from Apple Developer Portal and update path and password.
"distributionCertificate": { "path": "ios/certs/<DISTRIBUTION_CERTIFICATE>.p12", "password": "<DISTRIBUTION_CERTIFICATE_PASSWORD>" }
- Download provisioning profiles from Apple Developer Portal and update paths. The main app target and the OneSignalNotificationServiceExtension require separate provisioning profiles. For
local
anddevelopment
EAS builds, the provisioning profiles should be of type Ad hoc. Forproduction
EAS builds, the provisioning profiles should be of type App Store.
"provisioningProfilePath": "ios/certs/.../<PROVISIONING_PROFILE>.mobileprovision"
- If you want to run the app directly on your device, you must first register the device with Expo. Otherwise, feel free to skip this step.
eas device:create
- Build the app. This may take a while, but you don't have to repeat this process unless you change the underlying native code powering the app!
eas build --profile <profile-name> --platform <platform>
<platform>
should beios
,android
, orall
<profile-name>
should be eitherdevelopment
(to run the app on your device),local
(to run the app on an iOS simulator), orproduction
(to create a production build for submission).- For a
local
build:- Download the build once it is completed from the link provided. This will be a .tar.gz file.
- Extract the file by opening it. You will now have a file like DP.app.
- Open up your simulator.
- Drag the file into the simulator.
- The app will be installed in a few seconds.
- We are currently using React Native version 0.71.14. However, in previous iterations, we used React Native versions 0.69 and prior where there is a known bug in node_modules/react-native/ReactCommon/yoga/yoga/Yoga.cpp preventing Fastlane from building correctly on Expo. See the official issue here: React Native Issue #36758. Follow the steps below to apply a development patch for this issue only.
- Verify that the expo build fails due to the issue described above. If the build works or fails due to another error, do not run the patch steps listed below.
- Install patch-package
- Modify the source code similar to this commit. Exact line numbers may vary.
- Run
npx patch-package react-native
- For a
- Start the app.
If you are developing against a physical device, scan the resulting QR code. Otherwise, press the "a" or "i" key to open the app in an Android emulator or iPhone simulator respectively. Important Note: To avoid runtime issues when starting the development server, please ensure that your machine is running Node.js v16.20.2 (LTS). See this link to see how to change between versions.
npx expo start --dev-client
In order to contribute, please apply to join our team! Applications open at the beginning of fall and spring semesters here!
Tasked with migrating content from the harsh winter envrionment of print publication to the temperate oasis of mobile communication, DP Developers faced a challenge like no other: what do we name our objective? It wasn't until we passed the hundredth person with an overpriced winter jacket that we found an animal which so accurately captured the migratory nature of our mission and Penn culture as a whole. And so, equipped with a fitting name, we hatched our plan.
Operation Canada Goose is here to bring you the best of The Daily Pennyslvanian, straight to your down jacket pockets.