{"componentChunkName":"component---src-templates-blog-post-js","path":"/en/blog/dumbest-apps-ever-and-how-to-build-them-in-react-native","result":{"data":{"post":{"id":"-6a97cae1-5321-501c-b1b6-f31c01f9d5d7","publishedAt":"2018-10-18T17:00:00.000Z","categories":[{"_id":"5be6cd6d-a8ca-4053-b2ee-74ab2f71f401","title":{"en":"React Native","vi":"React Native"},"slug":{"current":"react-native"}},{"_id":"c65f29e1-5f1a-4bba-b306-96c46a471e38","title":{"en":"Tutorial","vi":"Tutorial"},"slug":{"current":"tutorial"}}],"mainImage":{"crop":null,"hotspot":null,"asset":{"_id":"image-8aa682e27eba6ce3ee8a1060a68fd4c14bcac07a-640x426-jpg","url":"https://cdn.sanity.io/images/vrx9irrf/production/8aa682e27eba6ce3ee8a1060a68fd4c14bcac07a-640x426.jpg"}},"title":"Dumbest Apps Ever - and How to Build Them in React Native","singleLang":"en","slug":{"current":"dumbest-apps-ever-and-how-to-build-them-in-react-native"},"excerpt":"In this series we'll look at a series of dumb apps that you can find on the App Store. Despite the tongue-in-cheek nature of this article, everyone should have a healthy respect for any app that makes it to the App Store. Hopefully this article inspires you to go out and write your own app, no matter how dumb it is. (And to use one of the smartest technologies, React Native!)","_rawBody":[{"_key":"045885ab389e","_type":"block","children":[{"_key":"50d0f2dba04f","_type":"span","marks":[],"text":"\nSome people get stuck in building the perfect app. They work on an app for years, obsessing over every little detail, planning for every feature. Others...others get sh*t done."}],"markDefs":[],"style":"normal"},{"_key":"949feb32521a","_type":"block","children":[{"_key":"e0a42a0cba2f","_type":"span","marks":[],"text":"Despite the tongue-in-cheek nature of this article, everyone should have a healthy respect for any app that makes it to the App Store. Hopefully this article inspires you to go out and write your own app, no matter how dumb it is. (And to use one of the smartest technologies, React Native!)"}],"markDefs":[],"style":"normal"},{"_key":"029a7262d205","_type":"block","children":[{"_key":"ec60966442ff0","_type":"span","marks":[],"text":"Dumb App #3: LookFor"}],"markDefs":[],"style":"h2"},{"_key":"9acf7776f3d6","_type":"block","children":[{"_key":"4871db60a4f80","_type":"span","marks":["137f54ddc911"],"text":"https://itunes.apple.com/us/app/lookfor-find-friends-instantly/id945335809?mt=8"},{"_key":"ead7fd909f1f","_type":"span","marks":[],"text":"​ "}],"markDefs":[{"_key":"137f54ddc911","_type":"link","href":"    https://itunes.apple.com/us/app/lookfor-find-friends-instantly/id945335809?mt=8"}],"style":"normal"},{"_key":"10292a109197","_type":"block","children":[{"_key":"2c98c29f72e60","_type":"span","marks":[],"text":"Self-proclaimed \"world's dumbest app\", this app just helps you find your friends by making your screen a giant flashing light. Let's go ahead and program it. We'll assume you have "},{"_key":"c54e77c3764e","_type":"span","marks":["8ce9bf4aa77a"],"text":"Expo installed"},{"_key":"e5dbf4e9cfcd","_type":"span","marks":[],"text":". Expo is a great way to bootstrap React Native applications, and if you haven't tried it yet be sure to check it out."}],"markDefs":[{"_key":"8ce9bf4aa77a","_type":"link","href":"https://docs.expo.io/versions/latest/introduction/installation"}],"style":"normal"},{"_key":"bbbe7c87bfd4","_type":"block","children":[{"_key":"288030b737380","_type":"span","marks":[],"text":"Step 1: Green Screen of Death"}],"markDefs":[],"style":"h3"},{"_key":"8bcd6177d540","_type":"block","children":[{"_key":"d239a164ed990","_type":"span","marks":[],"text":""}],"markDefs":[],"style":"normal"},{"_key":"16732d0b463a","_type":"code","code":"expo init","language":"sh"},{"_key":"21a4294d8043","_type":"block","children":[{"_key":"e8a90a1602110","_type":"span","marks":[],"text":"Choose the \"blank\" template to start a plain new project. Open up the file `App.js`, and scroll down to the bottom and you'll see a line that looks like this:"}],"markDefs":[],"style":"normal"},{"_key":"1ec9e46008fe","_type":"block","children":[{"_key":"93a30c94db290","_type":"span","marks":[],"text":""}],"markDefs":[],"style":"normal"},{"_key":"aaec6e7755c4","_type":"code","code":"const styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    backgroundColor: '#fff',\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n});","language":"javascript"},{"_key":"e31ffc70abd6","_type":"block","children":[{"_key":"23e3a1378bab0","_type":"span","marks":[],"text":"Change the line that says `backgroundColor` - instead of `#fff`, change that to `rgb(40,197,101)`. You should now see a beautiful green screen. Congratulations, you've built most of the application!"}],"markDefs":[],"style":"normal"},{"_key":"a97232808052","_type":"image","asset":{"_id":"image-7ea375d45b014b8e49a36d814ee0247337a35698-858x1630-png","_type":"sanity.imageAsset","_rev":"DmK61VtPyEhMsfOjcmTrZg","_createdAt":"2022-03-10T03:46:14Z","_updatedAt":"2022-03-10T03:46:14Z","assetId":"7ea375d45b014b8e49a36d814ee0247337a35698","extension":"png","metadata":{"_type":"sanity.imageMetadata","dimensions":{"_type":"sanity.imageDimensions","aspectRatio":0.5263803680981595,"height":1630,"width":858},"hasAlpha":true,"isOpaque":true,"lqip":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAmCAYAAADEO7urAAAACXBIWXMAAAsSAAALEgHS3X78AAACdUlEQVRIx+2W7U4TQRSG9y5oZ3a+druzu5QvsVCEYjURwR8m8MOElhA/qEYj1+ElaLwDvzWRK1Dhtl7PTHehrUVF+dkfT3LmnJl3z+y0O2/QbrfRaCzBWgutNaSUCMMQQgiPi8uxq41HQSmHRnDj9gYWri5CGwNOCznnYAX9mBX0x+dRPjRotluwWQbOOKqV6j/DGPOiwczcHFRswGIBZpWHpw5d0M+xhHJ2MH9W5wm9JiWgJHUYxzHkfAK5swjVW4V+ugbzfB3m8LpHU6yerPVrz1qn+ZLocB16fxlyJYVUEkHNJtA3ZxG9uIPkfQf2yx7Sr/tIjwootp+6SD4UtaP9ITLCvt6Booa4pC2n9RzR1hXUXm4j+3aA/Phxn5MCirPjHrIfxGD+5GyefbsL1VkGU27L0yn05sKQoF88Qj4mVz7EvtmF7jQRxhECU6ff39afBc8jLwRNtwmV1KjDejZW8HTr5/CL4F4T2sZ0KHkGs/n/grq7DBHTPyWqp5fSodpdokOhUzbT7h3OX46g5AhUZKA25i5JkDr0X4pbsxPBieBEcCI4ERwRvMiN91vB5NUOsu+94Yv8L7HvOnTRDwjKdh0xWRH7sYv0896FcbuT24tggvcFxQwZprsL0PdXoB9eg35whnm0irjX8rh4tO7G6l4DYSMBCwtBLkIwTURiCB5LiERDZ7FHWuNzo/OYEd7OaW0KQedUq2NMJOVE6Hyf8kghyZiysYbTWeMsyxE4X+2srLfBbjKjCdUCijlto/TSzqH6OUXdxaVVdv46TXNnOGverIfUiSu4iVNTU55KpeIpBcpxWa9WGa1x3lrCmJiMf4afjZC9XZ+ywaoAAAAASUVORK5CYII=","palette":{"_type":"sanity.imagePalette","darkMuted":{"_type":"sanity.imagePaletteSwatch","background":"#324c43","foreground":"#fff","population":0.18,"title":"#fff"},"darkVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#046b2a","foreground":"#fff","population":0.34,"title":"#fff"},"dominant":{"_type":"sanity.imagePaletteSwatch","background":"#2cc464","foreground":"#fff","population":52.55,"title":"#fff"},"lightMuted":{"_type":"sanity.imagePaletteSwatch","background":"#197f3b","foreground":"#fff","population":0,"title":"#fff"},"lightVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#4cdc7c","foreground":"#000","population":0,"title":"#fff"},"muted":{"_type":"sanity.imagePaletteSwatch","background":"#55b27a","foreground":"#fff","population":0.02,"title":"#fff"},"vibrant":{"_type":"sanity.imagePaletteSwatch","background":"#2cc464","foreground":"#fff","population":52.55,"title":"#fff"}}},"mimeType":"image/png","originalFilename":"eDMTQIl.png","path":"images/vrx9irrf/production/7ea375d45b014b8e49a36d814ee0247337a35698-858x1630.png","sha1hash":"7ea375d45b014b8e49a36d814ee0247337a35698","size":84017,"uploadId":"mCfob4Bcscy99JBoyWR9YxiQH5ANXQGE","url":"https://cdn.sanity.io/images/vrx9irrf/production/7ea375d45b014b8e49a36d814ee0247337a35698-858x1630.png","id":"image-7ea375d45b014b8e49a36d814ee0247337a35698-858x1630-png","children":[],"internal":{"type":"SanityImageAsset","contentDigest":"e0cfc27aff0102d39efb230cbf174f2e","counter":919,"owner":"gatsby-source-sanity"},"parent":null}},{"_key":"8c7ddaccef12","_type":"block","children":[{"_key":"3a9732788e06","_type":"span","marks":[],"text":"\nStep 2: Color Selection"}],"markDefs":[],"style":"h3"},{"_key":"26e69d5b8e42","_type":"block","children":[{"_key":"7e9a5d1aeca20","_type":"span","marks":[],"text":"Let's add one more feature: the ability to choose your color, as shown by the screenshots on the iTunes page."}],"markDefs":[],"style":"normal"},{"_key":"044988d149e6","_type":"image","asset":{"_id":"image-187a97d9f83ceec9b457fe5279861f35a580688e-230x409-jpg","_type":"sanity.imageAsset","_rev":"DmK61VtPyEhMsfOjcmTrUw","_createdAt":"2022-03-10T03:46:14Z","_updatedAt":"2022-03-10T03:46:14Z","assetId":"187a97d9f83ceec9b457fe5279861f35a580688e","extension":"jpg","metadata":{"_type":"sanity.imageMetadata","dimensions":{"_type":"sanity.imageDimensions","aspectRatio":0.5623471882640587,"height":409,"width":230},"hasAlpha":false,"isOpaque":true,"lqip":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAkABQDASIAAhEBAxEB/8QAGgABAAIDAQAAAAAAAAAAAAAAAAUGAgMEB//EACUQAAEEAgICAgIDAAAAAAAAAAIAAQMEBREGEjFBISIHEzJRcf/EABgBAAMBAQAAAAAAAAAAAAAAAAMEBQYB/8QAJhEAAQQCAAMJAAAAAAAAAAAAAQACAxEEEiExcQUTFBUyQVJhkf/aAAwDAQACEQMRAD8AolWWtPG2hYxdv70kFSCSUh6fPpidlTysBVkEZ5Ojetuu2vlK4TCL2BeR/wCOn8qkItYyA5E7+p2PrkrmOHpmLFJELl7RaIAslEL/AL+u28aRSzvfqWlBc7jooTF4Kre5NYxeWjMDhHsprP8AD8LQxNi3D2aSEOwv/iw40dUPyLkiysM8OxLYsfZt78s6ufIXwNnC24Y2nczBxbb/AAgzdsYrJAycO3Nchw+lmPI8rIPiIpCGj26LzunltVo/pITOzOzs3w6Lh4vyStj8aVSzAMhQykAk/nr6RMGYfFPtz5wKsfijuVHJhbEd2hIYzz77uT7ZRNPlOVntRRyTs4EWnbqiIMjGl1kLmPPK2HVriB1UbH95JyLy8hIiI9Kda//Z","palette":{"_type":"sanity.imagePalette","darkMuted":{"_type":"sanity.imagePaletteSwatch","background":"#342d4f","foreground":"#fff","population":13.01,"title":"#fff"},"darkVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#0b2c5a","foreground":"#fff","population":0.03,"title":"#fff"},"dominant":{"_type":"sanity.imagePaletteSwatch","background":"#342d4f","foreground":"#fff","population":13.01,"title":"#fff"},"lightMuted":{"_type":"sanity.imagePaletteSwatch","background":"#ba82b9","foreground":"#000","population":0.12,"title":"#fff"},"lightVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#e9c440","foreground":"#000","population":4.14,"title":"#fff"},"muted":{"_type":"sanity.imagePaletteSwatch","background":"#af6462","foreground":"#fff","population":7.92,"title":"#fff"},"vibrant":{"_type":"sanity.imagePaletteSwatch","background":"#ce4910","foreground":"#fff","population":5.41,"title":"#fff"}}},"mimeType":"image/jpeg","originalFilename":"230x0w.jpg","path":"images/vrx9irrf/production/187a97d9f83ceec9b457fe5279861f35a580688e-230x409.jpg","sha1hash":"187a97d9f83ceec9b457fe5279861f35a580688e","size":16098,"uploadId":"36F2kFCWEnsbU3N8taLwEUGOKZLVuWQf","url":"https://cdn.sanity.io/images/vrx9irrf/production/187a97d9f83ceec9b457fe5279861f35a580688e-230x409.jpg","id":"image-187a97d9f83ceec9b457fe5279861f35a580688e-230x409-jpg","children":[],"internal":{"type":"SanityImageAsset","contentDigest":"1e79d89ac963442c1e41c9a0543a048f","counter":1212,"owner":"gatsby-source-sanity"},"parent":null}},{"_key":"9b3225254b46","_type":"block","children":[{"_key":"f6818e80a9b2","_type":"span","marks":[],"text":"\nWe'll have to add something to store our current state, so add a new constructor:"}],"markDefs":[],"style":"normal"},{"_key":"71f2cabd089f","_type":"code","code":"constructor(props) {\n  super(props);\n  this.state = {\n  color: null\n  }\n}","language":"javascript"},{"_key":"bfc4686ae02e","_type":"block","children":[{"_key":"4fa84040357f0","_type":"span","marks":[],"text":"Now, in our render function, we'll just check if `this.state.color` is set, and render one of two components - either our `ColorScreen`, or our `ColorPicker`."}],"markDefs":[],"style":"normal"},{"_key":"2f5ca70affa1","_type":"block","children":[{"_key":"d68cf4dbd79f0","_type":"span","marks":[],"text":""}],"markDefs":[],"style":"normal"},{"_key":"f126a9d4bf67","_type":"code","code":"render() {\n  return this.state.color ?\n    <ColorScreen color={this.state.color} /> :\n    <ColorPicker setColor={(c) => this.setState({ color: c })} />\n}","language":"jsx"},{"_key":"f21d960177bb","_type":"block","children":[{"_key":"6cc6e15caadc0","_type":"span","marks":[],"text":"Now we just need to define these components. We can just throw this in the same file, and they can be simple functional components. The first, `ColorScreen`, is just what we had before, with an additional prop for color:"}],"markDefs":[],"style":"normal"},{"_key":"21f397cc22eb","_type":"block","children":[{"_key":"28275c69c1990","_type":"span","marks":[],"text":""}],"markDefs":[],"style":"normal"},{"_key":"964a3583d0b8","_type":"code","code":"const ColorScreen = ({color}) => (\n  <View style={[styles.container, {backgroundColor: color}]}/>\n)","language":"jsx"},{"_key":"356822bacf44","_type":"block","children":[{"_key":"11bae585f3870","_type":"span","marks":[],"text":"Our `ColorPicker` is a little more complicated, but not very:"}],"markDefs":[],"style":"normal"},{"_key":"ba20fc533842","_type":"block","children":[{"_key":"a2d6998849bf0","_type":"span","marks":[],"text":""}],"markDefs":[],"style":"normal"},{"_key":"f8972cffcadf","_type":"code","code":"const ColorPicker = ({setColor}) => (\n  <View style={styles.colorPicker}>\n    { [green, blue, purple, yellow, orange, red].map(c =>\n      <TouchableOpacity key={c}\n        style={{flex: 1, backgroundColor: c}}\n        onPress={() => setColor(c)}\n      />\n    )}\n  </View>\n)","language":"jsx"},{"_key":"4c1b676c432b","_type":"block","children":[{"_key":"a6ab37b9a4480","_type":"span","marks":[],"text":"The `flex: 1` takes care of the elements filling to the available space. Now all that's missing are the colors:"}],"markDefs":[],"style":"normal"},{"_key":"28dd25c0131f","_type":"code","code":"const green = 'rgb(100, 200, 121)';\nconst blue = 'rgb(80, 151, 213)';\nconst purple = 'rgb(145, 94, 176)';\nconst yellow = 'rgb(234, 196, 69)';\nconst orange = 'rgb(197, 91, 37)';\nconst red = 'rgb(188, 63, 49)';","language":"javascript"},{"_key":"6b4d97546a8c","_type":"block","children":[{"_key":"20bb820816a80","_type":"span","marks":[],"text":"And the one stray style, `colorPicker`. This belongs at the bottom:"}],"markDefs":[],"style":"normal"},{"_key":"dd729c405143","_type":"code","code":"const styles = StyleSheet.create({\n  container: {\n    flex: 1,\n    alignItems: 'center',\n    justifyContent: 'center',\n  },\n  colorPicker: {\n    flex: 1,\n    flexDirection: 'column',\n    justifyContent: 'center',\n    alignItems: 'stretch'\n  }\n});","language":"javascript"},{"_key":"194790a16f60","_type":"block","children":[{"_key":"be7cee23ec710","_type":"span","marks":[],"text":"And boom. We have now created a dumb version of the the world's dumbest app."}],"markDefs":[],"style":"normal"},{"_key":"bb39423090ec","_type":"image","asset":{"_id":"image-8356974c42ba7fb6871488e1256b3b7b19e01d95-457x836-gif","_type":"sanity.imageAsset","_rev":"ofM7EIDfnwHVEh3rYRkiwD","_createdAt":"2022-03-10T03:46:15Z","_updatedAt":"2022-03-10T03:46:16Z","assetId":"8356974c42ba7fb6871488e1256b3b7b19e01d95","extension":"gif","metadata":{"_type":"sanity.imageMetadata","dimensions":{"_type":"sanity.imageDimensions","aspectRatio":0.5466507177033493,"height":836,"width":457},"hasAlpha":false,"isOpaque":true,"lqip":"data:image/jpeg;base64,/9j/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAlABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQGBwX/xAApEAABAwQBAwIHAQAAAAAAAAABAAIDBAUGESEHEjETFBVBUVNjgZGS/8QAFgEBAQEAAAAAAAAAAAAAAAAABQQG/8QAJBEAAgEEAAUFAAAAAAAAAAAAAQIAAwQREgUhQVFSExQxcbH/2gAMAwEAAhEDEQA/AIjF8LlvdqjrYJImRvJGneV1h00qudzQD9Jrp7cBDjMDA8tGydBUvxX8rlSvD6zjYOMGQO9yGOqnH1MJymhfab1PRucCY9A9vhCZz2T1soq37J2RyUKcqVOp6S1c6jb5mu9LqOyyYjTurpAJu48F2jpV3sMb+8z/AGsgxmqMFpjY7tBBPBK6vvx9Wf1BV3uvUbSowGe80tvZo1JWJ6SD6ksgjzCubSEGAEdpB2hI5Y/1L5O7jnXhCZpZ0G3M4gFYa1GA7yolsYoaAubUvf2D5tSFsY6uqjC55YA3ewhCcr21Ja6qF5GAW91Wag7luYjlTiMVRM576uQHxw0IQhX+wt/GHniFx5/k/9k=","palette":{"_type":"sanity.imagePalette","darkMuted":{"_type":"sanity.imagePaletteSwatch","background":"#24413c","foreground":"#fff","population":0.03,"title":"#fff"},"darkVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#2c598a","foreground":"#fff","population":0.53,"title":"#fff"},"dominant":{"_type":"sanity.imagePaletteSwatch","background":"#8c63ac","foreground":"#fff","population":7.82,"title":"#fff"},"lightMuted":{"_type":"sanity.imagePaletteSwatch","background":"#dacab4","foreground":"#000","population":0.02,"title":"#000"},"lightVibrant":{"_type":"sanity.imagePaletteSwatch","background":"#8bd2f6","foreground":"#000","population":0.06,"title":"#fff"},"muted":{"_type":"sanity.imagePaletteSwatch","background":"#8c63ac","foreground":"#fff","population":7.82,"title":"#fff"},"vibrant":{"_type":"sanity.imagePaletteSwatch","background":"#1072ba","foreground":"#fff","population":0.97,"title":"#fff"}}},"mimeType":"image/gif","originalFilename":"4mMpYEfW44.gif","path":"images/vrx9irrf/production/8356974c42ba7fb6871488e1256b3b7b19e01d95-457x836.gif","sha1hash":"8356974c42ba7fb6871488e1256b3b7b19e01d95","size":218420,"uploadId":"oO6Xo4dXdATzqtMSZwC03u0yzKEpXaA4","url":"https://cdn.sanity.io/images/vrx9irrf/production/8356974c42ba7fb6871488e1256b3b7b19e01d95-457x836.gif","id":"image-8356974c42ba7fb6871488e1256b3b7b19e01d95-457x836-gif","children":[],"internal":{"type":"SanityImageAsset","contentDigest":"3b20f96ea5b61bc11c2c7d574823c65f","counter":1213,"owner":"gatsby-source-sanity"},"parent":null}},{"_key":"fc6b9d2a623c","_type":"block","children":[{"_key":"e41c3996ce32","_type":"span","marks":[],"text":"\nCongratulations. In just a few lines of code, you've built an app that is good enough to have raised "},{"_key":"4bf2fa6778b9","_type":"span","marks":["ef94590ce970"],"text":"$1,526 on Kickstarter"},{"_key":"510e24c09b07","_type":"span","marks":[],"text":". React Native is truly awesome. Stay tuned to our CoderSchool Blog for walkthroughs of how to build even dumber apps! If you're interested in building apps, either smart or dumb, you'll learn React in our "},{"_key":"ff8fae06b833","_type":"span","marks":["8b7a40ab6198"],"text":"Full Stack Web Development"},{"_key":"3b9e6670d3b4","_type":"span","marks":[],"text":" course."}],"markDefs":[{"_key":"ef94590ce970","_type":"link","href":"https://www.kickstarter.com/projects/612404513/lookfor-find-friends-in-a-crowd-instantly"},{"_key":"8b7a40ab6198","_type":"link","href":"https://wwww.coderschool.vn/web-development"}],"style":"normal"},{"_key":"21f84588aa94","_type":"block","children":[{"_key":"3aa3cc7203860","_type":"span","marks":[],"text":"The full source code for this app is available here: "},{"_key":"491d805537aa","_type":"span","marks":["03b146cf5f71"],"text":"https://github.com/coderschool/DumbReactNativeApps"},{"_key":"be8368249cce","_type":"span","marks":[],"text":"."}],"markDefs":[{"_key":"03b146cf5f71","_type":"link","href":"https://github.com/coderschool/DumbReactNativeApps"}],"style":"normal"}],"authors":[{"_key":null,"profilePhoto":{"crop":{"_key":null,"_type":"sanity.imageCrop","top":0.15909090909090906,"bottom":0.1717171717171715,"left":0.07407407407407406,"right":0.07744107744107742},"hotspot":{"_key":null,"_type":"sanity.imageHotspot","x":0.4814814814814815,"y":0.3939393939393942,"height":0.43434343434343486,"width":0.5791245791245792},"asset":{"_id":"image-0286d13225a8ad9cded74ef106c1c9fd8c3d049b-3024x4032-jpg"}},"name":"Charles Lee","jobTitle":"Co-Founder & CEO"}]}},"pageContext":{"pageId":"-6a97cae1-5321-501c-b1b6-f31c01f9d5d7","previousPagePath":"blog/working-at-tech-startups-from-marketer-to-remote-web-developer","previousItem":{"node":{"id":"-31473430-e8e9-5f6d-8279-9bcbcf8d77fa","title":"Working at Tech Startups: From Marketer to Remote Web Developer","publishedAt":"2019-01-30T17:00:00.000Z","slug":{"current":"working-at-tech-startups-from-marketer-to-remote-web-developer"}}},"previousPageId":"-31473430-e8e9-5f6d-8279-9bcbcf8d77fa","nextPagePath":"blog/intelligent-chatbots-in-react-native-powered-by-dialogflow","nextItem":{"node":{"id":"-7a071c3d-c5b5-5d63-80b4-950daea8bb7d","title":"Intelligent Chatbots in React Native powered by DialogFlow","publishedAt":"2018-10-13T17:00:00.000Z","slug":{"current":"intelligent-chatbots-in-react-native-powered-by-dialogflow"}}},"nextPageId":"-7a071c3d-c5b5-5d63-80b4-950daea8bb7d","language":"en","intl":{"language":"en","languages":["en","vi"],"messages":{"title":"CoderSchool","apply_now":"Apply Now","about_us":"About Us","course_detail_curriculum_title":"What You'll Learn","course_detail_curriculum_subtitle":"Over twelve weeks, you'll learn a lot. You'll be coding every day, all day. Here we've broken down some of the main concepts you'll be learning. For more information, apply today, and we'll send you a detailed syllabus of all that you'll learn.","course_detail_class_starts":"Next Class Starts ","course_detail_testimonials_title":"CoderSchool helped thousands of graduates change their lives","course_detail_testimonials_subtitle":" ","course_detail_payments_title":"Payment Options","course_detail_payments_subtitle":"Results and Satisfaction are Guaranteed","empty_search":"There's no result which matches your search in this section. Please clear the search terms and try again.","talenthub_title":"TALENT HUB","talenthub_subtitle":"Welcome to CoderSchool Talent Hub where you can find and hire our talents fast and free of charge!","talenthub_portfolio_button":"Portfolio","talenthub_upcoming_events":"UPCOMING EVENTS","talenthub_more":"MORE ABOUT US AND OUR TALENTS","talenthub_send_email":"Send Email","job_page_description":"(At our hiring partners)","job_page_title":"CURRENT JOBS OPENING","events_at_coderschool":"New Events @ CoderSchool","more_info_events":"Register and More Details >>","courses":"Courses","hire_graduates":"Hire Graduates","facebook_and_coderschool":"Facebook & CoderSchool","hear_from_students":"Hear From Our Graduates","youtube_page":"See more stories on CoderSchool's YouTube Channel >>","blog_subtext":"Latest news about CoderSchool and technology","latest_news":"Latest News","categories":"Categories","address":"Sonatus Building 15 Le Thanh Ton, Ben Nghe Ward, District 1, HCMC","instructor":"Instructor","read_more":"Read More","from":"From"},"routed":true,"originalPath":"/blog/dumbest-apps-ever-and-how-to-build-them-in-react-native","redirect":true,"defaultLanguage":"en"}}},"staticQueryHashes":["1803319088","3802271601","63159454","63159454"]}