<?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[The UI Dev - Medium]]></title>
        <description><![CDATA[Life and times of a UI Developer - Medium]]></description>
        <link>https://medium.com/theuidev?source=rss----62cbccdfa60---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>The UI Dev - Medium</title>
            <link>https://medium.com/theuidev?source=rss----62cbccdfa60---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sat, 16 May 2026 22:57:21 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/theuidev" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[A free-to-enroll course on Modern JavaScript Refactoring]]></title>
            <link>https://medium.com/theuidev/a-free-to-enroll-course-on-modern-javascript-refactoring-850ad4012836?source=rss----62cbccdfa60---4</link>
            <guid isPermaLink="false">https://medium.com/p/850ad4012836</guid>
            <category><![CDATA[javascript]]></category>
            <category><![CDATA[modern]]></category>
            <category><![CDATA[refactoring]]></category>
            <category><![CDATA[course]]></category>
            <category><![CDATA[react]]></category>
            <dc:creator><![CDATA[Pavan Podila]]></dc:creator>
            <pubDate>Mon, 19 Mar 2018 01:28:38 GMT</pubDate>
            <atom:updated>2018-03-20T02:55:56.574Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M12TKrZ2tUMewBoTpVFiTQ.png" /></figure><p>The <strong>JavaScript</strong> language is moving quickly and accumulating the best features from a variety of languages. If you are a team, already deep into maintaining a code base, adopting the latest syntax additions to the language will be challenging. The only possible way is to slowly spread the love of latest and greatest JS.</p><p>Start small, refactor a part of the code or write some new code with the latest features, sneak it in and see if it flies. If you are more adventurous (and why not?), you could also refactor a part of the code-base, may be a small feature and bring in the latest JS. Whatever be your route, the change has to happen, today or tomorrow and <strong><em>Refactoring</em></strong> is a great way to ease in to the new syntax, from <em>ES5 to ES2015+</em>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/300/1*VyElgtzXosaOV70SA8VymA.png" /><figcaption>The course on JS Refactoring</figcaption></figure><p><a href="https://theuidev.com/courses/modern-javascript-refactoring/"><strong>Modern JavaScript Refactoring</strong></a> is a short course that takes a ES5 centric code-base and transitions it with ES2015+ style of syntax. It takes a typical use-case of fetching some information from the cloud and connecting it to a <strong><em>React</em></strong> frontend.</p><p>In doing so, we adopt a variety of language features like:</p><ul><li>Template Strings</li><li>Arrow Functions</li><li>Destructuring</li><li>Classes</li><li>import/export of modules</li><li>async-await</li></ul><p>We will do some refactoring with the <em>React </em>component by breaking it down and adding <em>Material UI</em>.</p><p>The course also covers a few tips on naming, domain driven design and touches upon the <strong>S</strong> principle (<em>Single Responsibility</em>) from <a href="https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)"><strong>SOLID</strong></a>.</p><p>You are free to enroll and keep the course forever! Work at your own pace and follow along if you want.</p><p>So, let’s use refactoring as our means to take on the modern JavaScript. Look forward to seeing you in the <a href="https://theuidev.com/courses/modern-javascript-refactoring/">course</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=850ad4012836" width="1" height="1" alt=""><hr><p><a href="https://medium.com/theuidev/a-free-to-enroll-course-on-modern-javascript-refactoring-850ad4012836">A free-to-enroll course on Modern JavaScript Refactoring</a> was originally published in <a href="https://medium.com/theuidev">The UI Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What exactly is UI Development?]]></title>
            <link>https://medium.com/theuidev/what-exactly-is-ui-development-7d6e8b27320d?source=rss----62cbccdfa60---4</link>
            <guid isPermaLink="false">https://medium.com/p/7d6e8b27320d</guid>
            <category><![CDATA[ui]]></category>
            <category><![CDATA[react]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[web-development]]></category>
            <dc:creator><![CDATA[Pavan Podila]]></dc:creator>
            <pubDate>Sat, 17 Feb 2018 18:38:41 GMT</pubDate>
            <atom:updated>2018-02-17T18:38:41.153Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*rTwKmeV4UwI0X5sGG6Jd5A.png" /><figcaption>Jumping into UI Development — <a href="https://unsplash.com/photos/HtST23ypNEg">https://unsplash.com/photos/HtST23ypNEg</a></figcaption></figure><p>For someone starting new into the world of <em>UI Development or Frontend</em>, this is a <em>existential</em> question that bothers them. How do you define this field and who exactly is a <em>UI Developer</em>? And it’s not just newcomers, even seasoned folks have some trouble articulating what it is to be a <em>UI Developer</em> 🤔</p><p>I have been a <em>Frontend / UI Developer</em> since 2001 (yes, quite a long time!) and it has taken me many years to really crystallize my thoughts on “<em>what exactly is this profession”. From my point of view:</em></p><blockquote><strong>It’s all about building a visual, interactive representation of your domain. </strong>Development<em> itself comes down to: </em><strong>80%</strong> <em>Software Engineering, </em><strong>20%</strong> <em>Platform / Framework</em></blockquote><p>Huh? Ya, sounds too abstract. 👆 <em>TL;DR;</em> is not easy 🧐. Let me expand below…</p><pre><strong>UI Development = UI </strong>+<strong> Development</strong></pre><pre><strong>UI</strong> = Visual, Interactive representation of Domain<br><strong>Development</strong> = 80% Software Engineering + 20% Platform/Framework</pre><h3>Starting out with UI…</h3><p>When you are starting out, it is natural to pick a platform to learn. The <strong>Web Platform</strong> is a great fit for most of us. It’s easier to approach, there are literally millions of us doing it, plethora of knowledge all over the internet, tooling is fairly easy and most importantly we all have it already installed: Yes, the <em>Browser</em>! It’s a <em>perfect choice</em> and the barrier to entry is really low!</p><p>So can I say <strong><em>UI Development</em></strong> is all about <em>HTML, CSS and JavaScript</em>, the fundamental technologies for doing development on the Web Platform? Yes, it’s good start and you can hold on to that definition for sometime.</p><p><strong><em>Until</em></strong>, you gain more experience.</p><blockquote><strong><em>Your experience</em></strong> will sculpt this definition as you get exposed to more things that you have to do as a UI Developer.</blockquote><p>HTML, CSS and JS are the tools to translate your ideas or the ideas of your team / company / business into a tangible, working solution that you can see on the Browser (<em>or other target platforms</em>). The <strong><em>translation</em></strong> part can be tricky as you <strong><em>really</em></strong> have to understand the domain with which you are dealing. By <strong><em>domain</em></strong>, I mean <em>the problem</em> that you trying to solve and all of its trappings:</p><ul><li>The <em>context</em> within which a problem lives (Entities, Values, Relationships)</li><li><em>Constraints and rules</em> that set the boundaries for operating on the problem</li><li><em>Workflows</em> that involve a step-by-step approach to completing tasks in the problem</li><li>The actual <em>operations</em> that can be performed, also called <em>actions</em></li></ul><p>As you start understanding the problem even more, you realize that implementing the idea actually involves <em>modeling the domain</em>.</p><h4><strong><em>Domain Modeling?</em></strong></h4><p>Yes, the act of representing the real-world concepts in software, so we can (<em>ultimately</em>) provide a tangible <strong>U</strong>ser <strong>I</strong>nterface (UI). Domain modeling gets us into the realm of <strong>D</strong>omain-<strong>D</strong>riven-<strong>D</strong>esign. Yes, its the blue book by <em>Eric Evans</em> that looks like an intimidating tome to read but has all the <em>gems</em> of Domain Modeling 🤓.</p><blockquote>You owe it to yourself to read it. Not once, but many times over before it fully sinks in.</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/490/1*C88-tDFOEDP09v6qGyxmOQ.png" /><figcaption>Domain Driven Design — Eric Evans</figcaption></figure><p>It is the domain that contains the <em>data, operations, workflows</em> that eventually will be surfaced on the <strong>UI</strong>. The first step is to extract these concepts, vocabulary (aka <em>Ubiquitous Language</em>) from the domain and then give a <em>visual face</em> to it.</p><p>Usually the visual representations are created by the <strong><em>UX team</em></strong> that does all the User Research <em>(talking to Domain experts)</em>, Persona Modeling, Task flows, Wireframing, and the Visual Design.</p><p>The Visual Design is the final distillation of all these activities that results in a set of <em>Screens (Pages) </em>to develop.</p><p><strong><em>— Note:</em></strong><em> with Visual Design, I am being inclusive of sound and motion design (animation) as well. —</em></p><p>And this is where you come in as a <strong>UI Developer</strong>.</p><h3>Development</h3><p>The working set of <em>Screens (UI)</em> is what you have to create as the Frontend Developer, using a static or an interactive mockup and build a working version that can be delivered to the end User. This is the UI that allows the user to manipulate things on the screen, <em>ultimately</em> affecting the <em>real-world</em>.</p><p>Here is where you use all the power of <em>HTML, CSS and JavaScript</em> to deliver a <em>Browser-based</em> UI. Using raw HTML, CSS, JS could be too low-level, which is why most <em>UI (Web) Developers</em> prefer a framework like <em>React, Angular, Vue, Ember, Elm, Reason</em>, etc. This simplifies the “development” process considerably.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*QxBDdg7LaRi_niB4xMK8Mg.png" /><figcaption>Translating Visual Designs to working UI</figcaption></figure><p>If we choose to use a framework like <strong>React</strong> (could be others too), we still have the job of translating the Design documents (Sketch, Invision, Axure, etc.) into a working UI. Doing this translation requires a deeper look at <strong>Separation of Concerns: </strong>ensuring your <em>React Components</em> are not doing more than one thing. In other words, a Component should not take on more than one <em>Responsibility</em>.</p><p>We have barely scratched the surface of what is more commonly known as <strong><em>Component Oriented Development</em></strong>. A set of ideas that allows us to create single-purpose, isolated, reusable Components that help us build the runtime tree of Components: <em>UI</em>.</p><blockquote>Whenever in doubt use the Unix Philosophy: Do only one thing and do it well.</blockquote><h4>Going deeper</h4><p>Separation of Concerns, or stated differently the “<em>Single Responsibility Principle (SRP)</em>” is worth sticking to. Violating it will only lead to misery later down the road, when you want to reuse Components or add more features to your UI.</p><p><em>SRP</em> is just one of the many principles of <a href="https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)"><strong><em>SOLID</em></strong></a>, borrowed from <em>Object-Oriented Programming</em> that help in managing the responsibilities in your UI.</p><p>Moving along, as you try to implement more complex features of your UI, you will also encounter <em>Functional Programming (FP)</em>. <strong><em>FP</em></strong> allows us to model <em>behaviors</em> in the UI and makes it easier to manipulate data with data-transformation functions. Since we are going to deal with JavaScript, which is already a <em>functional</em> language, it is worth knowing the basics of <strong><em>Functional Programming</em></strong>.</p><p>As you can probably see, we are unraveling more layers of the “<em>Development</em>” side of UI:</p><ul><li>Domain Driven Design</li><li>Component Oriented Development</li><li>SOLID principles</li><li>Object Oriented Programming</li><li>Functional Programming</li></ul><h4>80–20 Split for learning UI Development</h4><p>The above set of concepts are not really Framework or Platform specific. They are the core tenets of good <strong><em>Software Engineering</em></strong>. In fact, during the lifetime of a UI project, you will probably be spending <strong>80%</strong> of your time in applying the above tenets. The rest <strong>20%</strong> is where you are using the APIs of a Framework or Platform to create the UI.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/826/1*UB6aD_RKUHn-y7gHfkL8Pw.png" /><figcaption><strong>80 – 20</strong> split between <strong>Software Engineering</strong> and the <strong>Platform</strong></figcaption></figure><p>The good thing is that learning the <strong>20%</strong> is much easier than the <strong>80%</strong> part. Moreover, you don’t really have to know everything about the 20% part. You can learn it incrementally and supplement with more as needed. Once you get comfortable with the 20% (the <em>Framework</em> or <em>Platform</em>), you should focus more on the 80%.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/938/1*Vo9CiC26HQogGwgykz4dDw.png" /><figcaption>Cumulative 80–20 split learning</figcaption></figure><p>In fact, your learning should be a combination of the <strong>80%</strong> + <strong>20%</strong>. Every time you get comfortable with the 20% part, learn some of the 80% part. Doing this <strong>80–20</strong> split over a span of few months, you will bolster your knowledge with strong foundations: <strong>Software Engineering + Platform</strong>.</p><p>At that point, you are certainly going to be a formidable force in UI Development. And the world needs more like you. Go build that UI muscle.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Nkb-v98fiRHAssgCeNK7YA.png" /><figcaption>Crossing the bridge between <strong>Domain</strong> and <strong>UI</strong></figcaption></figure><h3>Tying it together</h3><p>So what is UI Development?</p><blockquote>It’s the process of giving a Visual, Interactive representation to your <strong>Domain</strong> and developing a working version with the power of <strong>Software Engineering</strong> and the <strong>Platform</strong>.</blockquote><p>Do you agree? Am I missing something? Some detail that is not already absorbed in the definition above? Perhaps, a perspective that is equally important. Let’s get the conversation going with comments!</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/50/1*E-qnUohuuSaIGcUvBEmJxQ.png" /></figure><p><strong><em>Personal Opinion</em></strong>: UI Development is not being taught the way it is meant to be learnt. 80% Software Engineering + 20% Platform. I am taking a different approach with <a href="https://theuidev.com">theuidev.com</a>, an online school to teach you UI Development from the ground up. Our first course is almost ready! <a href="https://theuidev.com/p/essential-guide-to-ui-engineering-part-1">Take a look</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7d6e8b27320d" width="1" height="1" alt=""><hr><p><a href="https://medium.com/theuidev/what-exactly-is-ui-development-7d6e8b27320d">What exactly is UI Development?</a> was originally published in <a href="https://medium.com/theuidev">The UI Dev</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>