Talk from React Native Tel Aviv (RN_TLV) meetup on the Wix roof, 2016/09/13
Architecture that WorksReact Native Code ReuseAaron Greenwaldgithub.com/aarongreenwald@aaronjgreenwald[email protected]
View Slide
01 / The Promise
“...that approach yielded around 85% reuse ofapp code”- Facebook
“...that approach yielded around 85% reuse ofapp code”- Facebook“Don’t repeat yourself. It’s not only repetitive,it’s redundant, and people have heard it before.”- Lemony Snicket
Is it true?
Yes!
(Mostly)
Android & iOS
Web AppsAndroid & iOS
Web AppsOther RN ProjectsAndroid & iOS
02 / Android & iOS
Platform-Specific CodePlatform ModuleConditionalstatements in code
Platform-Specific CodeFilename SuffixesSeparate files perplatform
Composition > Inheritance
Platform-Specific CodePlatform ModuleConditionalstatements in codeFilename SuffixesSeparate files perplatform
Architecture Matters
Keep logic out of views
Presenters/DispatchersKeep logic out of views
Presenters/DispatchersLogic should be cross-platformKeep logic out of views
Presenters/DispatchersLogic should be cross-platformKeep logic out of viewsSmall & modular views
03 / Web Apps
Reusable application logic
Compilation gets complicatedReusable application logic
Create a separate moduleCompilation gets complicatedReusable application logic
Create a separate moduleCompilation gets complicatedReusable application logicnpm link...
04 / Multiple Projects
Binaries
Dependency HellBinaries
Is it worthwhile?Dependency HellBinaries
#architecture_mattersgithub.com/aarongreenwald@aaronjgreenwald[email protected]