{"id":24160511,"url":"https://github.com/simpleweb/romulus-example","last_synced_at":"2026-04-17T02:32:27.015Z","repository":{"id":137435688,"uuid":"161312405","full_name":"simpleweb/romulus-example","owner":"simpleweb","description":"An example React Native application generated by romulus-cli","archived":false,"fork":false,"pushed_at":"2018-12-11T10:01:53.000Z","size":268,"stargazers_count":1,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-19T18:24:37.063Z","etag":null,"topics":["react-native","romulus"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simpleweb.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-11T09:50:47.000Z","updated_at":"2019-03-21T16:16:50.000Z","dependencies_parsed_at":"2023-07-21T08:16:05.244Z","dependency_job_id":null,"html_url":"https://github.com/simpleweb/romulus-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/simpleweb/romulus-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simpleweb%2Fromulus-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simpleweb%2Fromulus-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simpleweb%2Fromulus-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simpleweb%2Fromulus-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simpleweb","download_url":"https://codeload.github.com/simpleweb/romulus-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simpleweb%2Fromulus-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31912395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["react-native","romulus"],"created_at":"2025-01-12T16:14:25.344Z","updated_at":"2026-04-17T02:32:26.927Z","avatar_url":"https://github.com/simpleweb.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Romulus\n\n* [Installation](#installation)\n  * [Setup your environment](#setup-your-environment)\n  * [Setup iOS certificates](#setup-ios-certificates)\n    * [Development](#development)\n    * [Production](#production)\n  * [Install dependencies](#install-dependencies)\n  * [Start the development server](#start-the-development-server)\n  * [Running the app using React Native CLI](#running-the-app-using-react-native-cli)\n* [Tests](#tests)\n* [Flow](#flow)\n* [Deep Linking](#deep-linking)\n* [App Icons](#app-icons)\n* [Release and deployment](#release-and-deployment)\n  * [Building for testing](#building-for-testing)\n    * [iOS](#ios)\n    * [Android](#android)\n  * [Versioning](#versioning)\n  * [iOS](#ios-1)\n  * [Post-release](#post-release)\n\n\u003chr/\u003e\n\n## Installation\n\nBefore installation, please make sure you have the latest version of [Yarn](https://yarnpkg.com/lang/en/) installed.\n\n### Setup iOS certificates\n\nPlease note,\n* You should have your own development certificate.\n* Save any certificates, p12 files etc... to [our developer repo](https://github.com/simpleweb/developer.apple.com).\n* \"Romulus - iOS Development\" provisioning can and should be edited.\n* For release, we use a shared distribution certificate \"Romulus\", this should not be edited, deleted or regenerated.\n\n#### Development\n\n[Follow this guide](https://github.com/simpleweb/iOS-Development-For-Teams/blob/master/guide/certificates/ios-app-development.md) to setup your development certificate.\n\nOnce your certificate is all setup, head back to the Apple developer portal and edit the existing \"Romulus - iOS Development\" provisioning profile to include your certificate (and any devices you wish to add). Download the new provisioning profile and you should be good to go.\n\n#### Production\n\nMake sure you clone down [our developer repo](https://github.com/simpleweb/developer.apple.com) and double click the `Certificates.p12` from the `romulus/certificates/production/simpleweb` folder.\n\nThis is a shared certificate, you __do not__ need to generate a new one each time.\n\nAfter this is installed, please download the \"Romulus - iOS Distribution\" provisioning profile from the Apple developer site.\n\n### Install dependencies\n\nInstall JavaScript dependencies with `yarn`.\n\n```\n$ yarn install\n```\n\n### Start the development server\n\nReact Native uses a development server to bundle up your code, you'll need this running before launching the app in a simulator.\n\n```\n$ yarn run start\n```\n\n### Running the app using React Native CLI\n\nYou can use the [React Native CLI](https://www.npmjs.com/package/react-native-cli) to easily run the app onto the iOS and Android simulators.\n\n```\n$ yarn global add react-native-cli\n```\n\nOnce installed you can then run the app onto each platform’s respective simulator.\n\n```\n$ react-native run-ios\n$ react-native run-android\n```\n\nThe iOS version (may) use Pods, and requires to be run via it's Xcode Workspace. If you have build errors with the iOS command above, please open `Romulus.xcworkspace` and run your builds from there.\n\n## Tests\n\nThis project uses [Jest](https://facebook.github.io/jest/) for testing. You can run the tests once, have Jest continually watch for changes or ask it to produce a coverage report.\n\n```\n$ yarn run test\n$ yarn run test:watch\n$ yarn run coverage\n```\n\nWith Jest, tests can live anywhere within the codebase, the majority however live in the `__tests__` folder at the root of the project. Any folder with the same name or files ending in `.test.js` will also be included when running Jest.\n\n## Flow\n\nRomulus uses [Flow](https://flowtype.org/) to type check the app. If there are missing definitions for external libraries (AKA, you receive lots of Flow errors when using 3rd party code) you can use [`flow-typed`](https://flowtype.org/docs/third-party.html) to fill in any missing gaps.\n\nIt’s worth running the update command every so often to keep things in check.\n\n```\n$ flow-typed update\n```\n\n## Deep Linking\n\nTo get Deep Linking working, it requires a few additional steps for iOS and Android. The steps can be found on the [react navigation docs](https://reactnavigation.org/docs/en/deep-linking.html).\n\n## App Icons\n\nThe source app icons is located in `App/Assets/AppIcon.png`. The icons for Android and iOS are generated with [`rn-toolbox`](https://github.com/bamlab/generator-rn-toolbox). Please refer to their [documentation](https://github.com/bamlab/generator-rn-toolbox/blob/master/generators/assets/README.md) to generate new icons.\n\nTypically though the command should be something along these lines.\n\n```\n$ yo rn-toolbox:assets --icon App/Assets/AppIcon.png\n```\n\n![Romulus App Icon](/App/Assets/AppIcon.png)\n\n## Release and deployment\n\n### Building for testing\n\nTesting builds should be configured to point towards staging and released using Fabric.\n\nTo configure the build for staging, please place staging configuration into `.env.production`. While this is confusing, unfortunately the plugin we are using to populate the environment looks for this file when the app is built in release mode, rather than being environment specific.\n\n#### iOS\n\nFor iOS, you will need to produce a release build using the `Romulus - iOS Development` provisioning profile. Please make sure everyone’s UUID in the profile you wish to test with. Please refer to [this guide](https://docs.fabric.io/apple/beta/beta-walkthrough.html) for releasing on Fabric.\n\n#### Android\n\nFor Android, simply build the project using the instructions below and then follow the [Beta Process Walkthrough](https://docs.fabric.io/android/beta/beta-walkthrough.html) guide.\n\nYou will need to make sure Crashlytics is installed in Android Studio, [follow these instructions](https://www.fabric.io/downloads/android) if you don’t have it setup.\n\n### Versioning\n\nWhen producing a new build you will need to bump the version number. This is handled more or less automatically through the version in the `package.json`.\n\nFor iOS you need to run the following command which automatically updates the XCode project with the version inside the `package.json`. It also increments the build number.\n\n```\n$ yarn run bump\n```\n\nAndroid’s version is dynamically generated using it’s Gradle files.\n\nIf there's ever any issues with this flow, please [refer to this article](https://medium.com/@andr3wjack/versioning-react-native-apps-407469707661).\n\n### iOS\n\nIn XCode build to the \"Generic iOS Device\" and then archive the build. Building (as opposed to running) will use the \"Signing (Release)\" profile, the provisioning profile for this must be \"Romulus - iOS Distribution\".\n\nOnce archived simply open the Organizer in XCode and upload the build.\n\n### Android\n\nFrom [https://github.com/simpleweb/developer.apple.com/tree/master/romulus/android](https://github.com/simpleweb/developer.apple.com/tree/master/romulus/android), download the `romulus.keystore` file and place it into `android/app`.\n\nThen take the environment variables from `gradle.properties` and and them into your own properties file located in `~/.gradle/gradle.properties`.\n\nOnce these are both setup correctly, go into the `android` directory and run...\n\n```\n$ ./gradlew assembleRelease\n```\n\nThis should leave you with a signed APK located in `android/app/build/outputs/apk/app-release.apk`.\n\n### Post-release\n\nAfter each build, please create a commit along the lines of \"Release 0.1.0\" and push it to Github. Following that, [create a release](https://github.com/simpleweb/Romulus/releases) and named \"v0.1.0\", include any release notes and attach both iOS and Android binaries (zipped).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimpleweb%2Fromulus-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimpleweb%2Fromulus-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimpleweb%2Fromulus-example/lists"}