About ReactFoo Bangalore:
ReactFoo Bangalore comes back to its original home after completing five successful editions, India-wide:
- ReactFoo Bangalore - September 2017
- ReactFoo Pune - January 2018
- ReactFoo Hyderabad - March 2018
- ReactFoo Mumbai - May 2018
- ReactFoo Delhi - August 2018
ReactFoo Bangalore will bring together over 250 developers working with React, and who are invested in building a space for conversations around experiences using React in production.
ReactFoo Bangalore is a single-day, single track conference with talks, office hours and Birds of Feather(BoF) sessions. Workshops will be held on 1 and 3 March, before and after the conference.
Who should attend ReactFoo:
- Front-end engineers
- Teams and companies who are evaluating frameworks to use for running applications in production
- Cross platform mobile developers
ReactFoo provides you the opportunity to:
- Learn from and network with peers from the industry
- Gain insights from case studies of practical implementation, and evaluate ReactJS and React Native for your work
- Understand how to run React in production, end-to-end, rather than only build an application with React
The magical land of AST's with babel, eslint and codemods
Being a software dev for more than 4 years now, I was always curious to understand how these
instruction’s that we give to our machine’s get understood and sometimes modified for optimizations.
It was initially scary because to me it appeared to be really complicated and would require me to understand the nuances of how machines work, which basically means understanding how a kernel works, how bits and bytes work or taking a deep dive into how compilers work.
But turns out it is not as complicated as I thought it to be.
So let me take you all to this magical journey of understanding how AST’s work and how we can all, no matter what our experience is create something really interesting using AST’s.
By understanding them we would also:-
1) Become better at writing our JS code
2) Better understand JS scopes
3) Better understand how compilers/transpilers work
4) We would be able to write our very first babel plugin
5) We would be amazed when we see how easy it is to write our first eslint plugin
6) And we would learn about this cool new thing called as codemods using jscodeshift
Outline of the talk
Brief introduction to AST’s - 5 mins
Stages of any compiler - 5 mins
Why babel, what are babel plugins and presets? - 5 mins
Creating few babel plugins - live coding - 10 mins
Creating an eslint plugin - live coding - 5 mins
Creating a codemod - live coding - 10 mins
Keynote: Building React Native
- The react philosophy, and how React Native is a natural extension to React JS
- The native parts of React Native, and how they interact with ReactJS
- Differences between React DOM and React Native rendering
- Upcoming improvements to the rendering pipelines of React DOM and React Native
Writing good components
At the core of using React is writing components.
In it’s early days, React got popular because of it’s composition model. The contract with the framework is that we’d write good components and React will take care of the rest.
This is a collection of evergreen tips/advice that I’ve learned over the course of 3 years working with React - building products for users, a design system and a few open source libraries.
Mistakes we fixed: a retrospective of the Treebo mobile app
In this talk, I will be speaking to you about Treebo’s experience with React Native. I’ll be talking about HOW WE FIXED the following 8 mistakes that we made over time while building our app:
- Library Stupidity
- Chaotic Rules
- Bad Debugging Experience
- No CI/CD or Test Automations
- Unsystematic Components
- Janky Performance
- Poor Production Performance Monitoring
- Engineering Baggage
Deep dive into Apollo Client
- How apollo reduces boilerplate code for fetching data, showing loading status, handling updates to existing objects in cache
- Why is it hard for Apollo to handle scenarios like creating new objects, deleting objects and real-time updates
- How can we leverage customizable cache and link interface to simplify these scenarios
- What are the possible scenarios that can cause performance issues
- How to debug and fix performance issues
A React Native widgetised framework - Move fast and build things
We have already seen how React Native and React Native for Web helped us in building full-fledged features on all platforms such as Android, iOS and the web. After solving this problem of code sharing, the next one we are headed to is solving the case of custom layouts. For instance, an e-commerce product page could have different UI layouts for a shirt, a sofa, and a mobile, though their basic building blocks are just the same.
At Flipkart, we have tried to flatten this multi-dimensional world into a unidirectional one by building a widgetised framework and extending functionalities of React Native. This talk will elucidate my journey of building cross-platform applications where we break down the UI into simplistic, shareable UI elements called widgets and render them depending on the layouts required. For example, the layouts configured from backend gives the front end capabilities of intelligently rendering the widgets in the specific order and change them as and when required by the switch of flags.
This talk will cover my journey of realizing the efficiency of cross-platform code written via React Native and React Native for Web, not only in terms of minimizing redundant code writing for developers but also giving them independence on the business vertical they are building for. I believe, it is a resource optimization for teams in a product-based firm and also helps to divert more concentration to platform-specific enhancements.
This talk will braodly cover the following:
Discussing the basics of React and React Native for web and how we coin the world “Native” in terms of code and usability.
Furthering to the next step of optimization by adapting the widgetisation of the UI and offloading the capabilities to configure custom layout to the backend.
Discussing the way we can build a system to configure styles, layout and order of the widgets on any page of the website/application based on the business requirements.
How small and medium product companies, independent developers can leverage this framework in tandem with adapting to React-Native.
While everyone codes using React Native, how platform specific experts can spend time enriching platform related capabilities.
Calculations and mathematics on optimization of developer resource and reducing the time of delivery of features.
Santosh Grampurohit, WalmartLabs
Delivering JS applications at scale
We used React for development of the project to host & support multiple applications. This meant that there will be multiple teams developing their applications, each having its own release cycles and codebases, and yet integrating all of them as single application with seamless user experience.
We will start with UI architecture of the application and talk about component structure and granularity. Then we will look into the release process and continuous integration and deployment for supporting multiple teams and applications, and then look into the performance metrics.
Sreekanth G S
Building a highly scalable exchange: to react or not to react.
The talk will be presented by myself, Sreekanth GS (CTO, Hatio Innovations) and my dear colleague Mr. Salah VI (Senior Engineer - UX). Intending the talk to be of a free-flow format, primarily discussing on merits of taking up an endaevour to rewrite a full stack adopting React as well as the challenges and difficulties faced.
1. Introduction and pep talk
2. Pitch on what we did and what we did wrong
3. Summary on expectations from a solution
4. Options and choices on achieving the solution
5. Nitty-gritties of choices
6. Adoption and roadblocks
7. Overcoming roadblocks
8. Implementation strategy
9. Test on success of solution implementation
10. Way ahead and the future
Kickstarting a library of internal React components for multiple teams
- The need of sharing components between projects
- Our failed attempts to answer this need
- The final successful attempt architecture, tools and development flow
- Our processes to sustain and improve such a collaborative project
- The key to onboard the other development teams
NIMHANS Convention Centre, Bangalore