Relay.swift
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
- [MO] Custom fields with redux-form
- [Package] Factorise common Redux async boilerplate with redux-async-actions-factory
- [Package] Gain development speed on Redux with redux-enhancer
- [MO] Pass props to a container
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
BAM Standards is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
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!