Notes to self: - draft JS - check out service workers - relay/graphQL - look at necolas' react-native-web - consider options for reducing startup time (app intiialization) - flow - Elm Day 1 ------------------------------------ "Keynote", Nick Schrock - "React is much more than a JS library" - "React is becoming an entire ecosystem of technology" - Breadth: chrome extension installs - Depth: lots of companies (startups to corporations) - Fervor: CTO gets asked most about React - React as cross-platform; people respond that they've heard this before - Ideas don't work before they work (like Google and search) - When do ideas work? Taste/timing/technology - iOS component kit stole shamelessly from React, uses same values, mirrors React component syntax - "The reports of my death have been gretly exaggerated" - Twain/PCs/web - Facebook investing in JS (Babel/Flow/Nuclide? IDE) - Multicore is becoming universal -> React Native architectuer is uniquely suited for multicore (implicit parallelism) - Not "write once, run anywhere" - Proprietary platforms will always differentiate and compete - Learn once, write anywhere? - Actually horizontal platform - Horizontal platform. Share when possible, go native when necessary - share APIs, tools, languages, code - got native for proprietary capabilities, performance, existing investments - All abstractions leak. Well-designed abstractions account for this. Bend and not break. - What's next? - ambitious vision from last year takes time to execute - top three priorities for 2016: execution, execution, execution - Production Android and iOS React Native apps - Relay and GraphQL - React Native adoption within Facebook is accelerating - What React Native means to the industry - Mobile revolution: Giant leap forward for consumers; a huge step backwars for developers and product organizations - "Moving from web to native was like being ripped back in time. And not in a fun way" - but moving from native to react native moved from: - proprietary platforms to open standards - ... - GraphQL: another horizonatal platform (works with JS, Ruby, SQL, Mongo, etc.) "React, What Lies Ahead", Ben Alpert - How can React help make great apps? (UX and DX) - the product/user experience has to be great - but also the developer experience - UX - Animations - helpful for spatial reasoning - in a pretty good place - Gestures - pan, pinch, double-tap, etc. can't be built with browser events - goal: simple component API, pure JS - Performance (making lists fast) - windowing (only render what's on screen) - render in chunks (break up rendering to avoid jank) - layout (avoid unnecessary reflows) - what if layout was done in React? - Layout info available in render() - Avoid unnecessary reflows - Makes windowing simpler - Skip creation of layout-only views - Easily build new layout primitives - DX - Focusing on developer experience means devs can build apps faster and leads to higher-quality apps - New project experiences - honestly right now, it's a big pain (node, npm, gulp, webpack, babel) - ideally, you should be able to create a single file for your root component and run that - e.g., `react run --platform=web app.js` - goal: quickly prototype with one file, then grow app slowly over time - Devtools - Inspector for Chrome/Firefox (react-devtools) - hot loading (react-transform-hmr) - IDE support for React Native - these are awesome, build more - Data management - React setState - Flux/Redux - Relay - Goal: combine best of three, with easy setup and code reuse - Getting there - we should build it - React today - 0.14 now, production ready and stable since 2013 - DOM: full SVG support, no text wrappers - Internal refactors (no more React IDs, 10% faster) - React is a growing community - 300 commiters to react 2015, 600 react-native - 36,000 Github stars "Rich Text Editing with React", Isaac Salier-Hellendag - Why rich text? Facebook comment input - mentions, hashtags - pre 2014 solution -