{"id":13682893,"url":"https://github.com/shootismoke/mobile-app","last_synced_at":"2025-04-04T14:09:06.159Z","repository":{"id":38960962,"uuid":"126515903","full_name":"shootismoke/mobile-app","owner":"shootismoke","description":" See your city's air pollution measured in daily cigarettes. iOS/Android.","archived":false,"fork":false,"pushed_at":"2023-03-13T08:44:00.000Z","size":10787,"stargazers_count":484,"open_issues_count":19,"forks_count":119,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T22:32:33.767Z","etag":null,"topics":["air-pollution","aqi","cigarettes","climate-change","expo","functional-programming","global-warming","hacktoberfest","pollution","react-native","sustainability"],"latest_commit_sha":null,"homepage":"https://shootismoke.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/shootismoke.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"amaurym","custom":"https://www.paypal.me/amaurym10/20"}},"created_at":"2018-03-23T17:09:22.000Z","updated_at":"2024-10-16T22:32:34.000Z","dependencies_parsed_at":"2023-07-12T14:50:52.871Z","dependency_job_id":null,"html_url":"https://github.com/shootismoke/mobile-app","commit_stats":{"total_commits":730,"total_committers":34,"mean_commits":"21.470588235294116","dds":0.6301369863013699,"last_synced_commit":"012df22f7f56400315f19b80566813a7389f269b"},"previous_names":["amaurymartiny/shoot-i-smoke"],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shootismoke%2Fmobile-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shootismoke%2Fmobile-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shootismoke%2Fmobile-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shootismoke%2Fmobile-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shootismoke","download_url":"https://codeload.github.com/shootismoke/mobile-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246262491,"owners_count":20749170,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["air-pollution","aqi","cigarettes","climate-change","expo","functional-programming","global-warming","hacktoberfest","pollution","react-native","sustainability"],"created_at":"2024-08-02T13:01:55.078Z","updated_at":"2025-04-04T14:09:06.141Z","avatar_url":"https://github.com/shootismoke.png","language":"TypeScript","funding_links":["https://github.com/sponsors/amaurym","https://www.paypal.me/amaurym10/20"],"categories":["TypeScript","Natural Resources"],"sub_categories":["Air Quality"],"readme":"\u003cp align=\"center\" style=\"background-color: #F8A65D;\"\u003e\n    \u003cimg alt=\"oss image\" src=\"./assets/logos/transparent/transparent@3x.png\" width=\"100px\"\u003e\n    \u003ch1 align=\"center\"\u003eShoot! I Smoke\u003c/h1\u003e\n\u003c/p\u003e\n\u003ch4 align=\"center\"\u003eKnow how many cigarettes you smoke based on the pollution of your location\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/shootismoke/mobile-app/actions\"\u003e\n    \u003cimg alt=\"Github Actions\" src=\"https://github.com/shootismoke/mobile-app/workflows/pr/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codeclimate.com/github/shootismoke/mobile-app/maintainability\"\u003e\n    \u003cimg alt=\"codeclimate\" src=\"https://api.codeclimate.com/v1/badges/9fc8ebb000978f14b6d0/maintainability\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://itunes.apple.com/us/app/s-i-smoke/id1365605567?mt=8\"\u003e\n    \u003cimg alt=\"app-store\" src=\"https://github.com/shootismoke/webapp/blob/master/assets/images/app-store.png?raw=true\"  width=\"200\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://play.google.com/store/apps/details?id=com.shitismoke.app\"\u003e\n    \u003cimg alt=\"google-play\" src=\"https://github.com/shootismoke/webapp/blob/master/assets/images/play-store.png?raw=true\" width=\"200\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./assets/screenshots/ios/iPhone-X-1.png\" alt=\"screenshot-1\" width=\"150\"\u003e\n  \u003cimg src=\"./assets/screenshots/ios/iPhone-X-2.png\" alt=\"screenshot-2\" width=\"150\"\u003e\n  \u003cimg src=\"./assets/screenshots/ios/iPhone-X-3.png\" alt=\"screenshot-3\" width=\"150\"\u003e\n  \u003cimg src=\"./assets/screenshots/ios/iPhone-X-4.png\" alt=\"screenshot-4\" width=\"150\"\u003e\n  \u003cimg src=\"./assets/screenshots/ios/iPhone-X-5.png\" alt=\"screenshot-5\" width=\"150\"\u003e\n\u003c/p\u003e\n\n---\n\n## :iphone: Try it on Expo\n\nThis app is bootstrapped with [Expo](https://expo.io), you can download the Expo app on the [App Store](https://itunes.apple.com/us/app/expo-client/id982107779) or [Play Store](https://play.google.com/store/apps/details?id=host.exp.exponent), and enter the url provided below. We have 2 release channels:\n\n| Release Channel                                                                           | Version | Description                                                                 | Url                                                                           |\n| ----------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |\n| [Production](https://exp.host/@amaurymartiny/shootismoke?release-channel=production-v1.8) | v1.8.10 | Same version as Shoot! I Smoke on the App Store and Play Store.             | `https://exp.host/@shootismoke/mobile-app?release-channel=production-v1.8.10` |\n| [Staging](https://exp.host/@amaurymartiny/shootismoke)                                    | v1.8.10 | Latest version currently in development: newest features, may contain bugs. | `https://exp.host/@shootismoke/mobile-app`                                    |\n\n## :hammer: Build it yourself\n\nRun the following commands:\n\n```bash\n# Clone this repo\ngit clone https://github.com/shootismoke/mobile-app \u0026\u0026 cd shoot-i-smoke\n# Install dependencies\nyarn install\n\n# Copy secrets\ncp .env.example .env\n\n# Run the app with Expo\nyarn start\n```\n\nThe [Expo](https://expo.io) packager will show, and you can either:\n\n-   install the Expo app, scan the displayed QR code, and run the app on your mobile phone directly.\n-   open the Android simulator.\n-   open the iOS simulator.\n\n#### Use your own API tokens\n\nAll required API tokens are already pre-filled in `eas.json`. If you want to use your own API tokens, then in `eas.json`'s `env` field, add your own values. For those that are optional, you can just put `null` (without quotes).\n\n| Name              |                         | Service                                                        | Url                                                                 | Comments |\n| ----------------- | ----------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------- | -------- |\n| GEOAPIFY_API_KEY  | Geoapify geocoding      | https://geoapify.com                                           | Required. Get your own and populate it in `.env`                    |\n| BACKEND_SECRET    | Shoot! I Smoke Backend  | https://github.com/shootismoke/backend                         | Required. Pre-filled with a staging token.                          |\n| AQICN_TOKEN       | World Air Quality Index | http://aqicn.org/api/                                          | Required. You can use the public one in `eas.json` for development. |\n| SENTRY_PUBLIC_DSN | Sentry Bug Tracking     | https://sentry.io                                              | Optional.                                                           |\n| AMPLITUDE_API_KEY | Amplitude Analytics     | https://amplitude.com                                          | Optional. Note: we **never** track PII.                             |\n|                   | Google Maps for iOS     | https://developers.google.com/maps/documentation/ios-sdk/start | Optional in development.                                            |\n|                   | Google Maps for Android | https://developers.google.com/maps/documentation/android-api/  | Optional in development.                                            |\n\n## :raising_hand: Contribute\n\nIf you find a bug, or if you have an idea for this app, please [file an issue here](https://github.com/shootismoke/mobile-app/issues). We really appreciate feedback and inputs! For code contribution, you can start with these [easy tasks](https://github.com/shootismoke/mobile-app/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).\n\nMore information on contributing [here](./CONTRIBUTING.md).\n\n## :microscope: Tests\n\nThe codebase unfortunately isn't much covered by tests. Check out the `*.spec.ts` files in the project for tests. If you're interested to help out, have a look at [issue #19](https://github.com/shootismoke/mobile-app/issues/19).\n\n## Releases\n\nThe app released on the App Store and Play Store is always the one on the `production` branch. We use [EAS Update](https://docs.expo.dev/build/updates/) to remotely update the app when necessary. In general, this means that the semver patch version is bumped.\n\nFor major updates that don't work via EAS Update (such as an Expo SDK version bump), a new app binary is created using the commands below. In general, this means that the semver minor version is bumped.\n\n```bash\n# IOS\neas build -p ios\neas submit -p ios\n\n# Android\neas build -p android\neas submit -p android\n```\n\n## :newspaper: License\n\nGPL-3.0. See [LICENSE](./LICENSE) file for more information.\n\n## :star: Credits\n\nCreated with pride by [Marcelo](http://www.marcelocoelho.cc) \u0026 [Amaury](https://amaurym.com).\n\nA **huge** thanks to the following contributors for their amazing work:\n\n-   [@lucienbl](https://github.com/lucienbl)\n\n---\n\n\u003ca href=\"https://www.producthunt.com/posts/sh-t-i-smoke?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-sh-t-i-smoke\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=126582\u0026theme=light\" alt=\"Shoot! I Smoke - See your city's air pollution measured in daily cigarettes. | Product Hunt Embed\" style=\"width: 250px; height: 54px;\" width=\"250px\" height=\"54px\" /\u003e\u003c/a\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshootismoke%2Fmobile-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshootismoke%2Fmobile-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshootismoke%2Fmobile-app/lists"}