About me
‣ Spanish expat in Wroclaw since 5 years ago
‣ React & React Native developer
‣ Working at callstack.io
‣ https:/
/github.com/rauliyohmc
‣ Twitter: @rgommezz
‣ https:/
/medium.com/@rauliyohmc
Slide 3
Slide 3 text
1. OSS existing problems
2. Build a JS library like a pro
3. Release and maintenance
Slide 4
Slide 4 text
Diving into oss
Skimming the surface
Slide 5
Slide 5 text
Diving into OSS
Evolution of GitHub repositories from 2008 until 2013
Slide 6
Slide 6 text
Diving into OSS, 2016
‣ 19.4+ million active repositories
‣ Is this something beneficial for the community?
‣ Analogy to JS fatigue
‣ You don’t need to reinvent the wheel!
Slide 7
Slide 7 text
Discovery
Slide 8
Slide 8 text
Quality Assessment
Slide 9
Slide 9 text
Conference driven
development
Slide 10
Slide 10 text
Key points
‣ Open source is not a competition
‣ We need to see it as a collaborative environment
‣ Contribute to existing libraries!
‣ Start with something simple, like documentation
Slide 11
Slide 11 text
React Native and Offline
Slide 12
Slide 12 text
Discovery
• Googled “react native offline”
Slide 13
Slide 13 text
Quality Assessment
‣ 2 were only libraries and 1 example app
‣ The most starred (83) only had 1 file with 55 lines of
code
‣ Last commit 12 of January
‣ No test coverage
Slide 14
Slide 14 text
Wish List
‣ Showing/hiding several elements on a screen if offline
‣ Easy redux integration
‣ DRY for checking connectivity before launching API calls
‣ Offline queue
Slide 15
Slide 15 text
Extraction
Would this be useful for other people?
Slide 16
Slide 16 text
Build a js-Based
library
Like a PRO
Slide 17
Slide 17 text
ESLINT
‣ Static analysis of your code
‣ Discover problems in JS code without executing it
‣ Comes with a predefined set of rules embraced by JS
community
‣ Easily pluggable
Slide 18
Slide 18 text
ESLINT
Slide 19
Slide 19 text
rettier
‣ Opinionated code formatter for JavaScript
‣ Enforces a consistent code style across your codebase
‣ You focus on writing code
Slide 20
Slide 20 text
LOW
‣ Static type checker for JavaScript
‣ Benefits:
‣ You can incorporate it incrementally
‣ It finds bugs you encounter in runtime
‣ Downsides:
‣ Time spent on learning and typing
Slide 21
Slide 21 text
Testing
‣ Guarantee our users the library works as intended
‣ Reduce the number of future issues
‣ Facilitate external contributions
Slide 22
Slide 22 text
Continuous integration
Slide 23
Slide 23 text
Example app
‣ Key factor for developer engagement
‣ Users can copy paste snippets into their apps
‣ Improves quality assessment
Advertise!
‣ Write a blog post in medium
‣ Tweet about it
‣ Use reddit
‣ Use Facebook groups
Slide 31
Slide 31 text
Contribution guidelines
‣ Set it up from the beginning
‣ Avoid medium size PRs without previous discussion
‣ Award contributors: https:/
/github.com/kentcdodds/all-
contributors
Slide 32
Slide 32 text
Contribution guidelines
Slide 33
Slide 33 text
Maintenance
‣ Onboard more admins -> offload responsibility
‣ Engage active contributors to become admins
‣ Anticipate that fact before realising you don’t have time
for maintenance
Slide 34
Slide 34 text
Present and future
‣ https:/
/github.com/rauliyohmc/react-native-offline
‣ Adding more maintainers to the library
‣ OSS my RN app
‣ So that others can learn from a production ready app
‣ Example of react-native-offline usage