{"id":20393424,"url":"https://github.com/birkir/react-native-appstore","last_synced_at":"2025-04-12T12:05:44.589Z","repository":{"id":41508606,"uuid":"110560871","full_name":"birkir/react-native-appstore","owner":"birkir","description":"App Store clone in React Native","archived":false,"fork":false,"pushed_at":"2018-10-28T19:18:47.000Z","size":26757,"stargazers_count":111,"open_issues_count":2,"forks_count":28,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-03-26T06:43:28.508Z","etag":null,"topics":["appstore","clone","react-native"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/birkir.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-13T14:48:56.000Z","updated_at":"2024-09-06T10:20:35.000Z","dependencies_parsed_at":"2022-09-11T00:10:42.887Z","dependency_job_id":null,"html_url":"https://github.com/birkir/react-native-appstore","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birkir%2Freact-native-appstore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birkir%2Freact-native-appstore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birkir%2Freact-native-appstore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/birkir%2Freact-native-appstore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/birkir","download_url":"https://codeload.github.com/birkir/react-native-appstore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248565076,"owners_count":21125415,"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":["appstore","clone","react-native"],"created_at":"2024-11-15T03:48:44.483Z","updated_at":"2025-04-12T12:05:44.552Z","avatar_url":"https://github.com/birkir.png","language":"JavaScript","readme":"![Build status](https://travis-ci.com/ueno-llc/react-native-appstore.svg?token=Xb6NQT3VcNMAAkvfu4os\u0026branch=master)\n\n# App Store demo\n\nThis repository contains a sample react-native app with batteries-included. Re-creating the App Store app is a hard thing to do in react native and we wanted to make an attempt.\n\n*Disclaimer: This is for demonstration purposes only. Not intended to cause user confusion. Will not be released, used or marketed in any way. Project's solely purpose is to experiment with the abilities and limitations of react native. Pictures in the screenshots below are property of Ueno and can be found on our [Dribble](https://dribbble.com/ueno) and [Instagram](instagram.com/uenodotco/?hl=en).*\n\n![Today screen](https://media.giphy.com/media/xT0xeqCd7M7TJJI93i/giphy.gif)![App list to detail view](https://media.giphy.com/media/3o6fJ4TfZOgw9dy5OM/giphy.gif)![Screenshots](https://media.giphy.com/media/3o6fJdikzwcvl9VpE4/giphy.gif)![Search](https://media.giphy.com/media/3o6fJe1CPV06DrKg7K/giphy.gif)\n\n## E2E Testing\n\nThis project uses detox to run end-to-end UI testing with jest as test runner under the hood. Some tooling is needed to get started, but the tests will also run on a CI.\n\n### Setup tools\n\n```bash\nbrew tap wix/brew\nbrew install --HEAD applesimutils\nnpm install -g detox-cli\n```\n\n### Run the tests\n\n```bash\nnpm start\ngem install xcpretty\ndetox build --configuration ios.sim.release\ndetox test --configuration ios.sim.release\n```\n\n## Integration, Unit and Code Quality Testing\n\nCode is linted with eslint using airbnb's config and personal opinionated exceptions.\n\n```bash\nnpm run lint\n```\n\nWe use jest also for running unit tests with snapshots and enzyme for cases where we want more control.\n\n```bash\nnpm run test\n```\n\n## Continuous Delivery\n\n![Imgur](https://i.imgur.com/o91jUrQ.png)\n\nThe pipeline for continously deliver the app is actually two separate processes integrated seamlessly into one.\n\nContributors are responsible for running tests locally before pushing to GitHub. This creates smoother experience for both the contributors and the maintainers.\n\nTests are run automatically in a CI when a pull-request (PR) is created, the pull-request can only be merged when the tests do pass.\n\nEvery commit on the `master` branch will do one of the following after tests have passed:\n\n### Native build (binary)\nCheck if any changes were made to the `./ios` folder or if a commit message includes the tag `[BUILD]`. Do a full native  build, sign it and upload it to TestFlight. Upload debug symbols to Sentry.\n\n### CodePush build (assets)\nBuild and pack OTA update via CodePush (if native build was not made). Upload sourcemaps to Sentry.\n\nThe TestFlight version of the app is linked to staging code-push key and the AppStore version is linked to production code-push key. Manual promotion can be done after the TestFlight app has been approved for sale.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirkir%2Freact-native-appstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbirkir%2Freact-native-appstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbirkir%2Freact-native-appstore/lists"}