<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Undefined is not a function - Medium]]></title>
        <description><![CDATA[THINGS ABOUT JAVASCRIPT THINGS, FRONT-END THINGS AND OTHER THINGS. - Medium]]></description>
        <link>https://medium.com/undefined-is-not-a-function?source=rss----fe1a611ccf5f---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Undefined is not a function - Medium</title>
            <link>https://medium.com/undefined-is-not-a-function?source=rss----fe1a611ccf5f---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Mon, 18 May 2026 11:32:43 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/undefined-is-not-a-function" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Common mistakes you can avoid with ESlint]]></title>
            <link>https://medium.com/undefined-is-not-a-function/common-mistakes-you-can-avoid-with-eslint-91704539cdd8?source=rss----fe1a611ccf5f---4</link>
            <guid isPermaLink="false">https://medium.com/p/91704539cdd8</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[es6]]></category>
            <category><![CDATA[es2015]]></category>
            <dc:creator><![CDATA[Sofia Silva]]></dc:creator>
            <pubDate>Sun, 26 Jun 2016 18:55:11 GMT</pubDate>
            <atom:updated>2020-04-15T17:32:30.279Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eOkRreW6krRxzfpVVHBCyw.png" /></figure><p><a href="http://eslint.org/">ESlint</a> is a pluggable linting utility for JavaScript and JSX.</p><p>On a today’s real world JavaScript web app, the complexity tends to grow, refactors will be needed, and although you probably know what you are doing, linting your code can save you a lot of headaches.</p><p>Besides styling, 2 spaces vs 4 spaces vs tabs, semicolon vs no semicolon, and so on, with just this configuration, you can catch the most frequent mistakes that I find myself and others doing:</p><pre>//.eslintrc.json at the root of the project with ESLint 2.x.x:<br>{<br>    <br>    &quot;extends&quot;: [<br>        &quot;eslint:recommended&quot;, <br>        &quot;plugin:react/recommended&quot; // optional, if using react<br>    ],    <br>    &quot;env&quot;: {<br>        &quot;es6&quot;: true,<br>        // your environment, node and/or browser:    <br>        &quot;node&quot;: true, <br>        &quot;browser&quot;: true<br>    },<br>    &quot;plugins&quot;: [&quot;react&quot;], // optional, if using react<br>    &quot;parserOptions&quot;: {<br>        &quot;ecmaVersion&quot;: 6,<br>        &quot;sourceType&quot;: &quot;module&quot;,<br>        &quot;ecmaFeatures&quot;: {<br>            &quot;jsx&quot;: <strong>true  // </strong>if using jsx<br>        }<br>    },<br>    &quot;rules&quot;: {<br>        // just some styling rules here or extra rules<br>    }<br>}</pre><p>Install ESlint on your project:</p><pre>npm install eslint --save-dev</pre><p>If you are using React, you can install <a href="https://www.npmjs.com/package/eslint-plugin-react">eslint-plugin-react</a> for more linting rules and add it to your eslint configuration as stated above:</p><pre>npm install eslint-plugin-react --save-dev</pre><p><strong>Then, configure your text editor and/or build tools as stated </strong><a href="http://eslint.org/docs/user-guide/integrations"><strong>here</strong></a><strong>.</strong></p><h3>Scope and ReferenceErrors</h3><p>You master scope in JavaScript, sure, but take a look at these common mistakes. Surely you did one of them at least once (especially when refactoring): importing the same module a second time, importing a module but never using it, forgetting to export your React component or your module, block-scope declarations or simply forgetting to define a var in your scope (or misspelling one).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*eOkRreW6krRxzfpVVHBCyw.png" /><figcaption>ESlint rules: <a href="http://eslint.org/docs/rules/no-redeclare">no-redeclare</a>, <a href="http://eslint.org/docs/rules/no-unused-vars">no-unused-vars</a>, <a href="http://eslint.org/docs/rules/no-undef">no-undef</a>, <a href="http://eslint.org/docs/rules/no-console">no-console</a></figcaption></figure><h3>Leading commas and trailing commas</h3><p>There is some debate regarding the pros vs cons of the use of <a href="http://stackoverflow.com/questions/10483635/why-do-lots-of-programmers-move-commas-to-the-next-line">leading commas</a> in object literals or arrays, as well as the use of <a href="http://eslint.org/docs/rules/comma-dangle">trailing commas</a>.</p><p>I’m not discussing it here. Just letting you know that if “Haskell like” leading commas it’s not your thing, ESlint can help you minimize the “forgotten” comma when adding and removing items to objects and arrays. And you can also opt between allowing, requiring ou disallowing trailing commas. Of course, ESlint can’t help you here with the argument of clarity of diffs.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*TG0e5OLl3Z45zJYcKKuzmg.png" /><figcaption><a href="http://eslint.org/docs/rules/comma-dangle">comma-dangle</a></figcaption></figure><h3>Specific to JSX</h3><p>In html5, you can skip closing the self-closing tags. In JSX, all tags must be closed, either with the self-closing format or with a corresponding closing tag.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*lH-FxX6fYJ7z_DrR3WGZZg.png" /></figure><p>And yes, you know it, all adjacent JSX elements must be wrapped in a enclosing tag, but a just in time warning doesn’t hurt:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*jQ-iCY5vuIRpAWDRciOijw.png" /></figure><h3>It’s not all</h3><p>Although I used the above cases to illustrate the utility of ESlint, the <a href="http://eslint.org/docs/rules/">recommended configuration of ESlint</a> covers much more, and many times it’s all you need. You can always replace or add more rules depending on your team or preferences. Or you can use some common configurations out of the box with <a href="https://github.com/feross/eslint-config-standard-react">eslint-config-standard-react</a> or <a href="https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb">eslint-config-airbnb</a>. Or you can choose another linter.</p><p>But the bottom line here is: <strong>with little effort, you can save yourself and your team a lot of time and a lot of headaches.</strong></p><p>Happy coding!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=91704539cdd8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/undefined-is-not-a-function/common-mistakes-you-can-avoid-with-eslint-91704539cdd8">Common mistakes you can avoid with ESlint</a> was originally published in <a href="https://medium.com/undefined-is-not-a-function">Undefined is not a function</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[React Ecosystem — A summary]]></title>
            <link>https://medium.com/undefined-is-not-a-function/react-ecosystem-a-summary-e192f13ef5a8?source=rss----fe1a611ccf5f---4</link>
            <guid isPermaLink="false">https://medium.com/p/e192f13ef5a8</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Sofia Silva]]></dc:creator>
            <pubDate>Mon, 14 Mar 2016 19:25:02 GMT</pubDate>
            <atom:updated>2020-04-15T17:53:20.847Z</atom:updated>
            <content:encoded><![CDATA[<p>Things move fast. It’s web development! Here are some useful links and a summary of the so called React Ecosystem.</p><p>Note that to use React.js you don’t need to use all the ecosystem, which many times, it’s what makes it difficult to begin with. But if you want to build a real app, you should:</p><h3>1) Consider some development tools:</h3><ul><li>Transpile jsx (and ES6) to ES5 — Babel</li><li>Bundle all your components and modules to be served on the client — Browserify or Webpack (I choose Webpack).</li><li>Have a development server with live-reload and hot-reload — Webpack can do this, and babel-transform can maintain the state of your app even if your code changes.</li><li>Have a linting tool that supports ES6 and JSX.</li><li>The browser extension from Facebook <a href="https://github.com/facebook/react-devtools">React Dev Tools</a> is great.</li></ul><h3>Babel</h3><p><a href="https://babeljs.io/">Babel</a> is a JavaScript compiler that has support for the latest version of JavaScript through syntax transformers. It supports JSX with the <a href="http://babeljs.io/docs/plugins/preset-react/">React preset</a>.</p><p><strong>The best way to get started is </strong><a href="https://github.com/thejameskyle/babel-handbook/blob/master/translations/en/user-handbook.md"><strong>this repo</strong></a><strong>.</strong></p><p><em>Note to Sublime users: Use it together with the </em><a href="https://github.com/babel/babel-sublime"><em>babel-sublime package</em></a><em>.</em></p><h3>Webpack</h3><p><a href="https://webpack.github.io/">Webpack</a> is a module bundler. This means webpack takes modules with dependencies and emits static assets representing those modules.</p><ul><li>It often replaces grunt or gulp because it can build and bundle CSS, preprocessed CSS, compile-to-JS languages and images, among other things.</li><li>You can (and should) use npm modules and your own modules on the client</li><li>You can use loaders (babel-loader to transpile jsx and ES6 to ES5, css loaders to allow you to import css files…)</li></ul><p><strong>The best way to get started is this great repo of Pete Hunt </strong><a href="https://github.com/petehunt/webpack-howto"><strong>Webpack how to</strong></a><strong>.</strong></p><h3>ESlint</h3><p><a href="http://eslint.org/">ESlint</a> is a pluggable linting utility for JavaScript and JSX.</p><p>You can use some common configurations out of the box with <a href="https://github.com/feross/eslint-config-standard-react">eslint-config-standard-react</a> or <a href="https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb">eslint-config-airbnb</a> or do your own configuration.</p><h3>2) Consider a Routing Solution</h3><h3>React-Router</h3><p>I like <a href="https://github.com/reactjs/react-router">React-Router</a>. It keeps your UI in sync with the URL. It has a simple API with powerful features like lazy code loading, dynamic route matching, and location transition handling built right in. Make the URL your first thought, not an after-thought.</p><p><strong>The best way to get started is </strong><a href="https://github.com/reactjs/react-router-tutorial"><strong>here</strong></a><strong>.</strong></p><h3>3) Consider a State manager</h3><p>There are many <a href="https://facebook.github.io/flux/">Flux</a> implementations — an application architecture that Facebook uses for building client-side web applications -, but the one I like the most is Redux.</p><p>Some people like to use immutable collections for JavaScript like <a href="https://facebook.github.io/immutable-js/">immutable.js</a> to maintain the state immutable, but is not a requirement (as long as you don’t mutate the state).</p><h3>Redux</h3><p><a href="http://redux.js.org/">Redux</a> is a predictable state container for JavaScript apps.</p><ul><li>The state of your app is stored in an object tree inside a single <strong>store</strong>.</li><li>The only way to change the state tree is to emit an <strong>action</strong>, an object describing what happened.</li><li>To specify how the actions transform the state tree, you write pure <strong>reducers</strong>.</li></ul><p><strong>The best way to start is watching the </strong><a href="https://egghead.io/series/getting-started-with-redux"><strong>Dan Abramov’s Redux course videos</strong></a><strong> alongside the official documentation.</strong> You have the notes (and partial transcription) of the videos <a href="https://staminaloops.github.io/undefinedisnotafunction/react-ecosystem/the%20https://github.com/tayiorbeii/egghead.io_redux_course_notes">here</a>.</p><h4>react-router-redux</h4><p>Keep react-router and redux in sync — <a href="https://github.com/reactjs/react-router-redux">react-router-redux</a></p><h4>Redux DevTools</h4><p>I also suggest you to use this great and fun <a href="https://github.com/zalmoxisus/redux-devtools-extension">Redux DevTools</a> browser extension. Your development workflow will never be the same :)</p><h3>4) Choose your client-server interaction</h3><p>In today’s world there are two dominant architectural styles for client-server interaction: REST and ad hoc endpoints, don’t forgetting <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API">Websockets</a>.</p><p>But if you feel adventurous you can try <a href="http://graphql.org/">GraphQL</a> — a data query language and runtime -, together with <a href="https://facebook.github.io/relay/">Relay</a> — a JS framework for building data-driven React applications, both from Facebook. <a href="https://learngraphql.com/">This tutorial</a> and <a href="https://medium.com/@clayallsopp/relay-101-building-a-hacker-news-client-bb8b2bdc76e6#.n1zz7ywyb">this post</a> should help you get started.</p><h3>5) Consider Server side rendering</h3><p><em>(aka </em><a href="https://medium.com/@mjackson/universal-javascript-4761051b7ae9#.oz38cs3kj"><em>Universal</em></a><em> (before aka Isomorphic) apps)</em></p><p><a href="http://nerds.airbnb.com/isomorphic-javascript-future-web-apps/">Universal JavaScript</a> means the same code runs in different environments, in this case, on the client and on the server (thank you node.js). This can help SEO and initial loading time of your SPA and can be easily achieved with <a href="https://github.com/reactjs/react-router/blob/latest/docs/guides/ServerRendering.md">React Router SSR</a>.</p><h3>6) Consider some tests</h3><p>There are some utilities (besides all major test runners and assertion libraries out there):</p><ul><li><a href="https://facebook.github.io/react/docs/test-utils.html">ReactTestUtils</a> — an add-on of React.</li><li><a href="https://github.com/airbnb/enzyme">Enzyme</a> — a JavaScript Testing utility for React that makes it easier to assert, manipulate, and traverse your React Components’ output — from Airbnb.</li><li><a href="https://github.com/mjackson/expect">mjackson/expect</a> and <a href="https://github.com/algolia/expect-jsx">expect-jsx</a> that lets you write better assertions.</li><li><a href="https://github.com/substack/deep-freeze">deep-freeze</a> to recursively Object.freeze() on objects and functions and test immutability.</li></ul><h3>7) Don’t re-invent the wheel</h3><ul><li><a href="https://github.com/enaqx/awesome-react">A collection of awesome things regarding React ecosystem</a></li></ul><p>Here are some of the great examples, tutorials and starter kits:</p><ul><li><a href="https://github.com/erikras/react-redux-universal-hot-example">React Redux Universal Hot Example</a></li><li><a href="https://github.com/bananaoomarang/isomorphic-redux">Isomorphic Redux demo, with routing and async actions</a></li><li><a href="http://survivejs.com/webpack_react/introduction/">survive.js</a> — Redux version <a href="https://github.com/survivejs/redux-demo">here</a></li><li>Find your Perfect Starter Kit <a href="http://andrewhfarmer.com/starter-project/">here</a></li></ul><p>If you are looking for some external components and libraries to use on your project:</p><ul><li><a href="https://react.rocks/">https://react.rocks/</a></li><li>Follow <a href="https://twitter.com/ReactJSnpm">ReactJSnpm</a> that publishes tweets when #ReactJS related libraries are updated on NPM</li></ul><h3>8) Breathe. It’s web development</h3><p>Yes, It’s web development. Things move fast. You don’t need to master everything and there will always be that brand new technology that the cool kids will gonna want to use. Use what you need, and what makes sense to your project. If you want, start with the basics, and as your project grows, if you feel that something is missing, opt-in for those tools. Refactoring is easy as long as you do it in a regular basis and structure your code well.</p><p>Meanwhile, follow some guys on <a href="https://medium.com/@dan_abramov/my-react-list-862227952a8c#.3jb93sb9d">twitter</a>, they will keep you covered.</p><p>Happy coding.</p><p>15 Feb 2016 <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/reactjs/">#reactjs</a> <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/javascript/">#javascript</a> <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/frontend/">#frontend</a></p><h4><em>Originally published at </em><a href="https://staminaloops.github.io/undefinedisnotafunction/react-ecosystem/"><em>staminaloops.github.io</em></a><em>.</em></h4><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e192f13ef5a8" width="1" height="1" alt=""><hr><p><a href="https://medium.com/undefined-is-not-a-function/react-ecosystem-a-summary-e192f13ef5a8">React Ecosystem — A summary</a> was originally published in <a href="https://medium.com/undefined-is-not-a-function">Undefined is not a function</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Install React Native Android on Ubuntu]]></title>
            <link>https://medium.com/undefined-is-not-a-function/install-react-native-android-on-ubuntu-dcf50dc575d9?source=rss----fe1a611ccf5f---4</link>
            <guid isPermaLink="false">https://medium.com/p/dcf50dc575d9</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[react-native]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Sofia Silva]]></dc:creator>
            <pubDate>Mon, 14 Mar 2016 19:24:32 GMT</pubDate>
            <atom:updated>2017-03-18T02:18:53.231Z</atom:updated>
            <content:encoded><![CDATA[<p>Install React Native Android on Ubuntu — This can be challenging. Here is a step by step guide.</p><p><strong>EDIT 18 Mar 2017:</strong> Psst psst, take a look at the new Create React Native App -<a href="https://github.com/react-community/create-react-native-app">https://github.com/react-community/create-react-native-app</a> — Create a React Native app on any OS with no build config!</p><p><strong>Make sure you have the latest version of node and npm installed. If not:</strong></p><pre>curl -sL <a href="https://deb.nodesource.com/setup_5.x">https://deb.nodesource.com/setup_5.x</a> | sudo -E bash - <br>sudo apt-get install -y nodejs</pre><p>Afterwards, you should install/upgrade your npm:</p><pre>npm install -g npm</pre><p><strong>It is recommended that you alter your default npm package folder to avoid needing sudo when installing global packages. Please follow this guide: </strong><a href="https://docs.npmjs.com/getting-started/fixing-npm-permissions"><strong>https://docs.npmjs.com/getting-started/fixing-npm-permissions</strong></a></p><h3>Install the latest JDK</h3><p>From <a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html">here</a>.</p><p>Alternative (not tested, but taken from <a href="http://developer.android.com/sdk/installing/index.html?pkg=tools">google developers</a>):<br> Here are the steps to install Java: If you are running a 64-bit distribution on your development machine, you need to install additional packages first. For Ubuntu 13.10 (Saucy Salamander) and above, install the libncurses5:i386, libstdc++6:i386, and zlib1g:i386 packages using apt-get:*</p><pre>sudo dpkg --add-architecture i386 <br>sudo apt-get update <br>sudo apt-get install libncurses5:i386 libstdc++6:i386 zlib1g:i386</pre><p><em>For earlier versions of Ubuntu, install the ia32-libs package using apt-get:</em></p><pre>apt-get install ia32-libs</pre><p><em>Next, install Java:</em></p><pre>apt-get install sun-java6-jdk</pre><h3>Install the Android SDK</h3><pre>export ANDROID_HOME=&lt;path_where_you_unpacked_android_sdk&gt;</pre><p><strong>Configure your SDK</strong></p><ul><li>Open the Android SDK Manager</li></ul><pre>cd &lt;path_where_you_unpacked_android_sdk&gt;/tools ./android</pre><p>In the window that appears make sure you check:</p><ul><li>Android SDK Build-tools version 23.0.1</li><li>Android 6.0 (API 23)</li><li>Android Support Repository</li></ul><p>Click “Install Packages”</p><h3>Install watchman</h3><p>Facebook recommend installing <a href="https://facebook.github.io/watchman/">watchman</a>, otherwise you might hit a node file watching bug. You will need autoconf and automake. You may optionally build watchman with pcre and python support. For python support, you will also need setuptools and may need to install a python-dev or python-devel package.</p><pre>sudo apt-get install automake<br>sudo apt-get install autoconf <br>sudo apt-get install python-setuptools <br>sudo apt-get install python-dev git clone <a href="https://github.com/facebook/watchman.git">https://github.com/facebook/watchman.git</a> <br>cd watchman git checkout v4.4.0 # the latest stable release ./autogen.sh ./configure make sudo make install</pre><p>Check that is installed with watchman -v</p><h3>Install Genymotion</h3><p>(<a href="http://ubuntuhandbook.org/index.php/2014/02/install-android-emulator-ubuntu-linux/">source</a>):</p><ol><li>This Android Emulator requires Virtualbox, so first search for and install virtualbox in Ubuntu Software Center.</li><li>Register <a href="https://cloud.genymotion.com/">https://cloud.genymotion.com/</a> (free for personal use).</li><li>Download the installer after your login the website: <a href="https://www.genymotion.com/download/">https://www.genymotion.com/download/</a>.</li><li>If you save the installer in the default Downloads folder, press Ctrl+Alt+T to open terminal. When it opens, run below commands one by one:</li></ol><pre>cd ~/Downloads/ chmod +x genymotion-2.1.0_x64.bin ./genymotion-2.1.0_x64.bin</pre><p>It first navigate to Downloads folder, then give executable permission, and finally start the installer. <strong>Of course you need to change the file-name version to yours</strong>.</p><p>cd to installation directory, then run: ./genymotion</p><h3>Install React Native</h3><pre>npm install -g react-native-cli</pre><h3>Start a project</h3><pre>react-native init AwesomeProject</pre><p>This command fetches the React Native source code and dependencies and then creates a new Xcode project in AwesomeProject/iOS/AwesomeProject.xcodeproj and a gradle project in AwesomeProject/android/app.</p><h3>Develop</h3><p>1) <strong>Init genymotion</strong></p><pre>&lt;path_where_you_unpacked_genymotion-2.1.0_x64.bin&gt;/genymotion/genymotion</pre><p>Example if you save the installer in the default Downloads folder:</p><pre>~/Downloads/genymotion/genymotion</pre><p>Choose an emulator and download it.</p><p>2) <strong>On a new terminal run from AwesomeProject root directory:</strong></p><pre>touch ~/.gradle/gradle.properties &amp;&amp; echo &quot;org.gradle.daemon=true&quot; &gt;&gt; ~/.gradle/gradle.properties</pre><pre>react-native run-android</pre><p>to install the generated app on your emulator and start the Node server which enables live code reloading.</p><pre>react-native start</pre><p><strong>Check your Genymotion.</strong> To see your changes you have to open the rage-shake-menu (CRTL+M for Genymotion), and then press Reload JS. Enable live reload for.. live reload.</p><h3>Troubleshooting</h3><p>See <a href="https://gist.github.com/staminaloops/02573a94cb59fdf2b1e1">this gist</a></p><p>13 Feb 2016 <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/reactnative/">#reactnative</a> <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/ubuntu/">#ubuntu</a> <a href="https://staminaloops.github.io/undefinedisnotafunction/tags/android/">#android</a></p><p><em>Originally published at </em><a href="https://staminaloops.github.io/undefinedisnotafunction/install-react-native-ubuntu/"><em>staminaloops.github.io</em></a><em>.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=dcf50dc575d9" width="1" height="1" alt=""><hr><p><a href="https://medium.com/undefined-is-not-a-function/install-react-native-android-on-ubuntu-dcf50dc575d9">Install React Native Android on Ubuntu</a> was originally published in <a href="https://medium.com/undefined-is-not-a-function">Undefined is not a function</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>