{"id":57206,"date":"2018-12-18T02:33:51","date_gmt":"2018-12-18T09:33:51","guid":{"rendered":"http:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/"},"modified":"2018-12-18T02:33:51","modified_gmt":"2018-12-18T09:33:51","slug":"build-cross-platform-apps-with-react-native","status":"publish","type":"post","link":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/","title":{"rendered":"Build cross-platform apps with React Native"},"content":{"rendered":"<p>There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a completely new language.<\/p>\n<p>React Native is a JavaScript library developed by Facebook. It was released back in 2013 and has helped shape apps like Skype, Bloomberg, Wix and <a href=\"http:\/\/facebook.github.io\/react-native\/showcase.html\" rel=\"nofollow\" target=\"_blank\">many more<\/a>. Not only can you use your existing knowledge of JavaScript but you can also use the same codebase to build for both iOS and Android.<\/p>\n<p>Building an app in React Native with this tutorial is a great starting point for your own app, and it could easily be improved upon by adding more screens, displaying errors on the front end and much more. You can get the project files you need at <a href=\"https:\/\/github.com\/darryl-bartlett\/react-native\/tree\/master\/YourAppName\" rel=\"nofollow\" target=\"_blank\">Github<\/a>.<\/p>\n<p>Not quite what you&#8217;re looking for? See our post full of different tutorials on <a href=\"https:\/\/www.creativebloq.com\/app-design\/how-build-app-tutorials-12121473\" target=\"_blank\">how to build an app<\/a>.<\/p>\n<h3>01. Get started<\/h3>\n<p>To get started building your React Native project, you will need to make sure that you have <a href=\"https:\/\/nodejs.org\/en\/\" rel=\"nofollow\" target=\"_blank\">Node.js<\/a> installed. You can then install the <strong>create-react-native-app<\/strong> command line utility by opening a new a terminal window and running the following command:<\/p>\n<p>You can then create your new project by running the following command:<\/p>\n<p>You will then need to navigate to your folder via the command line and start the development server.<\/p>\n<p>You can then begin working on your app by opening the App.js file using a code editor.<\/p>\n<h3>02. Run your app<\/h3>\n<figure>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" name=\"\" alt=\"QR code\" src=\"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/io9fCjDnHpmwMbm5QxsEAQ.jpg?w=900\" align=\"middle\" fullscreen=\"\"><\/p><figcaption>\n<p>Since you used create-react-native-app via the command line, you can use the Expo client app to test your application<\/p>\n<\/figcaption><\/figure>\n<p>Since you used <strong>create-react-native-app<\/strong> via the command line to build your project, you can use the Expo client app to test your application. All you need to do is download the app from the iOS App Store or Google Play Store and then scan the QR code from inside the terminal. You will need to make sure your device is on the same Wi-Fi network as your computer. You can also use the iPhone or Android simulator, if you have <a href=\"https:\/\/developer.apple.com\/xcode\/\" rel=\"nofollow\" target=\"_blank\">Xcode<\/a> or <a href=\"https:\/\/developer.android.com\/studio\/?gclid=EAIaIQobChMI_oPb2Nuf3wIVSbvtCh2PagDvEAAYASAAEgIs3fD_BwE\" rel=\"nofollow\" target=\"_blank\">Android Studio<\/a> installed.<\/p>\n<h3>03. Create a basic login<\/h3>\n<figure>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" name=\"\" alt=\"3 button login menu\" src=\"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/NxveCnA8N97hZAae4SYVAQ.jpg?w=900\" align=\"middle\" fullscreen=\"\"><\/p><figcaption>\n<p>We\u2019re now going to create a fully functional login screen so users can login, register and sign out<\/p>\n<\/figcaption><\/figure>\n<p>Let\u2019s start by adding something very basic. To add some text to your application, you will need to type:<\/p>\n<p>Working with styles is very similar to CSS. If you wanted to add a style to the line of text that you just created, you would simply edit that line of text to:<\/p>\n<p>You can then add the text style under <strong>Stylesheet.create.<\/strong><\/p>\n<p>We are now going to create a fully functional login screen so that users can login, register for a new account, sign out and even reset their password. This is something you will see a lot in mobile apps, so it lays down a nice foundation for future projects.<\/p>\n<h3>04. Set up Firebase and NativeBase<\/h3>\n<figure>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" name=\"\" alt=\"Firebase homescreen\" src=\"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/mos2UBncDF5H6EtL3BYdAQ.jpg?w=900\" align=\"middle\" fullscreen=\"\"><\/p><figcaption>\n<p>Firebase is what we will use for our user authentication. We will need to setup the Firebase config just underneath the import commands<\/p>\n<\/figcaption><\/figure>\n<p>We are going to start by installing three more libraries. The first is called <a href=\"https:\/\/firebase.google.com\/\" rel=\"nofollow\" target=\"_blank\">Firebase<\/a>, which is what we will use for our user authentication, and the second is called NativeBase, which is a UI component library. The last one is called React Native Dialog Input, which enables us to display a dialogue box where users can enter text. Navigate to your project folder using the command line and enter the below:<\/p>\n<p>Make sure you import Firebase, NativeBase and React Native Dialog Input at the top of the App.js file.<\/p>\n<p>Next, we will need to setup the Firebase config just underneath the import commands. You will need to go and setup an account with Firebase to get your various settings. You can do this by registering at <a href=\"https:\/\/firebase.google.com\/\" rel=\"nofollow\" target=\"_blank\">Firebase<\/a> and creating a new project. Remember that you will need to enable email and password authentication from the dashboard.<\/p>\n<h3>05. Build the container<\/h3>\n<figure>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" name=\"\" alt=\"Three button login menu\" src=\"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/vZ5Vun5UkNtmdpXD6WyEAQ.jpg?w=900\" align=\"middle\" fullscreen=\"\"><\/p><figcaption>\n<p>We will also create three buttons: one to login, one to sign up and the final button is for when a user wants to reset their password<\/p>\n<\/figcaption><\/figure>\n<p>The next step is to remove the <strong><View> <\/strong>section underneath <strong>render()<\/strong>, which was automatically placed there by React upon creating the project, and replace it with the following container to setup the login form. The form will contain a label and an input field for both an email address and password. We will also create three buttons: one to login, one to sign up and the final button is for when a user wants to reset their password. We will set a margin at the top of each button to 10 pixels and set the font colour to white.<\/p>\n<h3>06. Set up the events<\/h3>\n<p>Firstly, we need to set up a constructor to set up the default state. The <strong>email<\/strong> and <strong>password<\/strong> default values will be set to empty. We will also set the value of <strong>isDialogVisible<\/strong> to <strong>false<\/strong>: this is going to be used for our password reset dialog box later on.<\/p>\n<p>We will now add <strong>onChangeText<\/strong> events to both of our text inputs, so that every time the user types something into the email or password fields, it will update the state of both <strong>email<\/strong> and <strong>password<\/strong> to that value.<\/p>\n<p>We also need to add <strong>onPress<\/strong> functions to our login, sign-up and forgotten password buttons. Each one will call a different function. The login button will call a function called <strong>loginUser<\/strong>, the sign-up button will call <strong>signUpUser<\/strong> and the forgotten password button will call <strong>forgotPassword<\/strong>.<\/p>\n<h3>07. Make sign-up function<\/h3>\n<p>It\u2019s now time to begin building out our functions. We will begin with the sign-up function (<strong>signUpUser<\/strong>), which will attempt to create a new user inside Firebase; if it succeeds, then we will display an onscreen alert to inform the user that their account has been set up. However, if the user chooses a password that is less six characters in length, it will prompt them to enter something that is a minimum of six characters long. Finally, we need to add the catch error handler, so that if the sign-up attempt fails through Firebase, we will print the error message to the console.<\/p>\n<h3>07. Add login function<\/h3>\n<figure>\n<p><img data-recalc-dims=\"1\" decoding=\"async\" name=\"\" alt=\"Sign in alert\" src=\"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/SUnP4juMcpfY8MGZ69EJAQ.jpg?w=900\" align=\"middle\" fullscreen=\"\"><\/p><figcaption>\n<p>If the user successfully signs in, it will display an alert to say the sign in was successfully, along with a sign out button<\/p>\n<\/figcaption><\/figure>\n<p>Next, we will add the login (<strong>loginUser<\/strong>) function. This will try to log in the user with their email and password. If the user successfully signs in, it will display an alert to say that sign-in was successful, along with a sign out button. Once again, we will need to make sure we add a catch error handler in case there is an error with the login attempt.<\/p>\n<h3>08. Add sign out function<\/h3>\n<p>It\u2019s now on to the sign-out function, which ensures that the user is signed out once they click the sign out button on the alert.<\/p>\n<h3>09. Create forgot password function<\/h3>\n<p>To finish off our project, we are going to build out a function that will enable the user to easily reset their password in case they\u2019ve either forgotten it or want to change it for some other reason. First, we need to create the dialog box just outside of our <strong><\/p>\n<form> <\/strong>tags.<\/p>\n<p>We now need to make the dialog box appear, so we will create the <strong>forgotPassword<\/strong> function, which will change the state of <strong>isDialogVisible<\/strong> to true.<\/p>\n<p>The dialog box will prompt the user to enter their email address. If the user clicks the cancel button, then the box will close, as it changes the state of the <strong>isDialogVisible<\/strong> back to <strong>false<\/strong>. If the user clicks the submit button then it will call a function called <strong>sendReset<\/strong> along with the email address.<\/p>\n<p>Inside our <strong>sendReset<\/strong>, we will use the email address to create the Firebase <strong>sendPasswordResetEmail<\/strong> request.<\/p>\n<p><em>This article was originally published in issue 312 of <\/em><a href=\"https:\/\/www.creativebloq.com\/net-magazine\" target=\"_blank\"><em>net<\/em><\/a><em> magazine. Buy <\/em><a href=\"https:\/\/www.myfavouritemagazines.co.uk\/design\/net-magazine-back-issues\/net-november-2018-issue-312\/\" rel=\"nofollow\" target=\"_blank\"><em>issue 312<\/em><\/a><em> or <\/em><a href=\"https:\/\/www.myfavouritemagazines.co.uk\/design\/net-magazine-subscription\/\" rel=\"nofollow\" target=\"_blank\"><em>subscribe here<\/em><\/a><em>.<\/em><\/p>\n<p><strong>Related articles:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.creativebloq.com\/how-to\/how-to-create-an-app-icon-in-illustrator\" target=\"_blank\">How to create an app icon in Illustrator<\/a><\/li>\n<li><a href=\"https:\/\/www.creativebloq.com\/how-to\/build-an-ar-app\" target=\"_blank\">How to build an AR app<\/a><\/li>\n<li><a href=\"https:\/\/www.creativebloq.com\/how-to\/jump-start-react-native-with-expo\" target=\"_blank\">Jump start React Native with Expo<\/a><\/li>\n<\/ul>\n<p class=\"wpematico_credit\"><small>Powered by <a href=\"http:\/\/www.wpematico.com\" target=\"_blank\">WPeMatico<\/a><\/small><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a&#8230;<a class=\"moretag\" href=\"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/\"> Read the full article&#8230;<\/a><\/p>\n","protected":false},"author":4,"featured_media":57207,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[371],"tags":[],"class_list":["post-57206","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-user-experience"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Guest Contribution\"\/>\n\t<meta name=\"keywords\" content=\"user experience\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Design for Immersive Technologies | User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Build cross-platform apps with React Native | Design for Immersive Technologies\" \/>\n\t\t<meta property=\"og:description\" content=\"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2018-12-18T09:33:51+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2018-12-18T09:33:51+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Build cross-platform apps with React Native | Design for Immersive Technologies\" \/>\n\t\t<meta name=\"twitter:description\" content=\"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#article\",\"name\":\"Build cross-platform apps with React Native | Design for Immersive Technologies\",\"headline\":\"Build cross-platform apps with React Native\",\"author\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.taterboy.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/io9fCjDnHpmwMbm5QxsEAQ.jpg?fit=2254%2C1270&ssl=1\",\"width\":2254,\"height\":1270},\"datePublished\":\"2018-12-18T02:33:51-07:00\",\"dateModified\":\"2018-12-18T02:33:51-07:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#webpage\"},\"articleSection\":\"User Experience\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.taterboy.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/user-experience\\\/#listItem\",\"name\":\"User Experience\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/user-experience\\\/#listItem\",\"position\":2,\"name\":\"User Experience\",\"item\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/user-experience\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#listItem\",\"name\":\"Build cross-platform apps with React Native\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#listItem\",\"position\":3,\"name\":\"Build cross-platform apps with React Native\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/category\\\/user-experience\\\/#listItem\",\"name\":\"User Experience\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\",\"name\":\"Design for Immersive Technologies\",\"description\":\"User Experience for Games, Virtual Reality (VR) and Augmented\\\/Mixed Reality (AR\\\/MR)\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/\",\"name\":\"Guest Contribution\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d2aad73eb0f48c67b141e9fc978a0e498969791ed623346e361d02d19775b0bb?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Guest Contribution\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#webpage\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/\",\"name\":\"Build cross-platform apps with React Native | Design for Immersive Technologies\",\"description\":\"There used to be a time when developers would need to learn Swift\\\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/author\\\/guestcontribution\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.taterboy.com\\\/blog\\\/wp-content\\\/uploads\\\/2018\\\/12\\\/io9fCjDnHpmwMbm5QxsEAQ.jpg?fit=2254%2C1270&ssl=1\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#mainImage\",\"width\":2254,\"height\":1270},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/2018\\\/12\\\/build-cross-platform-apps-with-react-native\\\/#mainImage\"},\"datePublished\":\"2018-12-18T02:33:51-07:00\",\"dateModified\":\"2018-12-18T02:33:51-07:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/\",\"name\":\"Design for Immersive Technologies\",\"description\":\"User Experience for Games, Virtual Reality (VR) and Augmented\\\/Mixed Reality (AR\\\/MR)\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.taterboy.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Build cross-platform apps with React Native | Design for Immersive Technologies","description":"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a","canonical_url":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/","robots":"max-image-preview:large","keywords":"user experience","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#article","name":"Build cross-platform apps with React Native | Design for Immersive Technologies","headline":"Build cross-platform apps with React Native","author":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"publisher":{"@id":"https:\/\/www.taterboy.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/io9fCjDnHpmwMbm5QxsEAQ.jpg?fit=2254%2C1270&ssl=1","width":2254,"height":1270},"datePublished":"2018-12-18T02:33:51-07:00","dateModified":"2018-12-18T02:33:51-07:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#webpage"},"isPartOf":{"@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#webpage"},"articleSection":"User Experience"},{"@type":"BreadcrumbList","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.taterboy.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/#listItem","name":"User Experience"}},{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/#listItem","position":2,"name":"User Experience","item":"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#listItem","name":"Build cross-platform apps with React Native"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#listItem","position":3,"name":"Build cross-platform apps with React Native","previousItem":{"@type":"ListItem","@id":"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/#listItem","name":"User Experience"}}]},{"@type":"Organization","@id":"https:\/\/www.taterboy.com\/blog\/#organization","name":"Design for Immersive Technologies","description":"User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","url":"https:\/\/www.taterboy.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author","url":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/","name":"Guest Contribution","image":{"@type":"ImageObject","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/d2aad73eb0f48c67b141e9fc978a0e498969791ed623346e361d02d19775b0bb?s=96&d=mm&r=g","width":96,"height":96,"caption":"Guest Contribution"}},{"@type":"WebPage","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#webpage","url":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/","name":"Build cross-platform apps with React Native | Design for Immersive Technologies","description":"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.taterboy.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#breadcrumblist"},"author":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"creator":{"@id":"https:\/\/www.taterboy.com\/blog\/author\/guestcontribution\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/io9fCjDnHpmwMbm5QxsEAQ.jpg?fit=2254%2C1270&ssl=1","@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#mainImage","width":2254,"height":1270},"primaryImageOfPage":{"@id":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/#mainImage"},"datePublished":"2018-12-18T02:33:51-07:00","dateModified":"2018-12-18T02:33:51-07:00"},{"@type":"WebSite","@id":"https:\/\/www.taterboy.com\/blog\/#website","url":"https:\/\/www.taterboy.com\/blog\/","name":"Design for Immersive Technologies","description":"User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.taterboy.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Design for Immersive Technologies | User Experience for Games, Virtual Reality (VR) and Augmented\/Mixed Reality (AR\/MR)","og:type":"article","og:title":"Build cross-platform apps with React Native | Design for Immersive Technologies","og:description":"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a","og:url":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/","article:published_time":"2018-12-18T09:33:51+00:00","article:modified_time":"2018-12-18T09:33:51+00:00","twitter:card":"summary","twitter:title":"Build cross-platform apps with React Native | Design for Immersive Technologies","twitter:description":"There used to be a time when developers would need to learn Swift\/Objective C to build an iOS app, or Java if they wanted to build an Android app. We have now reached an exciting time where web developers can use their existing skills to build both websites and apps without having to learn a"},"aioseo_meta_data":{"post_id":"57206","title":null,"description":null,"keywords":null,"keyphrases":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_custom_image_width":null,"og_custom_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"location":null,"local_seo":null,"created":"2021-02-07 23:54:33","updated":"2026-08-22 11:10:03","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"twitter_image_url":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.taterboy.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/\" title=\"User Experience\">User Experience<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tBuild cross-platform apps with React Native\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.taterboy.com\/blog"},{"label":"User Experience","link":"https:\/\/www.taterboy.com\/blog\/category\/user-experience\/"},{"label":"Build cross-platform apps with React Native","link":"https:\/\/www.taterboy.com\/blog\/2018\/12\/build-cross-platform-apps-with-react-native\/"}],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8wzr5-eSG","jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.taterboy.com\/blog\/wp-content\/uploads\/2018\/12\/io9fCjDnHpmwMbm5QxsEAQ.jpg?fit=2254%2C1270&ssl=1","_links":{"self":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts\/57206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/comments?post=57206"}],"version-history":[{"count":0,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/posts\/57206\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/media\/57207"}],"wp:attachment":[{"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/media?parent=57206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/categories?post=57206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.taterboy.com\/blog\/wp-json\/wp\/v2\/tags?post=57206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}