Skip to content

3. Project Guidelines

Massimo Savino edited this page May 25, 2017 · 6 revisions

All projects on all platforms must adhere to the following guidelines:

  • Constants' handling in a separate file.
  • Either be localized or be set up for future localizations.
  • Extensions on native classes need to be in separate files so they are easy to find.
  • All networking, analytics, and database libraries need to have wrapper classes. This is so that if we have to change the library/framework we are using (for example switching from Firebase to Realm) we only need to modify one main file rather than every use throughout the project.
  • Project Wiki must contain a copy of the style guide.
  • Complicated functions must have documentation.
  • Work-arounds that fix bugs in native or framework SDKs must have documentation. Include a link to the SO post / Github issue / etc where the workaround was found for reference.
  • Use a Gitflow set up or something similar (at the very least there must be a master branch for releases and a develop/integration branch for ongoing development).
  • No breaking changes should be pushed or allowed to stay on the develop branch (they should be fixed immediately by the developer that pushed them).
  • Test suite should always pass on master and develop/integration branches.
  • Continuous integration needs to be set up (currently we are using Travis CI).
  • Slack integrations must be set up