<?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: Tomáš Růt</title>
    <description>The latest articles on DEV Community by Tomáš Růt (@keeema).</description>
    <link>https://dev.to/keeema</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%2F322022%2Fb3724730-73b9-48af-bf49-5017eac1c4df.jpeg</url>
      <title>DEV Community: Tomáš Růt</title>
      <link>https://dev.to/keeema</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keeema"/>
    <language>en</language>
    <item>
      <title>React-like application development with high performance and DevX -&gt; Try Bobril</title>
      <dc:creator>Tomáš Růt</dc:creator>
      <pubDate>Wed, 22 Jan 2020 12:22:37 +0000</pubDate>
      <link>https://dev.to/keeema/react-like-application-development-with-high-performance-and-devx-try-bobril-3l2m</link>
      <guid>https://dev.to/keeema/react-like-application-development-with-high-performance-and-devx-try-bobril-3l2m</guid>
      <description>&lt;h2&gt;
  
  
  Intro
&lt;/h2&gt;

&lt;p&gt;It's been a few years since I published my first articles about Bobril. Since that time, bobril has evolved and from a simple framework has become a great tool for developing (not only) web applications that are used as a basis for many enterprise products. &lt;/p&gt;

&lt;p&gt;I wrote this post to share with you the opportunity to test application development as you know it with React and more easily.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Bobril
&lt;/h2&gt;

&lt;p&gt;Bobril is a TypeScript react-like framework focused on developing single-page web applications. It is developed and massively used daily by more than 200 Quadient developers under the supervision of chief development architect &lt;a href="https://dev.toBoris%20Letocha"&gt;https://github.com/Bobris&lt;/a&gt;. The ease of creating a project, the speed, culture handling, easy on-boarding and focus on all the classic features a developer needs for an application capable of production deployment, those are features of &lt;strong&gt;bobril&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;It can also be used to develop PWA, mobile applications with e.g. cordova etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create a project
&lt;/h2&gt;

&lt;p&gt;Unlike other frameworks, starting to develop applications that meet all of the above is quite simple. All you need to do is to run three classic &lt;code&gt;npm&lt;/code&gt; commands to initialize a package, install a &lt;code&gt;bobril&lt;/code&gt; and &lt;code&gt;bobril-build&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;npm init
npm i bobril &lt;span class="nt"&gt;--save&lt;/span&gt;
npm i bobril-build &lt;span class="nt"&gt;-g&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Then just create &lt;em&gt;index.tsx&lt;/em&gt; with simple code&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;bobril&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;IHelloData&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;Hello&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Component&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;IHelloData&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;render&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt; &lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;IBobrilChildren&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="p"&gt;&amp;lt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;Hello &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
          This is your first &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;strong&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;bobril&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;strong&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; application.
        &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;p&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;init&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;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Hello&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Developer"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;and run build using the command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight shell"&gt;&lt;code&gt;bb
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;At this point, your application is already running at &lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt;, the build is monitoring the code changes and then immediately re-updates according your current change - and nothing more for maximum speed. &lt;strong&gt;Bobril-build&lt;/strong&gt; solves everything you need - &lt;strong&gt;compilations, polyfills, imports, minification, uglification, dead-code removal, type declarations, assets, translations, styling, importing external libraries, running jasmine tests etc. - everything works out of the box&lt;/strong&gt;. It alse creates a basic &lt;em&gt;tsconfig.json&lt;/em&gt; so your IDE, e.g. the recommanded Visual Studio Code, is able to check your code etc.&lt;/p&gt;

&lt;p&gt;You can see that finally standard TSX is used as you know it from React. &lt;/p&gt;

&lt;p&gt;To explore more examples visit &lt;a href="https://bobril.com"&gt;bobril.com&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  And why is it interesting?
&lt;/h2&gt;

&lt;h3&gt;
  
  
  React-like
&lt;/h3&gt;

&lt;p&gt;If you have experience in application development in react, using bobril will be peace of cake. Like react, it works on the principle of virtual DOM comparison, uses TSX (type-safe JSX), supports hooks and other features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Type safe
&lt;/h3&gt;

&lt;p&gt;Bobril and its applications use TypeScript, which ensures compile-time code safety and minimizes runtime problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  Component-based
&lt;/h3&gt;

&lt;p&gt;Individual parts of the application are created as components - both statefull &lt;code&gt;class components&lt;/code&gt; or &lt;code&gt;stateless functional components&lt;/code&gt;. The components are imported in the standard way. They may also contain examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  Power
&lt;/h3&gt;

&lt;p&gt;Optimized for high speed, small size and great developer experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Opinionated
&lt;/h3&gt;

&lt;p&gt;Bobril has been used for many years in the production environment of applications developed in Quadient, so it is already distributed with the full framework ecosystem needed to develop complete production-ready applications:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;bobx&lt;/code&gt; or &lt;code&gt;bobflux&lt;/code&gt; for state management&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bobril-g11n&lt;/code&gt; for translations&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bobril-build&lt;/code&gt; for build your application with all necessary features&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bobrilstrap&lt;/code&gt; for UI components based on bootstrap&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bobril-m&lt;/code&gt; for UI components based with material look&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bobril is definitely worth a try and for more information on how it works, visit his website at &lt;a href="https://bobril.com"&gt;bobril.com&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Thanks for your reading and enjoy &lt;strong&gt;&lt;a href="https://bobril.com"&gt;bobril&lt;/a&gt;&lt;/strong&gt;!&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>webdev</category>
      <category>vdom</category>
      <category>react</category>
    </item>
  </channel>
</rss>
