<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ItayLisaey</title>
    <description>The latest articles on DEV Community by ItayLisaey (@itaylisaey).</description>
    <link>https://dev.to/itaylisaey</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F684288%2Ff79546c3-2d55-419a-a80b-a9de65426bfc.png</url>
      <title>DEV Community: ItayLisaey</title>
      <link>https://dev.to/itaylisaey</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/itaylisaey"/>
    <language>en</language>
    <item>
      <title>I've made a react component that hides sensitive information in your app.</title>
      <dc:creator>ItayLisaey</dc:creator>
      <pubDate>Sun, 24 Apr 2022 08:04:27 +0000</pubDate>
      <link>https://dev.to/itaylisaey/ive-made-a-react-component-that-hides-sensitive-information-in-your-app-6og</link>
      <guid>https://dev.to/itaylisaey/ive-made-a-react-component-that-hides-sensitive-information-in-your-app-6og</guid>
      <description>&lt;p&gt;Did you ever want to showcase a site you have worked on or a new feature you just published in a production system but were unable to do so because of the fear of exposing sensitive information?&lt;/p&gt;

&lt;p&gt;SafeView is a component that allows you to hide sensitive information in your app visually, for presentation purposes, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai2qiynpl7lmj8x6ir7w.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai2qiynpl7lmj8x6ir7w.gif" alt="example-gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In order to hide an element all you need to do is to target it using the &lt;code&gt;data-safe&lt;/code&gt; attribute.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;MyComponent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;safe&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
                &lt;span class="c1"&gt;// Sensitive info&lt;/span&gt;
            &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;span&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;    &lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And then when you want to hide press Shift + S.&lt;/p&gt;

&lt;p&gt;There is basically no setup involved other than wrapping your app with the &lt;code&gt;&amp;lt;SafeView&amp;gt;&lt;/code&gt; component.&lt;/p&gt;

&lt;p&gt;The library is super simple and light-weight and is available at NPM.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/safeview" rel="noopener noreferrer"&gt;"SafeView" on NPM&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ItayLisaey/safeview" rel="noopener noreferrer"&gt;"SafeView" on Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;if you have any question and/or suggestion I would love to answer in the comments. :)&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
      <category>npm</category>
      <category>webdev</category>
    </item>
    <item>
      <title>I've made a React app.                                                         Should you stick around? </title>
      <dc:creator>ItayLisaey</dc:creator>
      <pubDate>Thu, 28 Oct 2021 08:31:30 +0000</pubDate>
      <link>https://dev.to/itaylisaey/ive-made-a-react-app-should-you-stick-around-1647</link>
      <guid>https://dev.to/itaylisaey/ive-made-a-react-app-should-you-stick-around-1647</guid>
      <description>&lt;h1&gt;
  
  
  Should you wait the credits? "Stick Around" will tell you.
&lt;/h1&gt;

&lt;p&gt;Ever since the first Marvel movies came out it seems like in every movie there's the possibility of an extra scene hidden during or after the credits.&lt;/p&gt;

&lt;p&gt;I grew tired of waiting through the entire credits just to find out there's nothing there, or even worse - leaving the theater to later realize I missed something.&lt;/p&gt;

&lt;p&gt;To counter this I've decided to make a super simple app that simply tells you if you should wait the credits, with the press of a finger.&lt;/p&gt;

&lt;p&gt;The app is open source, no ads or revenue whatsoever and made as a fan service.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6sD_vNvC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1gmoagf362er3eye5jd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6sD_vNvC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/b1gmoagf362er3eye5jd.png" alt="Stick Around Production screenshots" width="829" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How did I make this app?
&lt;/h2&gt;

&lt;p&gt;I Used &lt;a href="https://www.figma.com/"&gt;Figma&lt;/a&gt; for designing and prototyping, &lt;a href="https://reactjs.org/"&gt;React&lt;/a&gt; with Typescript for the frontend implementation, &lt;a href="https://firebase.google.com/"&gt;Firebase&lt;/a&gt; as the backend and &lt;a href="https://capacitorjs.com/"&gt;Capacitor.js&lt;/a&gt; for Android and iOS support. &lt;/p&gt;

&lt;p&gt;All in all, I managed to design, code and publish the app to Google Play in less then 3 weeks.&lt;/p&gt;

&lt;h3&gt;
  
  
  Designing the user experience in Figma
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SPuhPJ2I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6x46hxsese5vvasfjbbq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SPuhPJ2I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6x46hxsese5vvasfjbbq.png" alt="Image description" width="880" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I've started the UX design process with few goals in mind:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keeping it simple&lt;/li&gt;
&lt;li&gt;One press away from results&lt;/li&gt;
&lt;li&gt;Dark mode (to be used in theaters)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The app is divided into 3 main screens:&lt;/p&gt;

&lt;h4&gt;
  
  
  In Theaters
&lt;/h4&gt;

&lt;p&gt;This screen is the first screen the user enters upon launching the app. It shows you the movies now in theaters (according to &lt;a href="https://www.themoviedb.org/"&gt;TMDB&lt;/a&gt;);&lt;/p&gt;

&lt;h4&gt;
  
  
  Search
&lt;/h4&gt;

&lt;p&gt;On this screen, the user can search for older movies, not currently playing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Movie Screen
&lt;/h4&gt;

&lt;p&gt;This screen contains some general information about a movie, and mainly the card that tells the user whether or not they should wait for the end.&lt;/p&gt;

&lt;h4&gt;
  
  
  Voting Model
&lt;/h4&gt;

&lt;p&gt;How user vote on the movie&lt;/p&gt;

&lt;h3&gt;
  
  
  Implementation
&lt;/h3&gt;

&lt;p&gt;The framework I eventually choose was React with &lt;a href="https://capacitorjs.com/"&gt;Capacitor.js&lt;/a&gt; to build cross platform.&lt;/p&gt;

&lt;p&gt;The app uses &lt;a href="https://www.themoviedb.org/"&gt;TMDB&lt;/a&gt; to get movie information and&lt;br&gt;
Firebase to collect user votes.&lt;br&gt;
and a basic function that decides between them.&lt;/p&gt;

&lt;p&gt;The rest is pretty straight forward with React and Scss for styling.&lt;br&gt;
most of the bugs and troubleshooting came with Capacitor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;If this interested you, or you have any questions or requests, I will be glad to answer.&lt;/p&gt;

&lt;p&gt;*Edit: there's a known issue with the first time screen not showing the continue button to some devices. It's already fixed on the web but not yet updated in the Android App.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://play.google.com/store/apps/details?id=com.stickaround.app"&gt;Google Play Store - Stick Around&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ItayLisaey/stick-around"&gt;GitHub - stick-around&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://movies.lisaey.com"&gt;Stick Around on Web&lt;/a&gt;&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>showdev</category>
      <category>react</category>
      <category>firebase</category>
    </item>
    <item>
      <title>Enhance your React workflow with this new tool</title>
      <dc:creator>ItayLisaey</dc:creator>
      <pubDate>Sun, 26 Sep 2021 11:18:28 +0000</pubDate>
      <link>https://dev.to/itaylisaey/enhance-your-react-workflow-with-this-new-tool-1kmg</link>
      <guid>https://dev.to/itaylisaey/enhance-your-react-workflow-with-this-new-tool-1kmg</guid>
      <description>&lt;p&gt;One of the most frustrating thing about developing in web frameworks is the constant boilerplate code needed each time you start a new project, component, page, etc.&lt;/p&gt;

&lt;p&gt;The Agrippa CLI aims to solve or at least mitigate this problem for React developers.&lt;/p&gt;

&lt;p&gt;Agrippa inherit the modularity and unopinionated approach of React with a modular, customizable CLI that help you create React components easily, and most importantly FAST.&lt;/p&gt;

&lt;p&gt;As written in their documentation:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Agrippa is a humble CLI, whose purpose is to assist React developers in creating components without the boilerplate. It can easily generate templates for React components of different compositions (styling solutions, prop validations, etc.) and in different environments. -Agrippa on Github&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Simple and Convenient CLI
&lt;/h2&gt;

&lt;p&gt;to use Agrippa you can install it globally &lt;code&gt;npm i -g agrippa&lt;/code&gt; (or &lt;code&gt;yarn global add agrippa&lt;/code&gt;).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Once installed, components can be generated using agrippa gen  [options]&lt;br&gt;
 Some of the options supported by agrippa gen are:&lt;br&gt;
&lt;code&gt;--styling&lt;/code&gt;: which styling solution to use (e.g. CSS, SCSS, JSS, Material-UI).&lt;br&gt;
&lt;code&gt;-props&lt;/code&gt;: which prop validation/definition solution to use (e.g. Typescript interfaces, prop-types, JSDoc comments).&lt;br&gt;
&lt;code&gt;--children&lt;/code&gt;: whether the components is meant to have children or not.&lt;/p&gt;

&lt;p&gt;Also, Agrippa automatically detects and sets other, important defaults for you, such as whether to use Typescript or Javascript, and whether to import React or not. — Article written by the creator of the package&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agrippa has more options and configuration, with the latest update adding a custom post commands, and base directories configuration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;in conclusion the Agrippa CLI has become my preferred way of creating React component hassle-free, and it might be fitting for you too.&lt;/p&gt;

&lt;p&gt;I hope you enjoyed reading this article and it would be awesome if you consider showing love to original developer of the package:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/agrippa"&gt;NPM&lt;/a&gt;, &lt;a href="https://github.com/NitzanHen/agrippa"&gt;Github&lt;/a&gt;, &lt;a href="https://dev.to/nitzanhen/meet-agrippa-the-react-cli-for-component-generation-26pk"&gt;Dev.to&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>npm</category>
      <category>cli</category>
    </item>
  </channel>
</rss>
