Earlier this year, we started developing a new app to help our runners deliver groceries to our customers. We chose React Native over a native app or a PWA and are really happy with it. So far, we really like what we are seeing. Development speed is fast and the tooling is awesome. The “learn once, write anywhere”-promise is really fulfilled and when we ran our project for the first time on iOS after a few weeks of development, we were excited to see how well it worked and what it looked like.\n\n

Read our blog post to learn more about how we use React Native, TypeScript, Redux.js, RxJS, CodePush, styled-components, React Storybook, Jest, and Prettier to develop this app, as well as our thought of what else we will do with it at Picnic.","rawContent":"Earlier this year, we started developing a new app to help our runners deliver groceries to our customers. We chose @{React Native}|tool:2699| over a native app or a PWA and are really happy with it. So far, we really like what we are seeing. Development speed is fast and the tooling is awesome. The “learn once, write anywhere”-promise is really fulfilled and when we ran our project for the first time on iOS after a few weeks of development, we were excited to see how well it worked and what it looked like.\n\nRead our blog post to learn more about how we use @{React Native}|tool:2699|, @{TypeScript}|tool:1612|, @{Redux.js}|tool:4074|, @{RxJS}|tool:1796|, @{CodePush}|tool:4308|, @{styled-components}|tool:6749|, @{React Storybook}|tool:4906|, @{Jest}|tool:830|, and @{Prettier}|tool:7035| to develop this app, as well as our thought of what else we will do with it at Picnic.","publishedAt":"2018-12-03T20:49:40Z","commentsCount":1,"private":false,"upvotesCount":7,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":76771,"draft":false,"createdAt":"2018-12-03T20:49:41Z","decisionType":null,"showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:101179076193812229.permissions","typename":"Permissions"},"subjectTools":[],"fromTools":[],"toTools":[],"link":{"type":"id","generated":true,"id":"$StackDecision:101179076193812229.link","typename":"Link"},"company":{"type":"id","generated":false,"id":"Company:101231719403526513","typename":"Company"},"topics":[],"stack":null,"services":[{"type":"id","generated":false,"id":"Tool:101231774544144572","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775357043443","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774170220209","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775481629962","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776828827709","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231775801159840","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773770920543","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231776970439629","typename":"Tool"}],"user":{"type":"id","generated":false,"id":"User:101232115907763670","typename":"User"},"rootComments":[{"type":"id","generated":false,"id":"Comment:104185046929876819","typename":"Comment"}],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:101179076193812229.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:101179076193812229.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"$StackDecision:101179076193812229.link":{"url":"https://blog.picnic.nl/react-native-at-picnic-eff17e8c51d5","title":"React Native at Picnic – Picnic Engineering","imageUrl":"https://cdn-images-1.medium.com/fit/c/304/304/1*fehUvc3MDykEf5DEx6wjAA.png","__typename":"Link"},"Tool:101231774544144572":{"id":"101231774544144572","name":"React Native","slug":"react-native","title":"A framework for building native apps with React","verified":false,"imageUrl":"https://img.stackshare.io/service/2699/KoK6gHzp.jpg","canonicalUrl":"/react-native","path":"/react-native","votes":1156,"fans":34390,"stacks":33573,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231774170220209":{"id":"101231774170220209","name":"RxJS","slug":"rxjs","title":"The Reactive Extensions for JavaScript","verified":false,"imageUrl":"https://img.stackshare.io/service/1796/984368.png","canonicalUrl":"/rxjs","path":"/rxjs","votes":21,"fans":1163,"stacks":2127,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231775481629962":{"id":"101231775481629962","name":"CodePush","slug":"codepush","title":"Push code updates to your apps, instantly (by Microsoft)","verified":false,"imageUrl":"https://img.stackshare.io/service/4308/Screen_Shot_2016_01_19_at_8_04_21_PM.png","canonicalUrl":"/codepush","path":"/codepush","votes":1,"fans":220,"stacks":64,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231776828827709":{"id":"101231776828827709","name":"styled-components","slug":"styled-components","title":"Visual primitives for the component age. Use the best bits of ES6 and CSS to style your apps without stress.","verified":true,"imageUrl":"https://img.stackshare.io/service/6749/styled-components.png","canonicalUrl":"/styled-components","path":"/styled-components","votes":12,"fans":1248,"stacks":1851,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231775801159840":{"id":"101231775801159840","name":"React Storybook","slug":"react-storybook","title":"Develop and design React components without an app","verified":false,"imageUrl":"https://img.stackshare.io/service/4906/default_db6159e1ae3d61e909d2c05d5a2c6990bdc6088f.png","canonicalUrl":"/react-storybook","path":"/react-storybook","votes":0,"fans":503,"stacks":499,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231773770920543":{"id":"101231773770920543","name":"Jest","slug":"jest","title":"Painless JavaScript Unit Testing","verified":false,"imageUrl":"https://img.stackshare.io/service/830/jest.png","canonicalUrl":"/jest","path":"/jest","votes":175,"fans":5998,"stacks":9736,"followingTool":false,"followContext":null,"__typename":"Tool"},"Tool:101231776970439629":{"id":"101231776970439629","name":"Prettier","slug":"prettier","title":"Prettier is an opinionated code formatter. ","verified":false,"imageUrl":"https://img.stackshare.io/service/7035/default_66f265943abed56bcdbfca1c866a4261b1fbb063.jpg","canonicalUrl":"/prettier","path":"/prettier","votes":7,"fans":2473,"stacks":7742,"followingTool":false,"followContext":null,"__typename":"Tool"},"Comment:104185046929876819":{"id":"104185046929876819","content":"Flutter is more flexible and robus especially nowadays","postedAt":"2020-05-17T17:47:34Z","upvoted":false,"flagged":false,"upvotesCount":0,"parentId":null,"user":{"type":"id","generated":false,"id":"User:104185035125732705","typename":"User"},"__typename":"Comment","replies":[]},"User:104185035125732705":{"id":"104185035125732705","path":"/maxa2803917640","imageUrl":"https://img.stackshare.io/user/594596/default_5d2efef9fca1c80641163f78680421c6e5560b76.jpg","displayName":"Yevhen Makhov","__typename":"User"},"$StackDecision:101179076193812229.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:101179076193812229.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:101179076193812229.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231794380249761.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:101179076193812229","typename":"StackDecision"},"__typename":"StackDecisionEdge"}}