Relay.swift icon indicating copy to clipboard operation
Relay.swift copied to clipboard

Relay for GraphQL, ported to Swift and SwiftUI

Standards and Methods of Operation

:warning: We are in process of migrating all the content to a private gitbook. The public content in this repository will be converted to blog articles for better acessibility.

About us

We are mobile developers, based in Paris, working with hybrid and cross platform technologies.

Our goal is to help the client's business succeed, by solving their problems together using agile and lean, and developing the best product to satisfy the client's user needs.

Learn more about us in our french website.

Why this repository

Part of lean philosophy is to standardize best practices and spread them out.

Every time a developer is struggling doing a part of their job (e.g.: changing the application icon, deploying features very fast using code push, etc...), we help them solve their problem and then together write either a [Standard] or a [Mode of Operation].

Contributing

  • READ FIRST: [MO] Contributing
  • [Standard] Writing a standard
  • [Standard] Writing a method of operation

Backend

Django

  • [MO] Get started with Django
  • [MO] Create complex user models with Django
  • [MO] How to deploy your Django back-end to AWS
  • [MO] Create a model and an api route

GraphQL JS

  • [MO] Kick start a JS GraphQL 3 layers API with Apollo-server, Dataloader and Knex

Node JS

  • [Standard] Add multiple environments configuration on loopback
  • [Standard] Handle Errors and Exceptions in Javascript

Code Quality

  • [MO] Test your React and React Native components' state with Jest (without Enzyme)
  • [Standard] Pull Request Template
  • [Standard] Test files indentation
  • [MO] How to use mocks with jest (~2min)
  • [MO] Set up Detox with Jest and automate it on Bitrise (~ 1h)
  • [Standard] Handle Errors and Exceptions in Javascript

Flowtype

  • [Standard] Flowtype

Project Standards

  • Project Success
  • Technical Agility
  • Taking over an existing project

Successful Sprint

Coding

  • [Standard] Good practices to resolve a ticket

Scrum

  • [Standard] Timebox

React Native

Setup

  • [MO] Adding a native module
  • [MO] Setup & Deploy New Project to Staging
  • [MO] Setup & Deploy New Project to Staging with HockeyApp (Deprecated)
  • [MO] Deploy Project to Production - Only iOS Testflight
  • [MO] Deploy Project to Production - Android Play Store
  • [MO] Setup Code-Push on an existing project
  • [MO] Add a deploy script to your app
  • [MO] Add Cocoapods to your project (~10min)
  • [Article] Setup your React Native project icon
  • [MO] Use http links in react native
  • [MO] Setup Firebase with multiple environments (~1h)
  • [MO] Setup Facebook login
  • [MO] Upgrade React Native
  • [MO] Setup Stripe Payment Form
  • [MO] Patch React Native Android
  • [MO] Remove Default Android Permissions Android
  • [Standard] Override an existing app
  • [MO] Set up Detox with Jest and automate it on Bitrise (~ 1h)

Architecture

  • [Standard] Default stack
  • [Standard] Project Architecture
  • [Standard] File Naming
  • [Standard] Handle Errors and Exceptions in Javascript

Animations

  • [Standard] React Native animations

Debugging

  • [MO] Debug Javascript Code
  • [MO] Debug on Android
  • [MO] Debug Native iOS Code
  • [MO] Debug Javascript on an iOS Device
  • [MO] Debug Network calls
  • [MO] Debug a React Native WebView
  • [MO] Handle gradle dependencies versions clashes
  • [MO] Debug two iOS apps simultaneously
  • [MO] Get iOS Logs
  • [MO] How to analyse and react to a bug on a React-Native project

Javascript

  • [MO] Promisify a callback

React

  • [Standard] Binding functions in a React component
  • [MO] Enable component overflow on Android
  • [Standard] Wrinting a Component

Features

  • [Article] Add a sharing feature to the app
  • [MO] Setup DeepLinking with react-navigation
  • [MO] Lock the device orientation
  • [MO] Add icon(s) with icomoon
  • [MO] Preloading MobX data with AsyncStorage
  • [MO] Implement offline with MobX
  • [MO] Implement offline with Redux
  • [Standard] Implementing a clean logout
  • [MO] Get the size or position of a component with onLayout

Package Dependencies

  • [MO] Handle dependencies with Yarn override

React-Navigation

  • [MO] Unmount a component on page change (~10 min)

Firebase

  • [MO] Good practices to debug events in Firebase

React

Redux

Lifecycle

  • [MO] Trigger an action on props update

Editors

  • [Standard] Boost up my code editor

Visual Studio Code

  • [MO] Setup VSCode

Security

  • [MO] 2-Factor Authentication (15 min)
  • [MO] Import certificates into Match (30 min)

Front and Back-end Performance

  • [Standard] Performance decision flow
  • [Standard] React Native performance
  • [Standard] React Native maps performance
  • [MO] Investigate front-end performance issues
  • [MO] Investigate back-end performance issues

OPS

  • [MO] Setup HTTPS on your docker environment (10 min)

License

Creative Commons License
BAM Standards is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contributors

All Contributors

Thanks goes to these wonderful people (emoji key):


Yann Leflour

πŸ“ πŸš‡ πŸ‘€

TychoTa

πŸ“ πŸš‡ πŸ‘€

Kevin Raynel

πŸ“ πŸ‘€

Xavier Lefèvre

πŸ“ πŸ‘€

Louis Lagrange

πŸ“ πŸ‘€

Alexandre Moureaux

πŸ“ πŸ‘€

Darius Afchar

πŸ“ πŸ‘€

Arthur Levoyer

πŸ“ πŸ‘€

Florian Rival

πŸ“ πŸ‘€

Nicolas Djambazian

πŸ“ πŸ‘€

Thomas Pucci

πŸ“ πŸ‘€

Maxime Bourliatoux

πŸ“ πŸ‘€

AliceB08

πŸ“ πŸ‘€

AuroreM

πŸ“

Kevin Jean

πŸ“ πŸ‘€

Jean Faverie

πŸ“ πŸ‘€

Surya Ambrose

πŸ“ πŸ‘€

Amaury Liet

πŸ“ πŸ‘€

Nicolas Ngomai

πŸ“ πŸ‘€

Julien

πŸ“ πŸ‘€

Selim Ben Ammar

πŸ“ πŸ‘€

GuillaumeRenouvin

πŸ’¬ πŸ‘€

yassinecc

πŸ“ πŸ‘€

Orta

πŸ“– πŸ€”

ClΓ©ment

πŸ“ πŸ‘€

emilienchvt

πŸ“ πŸ‘€

Pierre-Louis Le Portz

πŸ“ πŸ‘€

Sammy Teillet

πŸ“ πŸ‘€

louiszawadzki

πŸ“ πŸ‘€

justinemignot

πŸ“ πŸ‘€

This project follows the all-contributors specification. Contributions of any kind welcome!