<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Java programming Archives - SoftUni Global</title>
	<atom:link href="https://softuni.org/tag/java-programming/feed/" rel="self" type="application/rss+xml" />
	<link>https://softuni.org/tag/java-programming/</link>
	<description>Learn Programming and Start a Developer Job</description>
	<lastBuildDate>Fri, 16 Dec 2022 13:26:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softuni.org/wp-content/uploads/2022/04/cropped-SoftUni-Global-Logo-Square-notext-32x32.png</url>
	<title>Java programming Archives - SoftUni Global</title>
	<link>https://softuni.org/tag/java-programming/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Making A Sliding Puzzle in Java: Step-by-step Guide [Project Tutorials]</title>
		<link>https://softuni.org/project-tutorials/making-a-sliding-puzzle-in-java/</link>
					<comments>https://softuni.org/project-tutorials/making-a-sliding-puzzle-in-java/#comments</comments>
		
		<dc:creator><![CDATA[Nikol Ruseva]]></dc:creator>
		<pubDate>Mon, 17 Oct 2022 13:05:04 +0000</pubDate>
				<category><![CDATA[Step-by-Step Project Tutorials]]></category>
		<category><![CDATA[game development]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[puzzle]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[step-by-step]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=23354</guid>

					<description><![CDATA[<p>In this edition of the Project Tutorial series, we will create a simple sliding puzzle game in Java.</p>
<p>The post <a href="https://softuni.org/project-tutorials/making-a-sliding-puzzle-in-java/">Making A Sliding Puzzle in Java: Step-by-step Guide [Project Tutorials]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="23354" class="elementor elementor-23354" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Sliding puzzles are mechanical devices made of blocks of wood or plastic set into a frame as well as simple but addictive computer games that improve your problem-solving skills. The pieces are usually simple shapes or imprinted with colors, patterns, sections of a bigger picture, numbers, or letters.  </span><span style="font-weight: 400;">Sliding puzzles, also known as sliders or sliding-block puzzles, are different from rearrangement puzzles in that the pieces cannot be lifted or removed from the frame. To win, you have to arrange them in a specific pattern by sliding them into certain routes on the board. Each move opens a new path and rearranges the pieces, so you have to plan carefully in order to achieve the end configuration.</span></p><p><span style="font-weight: 400;">Following this tutorial, you will make <strong>your own 3&#215;3 sliding puzzle</strong> using Java.</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ac60dbc elementor-widget elementor-widget-image" data-id="ac60dbc" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" src="https://softuni.org/wp-content/uploads/2022/10/Puzzle.gif" title="Sliding-Puzzle-Gameplay" alt="Sliding-Puzzle-Gameplay" loading="lazy" />															</div>
				</div>
				<div class="elementor-element elementor-element-34fb39a elementor-widget elementor-widget-text-editor" data-id="34fb39a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;"><strong>Note: To create the game, you can use more advanced implementations like arrays and matrices. The method used in this tutorial is simple and targets absolute beginners.</strong><br />Let’s begin.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2041cf4 elementor-widget elementor-widget-heading" data-id="2041cf4" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-xl">Before You Start</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-1b467b7 elementor-widget elementor-widget-text-editor" data-id="1b467b7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">For the user interface, you use <strong>Swing</strong>. </span>Swing<span style="font-weight: 400;"> is a <strong>GUI (Graphical User Interface)</strong> widget toolkit for Java.</span><span style="font-weight: 400;"> It is built on top of the AWT (Abstract Windowing Toolkit) API. Unlike AWT, Java Swing provides platform-independent and lightweight components.</span></p><p><span style="font-weight: 400;">The javax.swing package provides classes for the Java Swing API such as <strong>JButton, JTextField, JLabel, JMenu</strong>, etc. You will use the Main method to start the program, but the programming logic will be written in a separate class.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-3c4f9e1 elementor-widget elementor-widget-heading" data-id="3c4f9e1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-xl">
Preparing Variables
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c74cf06 elementor-widget elementor-widget-text-editor" data-id="c74cf06" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Create a new project and give it a descriptive and meaningful name. </span></p><p><span style="font-weight: 400;">Your <strong>Main</strong> <strong>method</strong> should look like this:</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-6a49652 elementor-widget elementor-widget-code-highlight" data-id="6a49652" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>public class Main {
   public static void main(String[] args){
       new Puzzle();
   }
}</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-411639f elementor-widget elementor-widget-text-editor" data-id="411639f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Right-click on your project folder and create a new Java class &#8211; </span><b>Puzzle</b><span style="font-weight: 400;">. To use the functionalities (methods) of Swing, the class should </span><b>extend JFrame. </b><span style="font-weight: 400;">To make certain actions happen when you click on the puzzle pieces, you also need an event listener. Make the class </span><b>implement ActionListener.</b><b><br /></b></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f4a4827 elementor-widget elementor-widget-code-highlight" data-id="f4a4827" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Puzzle extends JFrame implements ActionListener{
}</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-b3697b2 elementor-widget elementor-widget-text-editor" data-id="b3697b2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Your puzzle will be <strong>3&#215;3</strong> so you need to declare </span><b>9 buttons </b><span style="font-weight: 400;">for each of the puzzle pieces, as well as a </span><b>shuffle </b><span style="font-weight: 400;">button to rearrange them. You can also implement a </span><b>counter </b><span style="font-weight: 400;">for the number of clicks the user has performed. To make the counter, you need an </span><b>integer </b><span style="font-weight: 400;">and a </span><b>label </b><span style="font-weight: 400;">to visualize the number.</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-4b97940 elementor-widget elementor-widget-code-highlight" data-id="4b97940" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,shuffle;
int counter = 0;
JLabel counterLabel;</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-000838a elementor-widget elementor-widget-heading" data-id="000838a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-xl">Creating Constructor
</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-138d7ce elementor-widget elementor-widget-text-editor" data-id="138d7ce" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">When you start the game, the first thing you will see is a new <strong>game</strong> <strong>window</strong>. Let’s set it up. Because the Puzzle class inherits (extends) from JFrame, it can call JFrame methods like <strong>setSize()</strong> and <strong>add(element)</strong>.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ecc7ef9 elementor-widget elementor-widget-code-highlight" data-id="ecc7ef9" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>Puzzle(){
   setSize(400,400);
   setLayout(null);
   setVisible(true);
   setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-550d174 elementor-widget elementor-widget-text-editor" data-id="550d174" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">It is <strong>400&#215;400 pixels</strong> in size (which you can customize to your preference) and will close when you click the<strong> X button</strong> on the top right.</span></p><p><span style="font-weight: 400;">Next, you need to initialize all the elements.</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-7dbb766 elementor-widget elementor-widget-code-highlight" data-id="7dbb766" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>b1 = new JButton("1");
b2 = new JButton(" ");
b3 = new JButton("3");
b4 = new JButton("4");
b5 = new JButton("5");
b6 = new JButton("6");
b7 = new JButton("7");
b8 = new JButton("8");
b9 = new JButton("2");
shuffle = new JButton("Shuffle!");
counterLabel = new JLabel("Clicks: 0");</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-cde3b5f elementor-widget elementor-widget-text-editor" data-id="cde3b5f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Then <strong>add</strong> these elements <strong>to the window</strong> and set proper <strong>bounds</strong>.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ee2595f elementor-widget elementor-widget-code-highlight" data-id="ee2595f" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>add(b1);add(b2);add(b3);add(b4);add(b5);add(b6);add(b7);add(b8);add(b9); add(shuffle);
Container contentPane = this.getContentPane();
contentPane.add(counterLabel);

b1.setBounds(90,60,50,40);
b2.setBounds(160,60,50,40);
b3.setBounds(230,60,50,40);
b4.setBounds(90,115,50,40);
b5.setBounds(160,115,50,40);
b6.setBounds(230,115,50,40);
b7.setBounds(90,170,50,40);
b8.setBounds(160,170,50,40);
b9.setBounds(230,170,50,40);
shuffle.setBounds(135,245,100,40);
counterLabel.setBounds(145,15,180,40);</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-473d62c elementor-widget elementor-widget-text-editor" data-id="473d62c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Now run the program. It should look like this:</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2fe425a elementor-widget elementor-widget-image" data-id="2fe425a" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="476" height="484" src="https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle.png" class="attachment-large size-large wp-image-23359" alt="Sliding-Puzzle" srcset="https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle.png 476w, https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle-295x300.png 295w" sizes="(max-width: 476px) 100vw, 476px" />															</div>
				</div>
				<div class="elementor-element elementor-element-2a20d4a elementor-widget elementor-widget-text-editor" data-id="2a20d4a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">The next step is <strong>optional</strong>, but it will improve the <strong>visual appeal</strong> of your game. It involves changing the background color of the puzzle pieces, the font, and the font size. You can select your own or use the ones from this example.</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-886c880 elementor-widget elementor-widget-code-highlight" data-id="886c880" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-csharp line-numbers">
				<code readonly="true" class="language-csharp">
					<xmp>shuffle.setBackground(Color.LIGHT_GRAY);

b1.setBackground(Color.decode("#5adbb5"));
b2.setBackground(Color.decode("#5adbb5"));
b3.setBackground(Color.decode("#5adbb5"));
b4.setBackground(Color.decode("#5adbb5"));
b5.setBackground(Color.decode("#5adbb5"));
b6.setBackground(Color.decode("#5adbb5"));
b7.setBackground(Color.decode("#5adbb5"));
b8.setBackground(Color.decode("#5adbb5"));
b9.setBackground(Color.decode("#5adbb5"));

b1.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b2.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b3.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b4.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b5.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b6.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b7.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b8.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
b9.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 18));
shuffle.setFont(new Font(Font.DIALOG, Font.PLAIN, 18));
counterLabel.setFont(new Font(Font.DIALOG, Font.PLAIN, 18));
</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-bcddbdc elementor-widget elementor-widget-spacer" data-id="bcddbdc" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-6ab465e elementor-widget elementor-widget-text-editor" data-id="6ab465e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">In the end, you get:</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-389ed4c elementor-widget elementor-widget-image" data-id="389ed4c" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="474" height="485" src="https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle-Customized.png" class="attachment-large size-large wp-image-23360" alt="" srcset="https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle-Customized.png 474w, https://softuni.org/wp-content/uploads/2022/10/Sliding-Puzzle-Customized-293x300.png 293w" sizes="(max-width: 474px) 100vw, 474px" />															</div>
				</div>
				<div class="elementor-element elementor-element-e6e05a0 elementor-widget elementor-widget-text-editor" data-id="e6e05a0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Finally, attach an action listener to every button:</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-1265ac8 elementor-widget elementor-widget-code-highlight" data-id="1265ac8" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
shuffle.addActionListener(this);
}</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-0330f2b elementor-widget elementor-widget-text-editor" data-id="0330f2b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">And the Puzzle <strong>constructor</strong> is done.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-097e0c9 elementor-widget elementor-widget-heading" data-id="097e0c9" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-xl">Adding Action</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6ac099f elementor-widget elementor-widget-text-editor" data-id="6ac099f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">The Action Listener is a simple event handler with only one method &#8211; <strong>actionPerformed </strong></span><span style="font-weight: 400;"><strong>(ActionEvent e)</strong>. It is used to define what should happen when a user performs a certain operation. It <strong>registers</strong> <strong>the</strong> <strong>event</strong> of clicking a button, for example. The ActionListener is one for all buttons, so you have to make a separate if statement for each one of them in the actionPerformed method. Let’s start with the </span><b>Shuffle </b><span style="font-weight: 400;">button.</span><span style="font-weight: 400;"><br /></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-ce1e1d9 elementor-widget elementor-widget-code-highlight" data-id="ce1e1d9" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>public void actionPerformed(ActionEvent e){
   if(e.getSource() == shuffle){
       String s = b4.getText();
       b4.setText(b9.getText());
       b9.setText(s);
       s = b1.getText();
       b1.setText(b5.getText());
       b5.setText(s);
       s = b2.getText();
       b2.setText(b7.getText());
       b7.setText(s);
       counter = -1;
       counterLabel.setText("Clicks: 0");
   }</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-91f92b4 elementor-widget elementor-widget-text-editor" data-id="91f92b4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;"><strong>The logic</strong> of moving puzzle pieces is simple: instead of physically moving the pieces around the board, you simply <strong>change</strong> <strong>their</strong> <strong>text</strong>.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-e3f817b elementor-widget elementor-widget-code-highlight" data-id="e3f817b" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>if(e.getSource() == b1){
   String s = b1.getText();
   if(b2.getText().equals(" ")){ b2.setText(s); b1.setText(" ");}
   else if(b4.getText().equals(" ")){ b4.setText(s); b1.setText(" ");}
}</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-b36e965 elementor-widget elementor-widget-text-editor" data-id="b36e965" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Let’s break the process into a <strong>few steps</strong>:</span><span style="font-weight: 400;"><br /></span></p><ol><li><span style="font-weight: 400;"> Extract the text from the current button;</span></li><li><span style="font-weight: 400;"> Determine which of the adjacent buttons has no text;</span></li><li><span style="font-weight: 400;"> Substitute the empty text with the extracted one;</span></li><li><span style="font-weight: 400;"> Set the text of the current button to an empty string.</span></li></ol><p><span style="font-weight: 400;">Follow this logic for the other pieces as well.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-48b1c62 elementor-widget elementor-widget-code-highlight" data-id="48b1c62" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>if(e.getSource() == b2){
   String s=b2.getText();
   if(b1.getText().equals(" ")){ b1.setText(s); b2.setText(" ");}
   else if(b3.getText().equals(" ")){ b3.setText(s); b2.setText(" ");}
   else if(b5.getText().equals(" ")){ b5.setText(s); b2.setText(" ");}
}
if(e.getSource() == b3){
   String s=b3.getText();
   if(b2.getText().equals(" ")){ b2.setText(s); b3.setText(" ");}
   else if(b6.getText().equals(" ")){ b6.setText(s); b3.setText(" ");}
}
if(e.getSource() == b4){
   String s=b4.getText();
   if(b1.getText().equals(" ")){ b1.setText(s); b4.setText(" ");}
   else if(b7.getText().equals(" ")){ b7.setText(s); b4.setText(" ");}
   else if(b5.getText().equals(" ")){ b5.setText(s); b4.setText(" ");}
}
if(e.getSource() == b5){
   String s=b5.getText();
   if(b2.getText().equals(" ")){ b2.setText(s); b5.setText(" ");}
   else if(b4.getText().equals(" ")){ b4.setText(s); b5.setText(" ");}
   else if(b6.getText().equals(" ")){ b6.setText(s); b5.setText(" ");}
   else if(b8.getText().equals(" ")){ b8.setText(s); b5.setText(" ");}
}
if(e.getSource() == b6){

   String s=b6.getText();
   if(b9.getText().equals(" ")){ b9.setText(s); b6.setText(" ");}
   else if(b3.getText().equals(" ")){ b3.setText(s); b6.setText(" ");}
   else if(b5.getText().equals(" ")){ b5.setText(s); b6.setText(" ");}

}
if(e.getSource() == b7){
   String s=b7.getText();
   if(b4.getText().equals(" ")){ b4.setText(s); b7.setText(" ");}
   else if(b8.getText().equals(" ")){ b8.setText(s); b7.setText(" ");}

}
if(e.getSource() == b8){
   String s=b8.getText();
   if(b7.getText().equals(" ")){ b7.setText(s); b8.setText(" ");}
   else if(b9.getText().equals(" ")){ b9.setText(s); b8.setText(" ");}
   else if(b5.getText().equals(" ")){ b5.setText(s); b8.setText(" ");}
}
</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-5ebe135 elementor-widget elementor-widget-text-editor" data-id="5ebe135" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">The last button marks the end of the puzzle, so it should also include a statement that checks whether it has been solved. For that to happen, the pieces must be put in the following order: </span><span style="font-weight: 400;"><br /></span><strong>1 2 3<br />4 5 6<br />7 8 empty</strong></p><p><span style="font-weight: 400;">Therefore, the simplest way to verify this order is to check the text on each button.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-e158015 elementor-widget elementor-widget-code-highlight" data-id="e158015" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>if(e.getSource() == b9){
   String s=b9.getText();
   if(b6.getText().equals(" ")){ b6.setText(s); b9.setText(" ");}
   else if(b8.getText().equals(" ")){ b8.setText(s); b9.setText(" ");}

   if(b1.getText().equals("1")&&b2.getText().equals("2")&&b3.getText()
           .equals("3")&&b4.getText().equals("4")&&b5.getText().equals("5")
           &&b6.getText().equals("6")&&b7.getText().equals("7")&&b8.getText()
           .equals("8")&&b9.getText().equals(" ")){
       JOptionPane.showMessageDialog(Puzzle.this,"YOU WON!\n" + "You clicked: " + counter + " times.");
   }
}</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-c26a37f elementor-widget elementor-widget-text-editor" data-id="c26a37f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">You can add a <strong>dialog box</strong> with a custom message that will <strong>pop up when the puzzle is solved</strong>. To do that, use the JOptionPane.showMessageDialog() method.</span></p><p><span style="font-weight: 400;">Finally, <strong>increase</strong> the <strong>counter integer</strong> and <strong>update the label&#8217;s text</strong> to the new value at the end of the if statements.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-1c61d54 elementor-widget elementor-widget-code-highlight" data-id="1c61d54" data-element_type="widget" data-widget_type="code-highlight.default">
				<div class="elementor-widget-container">
							<div class="prismjs-default copy-to-clipboard ">
			<pre data-line="" class="highlight-height language-javascript line-numbers">
				<code readonly="true" class="language-javascript">
					<xmp>counter++;
counterLabel.setText("Clicks: " + counter);</xmp>
				</code>
			</pre>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-2d2541e elementor-widget elementor-widget-text-editor" data-id="2d2541e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Your sliding puzzle is ready!</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-c3b578a elementor-widget elementor-widget-heading" data-id="c3b578a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-xl">Conclusion</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6f56a8e elementor-widget elementor-widget-text-editor" data-id="6f56a8e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">By following this tutorial, you have programmed your own sliding puzzle in Java using simple if statements and some basic functionality of the Swing library. Explore the library’s other features and think of ways to <strong>expand your project</strong> by adding, for example, a scoreboard, an option to switch between different puzzle sizes, randomization of the shuffle, etc. And don’t forget to <strong>upload</strong> it to your <a href="https://softuni.org/dev-concepts/what-is-git-and-how-to-work-with-github/">GitHub</a> profile.</span><span style="font-weight: 400;"><br /></span><span style="font-weight: 400;"><br /></span><span style="font-weight: 400;">To check out <strong>the final code</strong> and compare it to yours, </span><b>click the link below</b><span style="font-weight: 400;">.</span></p><p><span style="font-weight: 400;">If you need any help or advice, <strong>leave a comment.</strong></span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-0c72984 elementor-widget elementor-widget-spacer" data-id="0c72984" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2><div><div><div>In this tutorial we cover the following steps:</div></div><ul><li><strong>Preparing Variables</strong></li><li><strong>Creating Constructor</strong></li><li><strong>Adding Logic to Action Listener</strong></li></ul></div>								</div>
				</div>
				<div class="elementor-element elementor-element-93d53ef elementor-widget elementor-widget-spacer" data-id="93d53ef" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-dc263e9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="dc263e9" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2f88ff6" data-id="2f88ff6" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-96efd1f elementor-align-center elementor-widget elementor-widget-button" data-id="96efd1f" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-lg" href="https://github.com/SoftUni/SoftUni-Project-Tutorials-Puzzle-Game-Java" target="_blank">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<svg aria-hidden="true" class="e-font-icon-svg e-fas-laptop-code" viewBox="0 0 640 512" xmlns="http://www.w3.org/2000/svg"><path d="M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"></path></svg>			</span>
									<span class="elementor-button-text">Download Project</span>
					</span>
					</a>
				</div>
								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-3cd15ec elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3cd15ec" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-56bfdb0" data-id="56bfdb0" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/project-tutorials/making-a-sliding-puzzle-in-java/">Making A Sliding Puzzle in Java: Step-by-step Guide [Project Tutorials]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/project-tutorials/making-a-sliding-puzzle-in-java/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Java or Kotlin &#8211; What Is Better for Android Development?</title>
		<link>https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/</link>
					<comments>https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/#respond</comments>
		
		<dc:creator><![CDATA[Nikol Ruseva]]></dc:creator>
		<pubDate>Fri, 29 Jul 2022 14:24:52 +0000</pubDate>
				<category><![CDATA[Dev Talks]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[android development]]></category>
		<category><![CDATA[androiddvelopment]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[kotlin]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile development]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=22752</guid>

					<description><![CDATA[<p>In this article, we examine the differences between Java and Kotlin and their strengths and weaknesses to help you make a decision when choosing a programming language for Android development.</p>
<p>The post <a href="https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/">Java or Kotlin &#8211; What Is Better for Android Development?</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="22752" class="elementor elementor-22752" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-36e9adb elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="36e9adb" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-52e3c27" data-id="52e3c27" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3b02f7e elementor-widget elementor-widget-text-editor" data-id="3b02f7e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>When it comes to Android development, two of the most popular programming languages are Java and Kotlin. While Kotlin, which was released in 2011, is still being developed, Java has been around since 1995 and is open source, making it one of the most widely used languages. However, Kotlin has been taking off since 2017 when Google included it as an official Android development language along with Java.</p><p>If you’re new to Android development, the question of whether to use Kotlin or Java will probably not be on your mind at first. You will most likely opt to use Java until you become more familiar with the platform and decide what language would better suit your needs. But once you start becoming more confident with your Android development skills, choosing between Kotlin and Java will be a bit more difficult as both languages have some advantages and drawbacks, which we will examine in this article.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-279dc43 elementor-widget elementor-widget-heading" data-id="279dc43" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Java</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-c62c4b2 elementor-widget elementor-widget-text-editor" data-id="c62c4b2" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Java is a <strong>versatile</strong> and powerful programming language that can be used for a wide range of purposes. It is <strong>platform-independent</strong> and <strong>object-oriented</strong>. Platform independency is possible since the language uses <strong>byte-code</strong> and once compiled, the code can be run on <strong>any machine</strong> irrespective of its operating system. Also, using the principles of object-oriented programming increases the <strong>flexibility</strong> and <strong>reusability</strong> of the code.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-128971f elementor-widget elementor-widget-image" data-id="128971f" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="1024" height="576" src="https://softuni.org/wp-content/uploads/2022/07/Java-vs-Kotlin.png" class="attachment-large size-large wp-image-22784" alt="Benefits-Of-Java-Infograph" srcset="https://softuni.org/wp-content/uploads/2022/07/Java-vs-Kotlin.png 1024w, https://softuni.org/wp-content/uploads/2022/07/Java-vs-Kotlin-300x169.png 300w, https://softuni.org/wp-content/uploads/2022/07/Java-vs-Kotlin-768x432.png 768w, https://softuni.org/wp-content/uploads/2022/07/Java-vs-Kotlin-600x338.png 600w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-ad97bf8 elementor-widget elementor-widget-text-editor" data-id="ad97bf8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Java does <strong>not use</strong> explicit pointers. This means that developers can not access the memory directly from the code. Also, programs are executed inside the<strong> Java Virtual Machine (JVM)</strong>, providing additional <strong>security</strong> to the code. If an unauthorized method tries to access a private variable, the program fails to compile and prevents the system from a crash.</p><p>Java is widely used and has a large community of developers who are continuously creating new <strong>libraries</strong> and <strong>tools</strong> to make development easier. Moreover, Android Studio, the official IDE for Android development, is based on JetBrains&#8217; IntelliJ IDEA, which also supports Java development.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-3a8abb2 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3a8abb2" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-07eef48" data-id="07eef48" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f72d542 elementor-widget elementor-widget-heading" data-id="f72d542" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Kotlin</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-537fb80 elementor-widget elementor-widget-text-editor" data-id="537fb80" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kotlin is a new language developed by <strong>JetBrains</strong>. It is a <strong>statically</strong> typed programming language. Just like Java, it uses byte-code which can be executed on the JVM. It can also be <strong>compiled into JavaScript</strong>. It has intuitive, easy-to-learn syntax. </p>								</div>
				</div>
				<div class="elementor-element elementor-element-773925e elementor-widget elementor-widget-image" data-id="773925e" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="576" src="https://softuni.org/wp-content/uploads/2022/07/Benefits-Kotlin.png" class="attachment-large size-large wp-image-22757" alt="Benefits-Of-Kotlin-Infograph" srcset="https://softuni.org/wp-content/uploads/2022/07/Benefits-Kotlin.png 1024w, https://softuni.org/wp-content/uploads/2022/07/Benefits-Kotlin-300x169.png 300w, https://softuni.org/wp-content/uploads/2022/07/Benefits-Kotlin-768x432.png 768w, https://softuni.org/wp-content/uploads/2022/07/Benefits-Kotlin-600x338.png 600w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-8481772 elementor-widget elementor-widget-text-editor" data-id="8481772" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kotlin is <strong>compatible</strong> with Java and can be used alongside existing Java code. In fact, its purpose is to <strong>interoperate</strong> with code written in Java and improve it while using Java libraries and frameworks. This leads to <strong>reducing the boilerplate code</strong>, making it simpler, easier to read and understand, and safer in terms of potential bugs. Moreover, you can write Gradle code in Kotlin, allowing you to build<strong> iOS applications</strong>.</p><p>Kotlin is concise and expressive, meaning that you can write <strong>less code</strong> to accomplish the <strong>same</strong> <strong>task</strong>. This can lead to fewer errors and a faster development process overall. An example of reducing the boilerplate code is using the <strong>Data</strong> <strong>Classes</strong>.<br />You can see a side-by-side comparison of code written in Java and in Kotlin on the graphic below.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-9d85b43 elementor-widget elementor-widget-image" data-id="9d85b43" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="576" src="https://softuni.org/wp-content/uploads/2022/07/Class-Definition-Java-Kotlin.png" class="attachment-large size-large wp-image-22758" alt="Class-Definition-Java-Kotlin-Comparison" srcset="https://softuni.org/wp-content/uploads/2022/07/Class-Definition-Java-Kotlin.png 1024w, https://softuni.org/wp-content/uploads/2022/07/Class-Definition-Java-Kotlin-300x169.png 300w, https://softuni.org/wp-content/uploads/2022/07/Class-Definition-Java-Kotlin-768x432.png 768w, https://softuni.org/wp-content/uploads/2022/07/Class-Definition-Java-Kotlin-600x338.png 600w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
				<div class="elementor-element elementor-element-e70bb82 elementor-widget elementor-widget-text-editor" data-id="e70bb82" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kotlin has <strong>null safety built-in</strong>, which eliminates the risk of NullPointerException (NPE) errors since it fails to compile whenever an NPE may be thrown. It also supports higher-order functions, lambda expressions, and operator overloading, making the language a combination of <strong>functional</strong> and <strong>procedural</strong> <strong>programming</strong>.</p><p>Although it is a new language, it is gaining a lot of popularity in the development community. However, there are still some drawbacks to using Kotlin for Android development. The language is not yet as widely adopted as Java. This means that the learning resources are limited. Also, the community of Kotlin users is smaller so finding help and support, or experienced developers for your business may be more difficult. </p>								</div>
				</div>
				<div class="elementor-element elementor-element-6d67235 elementor-widget elementor-widget-heading" data-id="6d67235" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusion</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-58ecb02 elementor-widget elementor-widget-text-editor" data-id="58ecb02" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Kotlin and Java are both great options for Android development. They each have their own strengths and weaknesses that should be considered. Kotlin is a younger language, but it has many features that make it a great choice for developers. However, the concepts of Android SDK are based on Java so learning the basics might be useful. Moreover, it is still the most popular language for Android development and additional knowledge would definitely will be an advantage to you. </p><p>The answer to the question “Java or Kotlin?” depends on your preferences and what you are looking for in a programming language. One thing is certain &#8211; learning both will benefit you by expanding your tech stack and improving your coding abilities.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/">Java or Kotlin &#8211; What Is Better for Android Development?</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-talks/java-or-kotlin-what-is-better-for-android-development/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Object-Relational Mapping (ORM) [Dev Concepts #19.2]</title>
		<link>https://softuni.org/dev-concepts/object-relational-mapping-orm/</link>
					<comments>https://softuni.org/dev-concepts/object-relational-mapping-orm/#respond</comments>
		
		<dc:creator><![CDATA[Luben Lubenov]]></dc:creator>
		<pubDate>Mon, 13 Dec 2021 09:21:00 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9218</guid>

					<description><![CDATA[<p>In this short video, we will get familiar with the Object-Relational Mapping concept</p>
<p>The post <a href="https://softuni.org/dev-concepts/object-relational-mapping-orm/">Object-Relational Mapping (ORM) [Dev Concepts #19.2]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9218" class="elementor elementor-9218" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this lesson, you will become familiar with the <strong>Object-Relational Mapping </strong>technologies or the so-called <strong>ORMs. </strong>As a relative newcomer to programming, terms like <strong>ORMs </strong>can sound intimidating. The nice part about them is that they allow us to write code easier once we understand them. <img loading="lazy" decoding="async" class="size-medium wp-image-9224 alignright" src="https://softuni.org/wp-content/uploads/2021/12/orm-300x153.png" alt="" width="300" height="153" srcset="https://softuni.org/wp-content/uploads/2021/12/orm-300x153.png 300w, https://softuni.org/wp-content/uploads/2021/12/orm-600x306.png 600w, https://softuni.org/wp-content/uploads/2021/12/orm-1024x522.png 1024w, https://softuni.org/wp-content/uploads/2021/12/orm-768x391.png 768w, https://softuni.org/wp-content/uploads/2021/12/orm-1536x783.png 1536w, https://softuni.org/wp-content/uploads/2021/12/orm.png 1847w" sizes="(max-width: 300px) 100vw, 300px" /></p><p><strong>Object-Relational Mapping </strong>technology is the idea of writing queries using your favorite programming language. We interact with a <strong>database </strong>using our language of choice instead of <strong>SQL</strong>.</p><p>Let’s say that we have an application. An <strong>ORM</strong> will convert the result of a <strong>database query</strong> into a <strong>class</strong> within our application. The selected columns will map to the <strong>class</strong> <strong>properties</strong>. On the other hand, if you push data towards the <strong>database</strong>, an <strong>ORM</strong> will map the <strong>properties</strong> of a <strong>class</strong> into columns of a table. When people say <strong>ORM,</strong> they refer to a <strong>framework</strong> that implements this technique. Here are some of the most frequently used <strong>ORM frameworks</strong>:  <strong>Entity</strong> <strong>Framework</strong>, <strong>Hibernate</strong>, <strong>Sequelize</strong>, and <strong>SQLAlchemy</strong>.</p><p><img loading="lazy" decoding="async" class="size-medium wp-image-9225 aligncenter" src="https://softuni.org/wp-content/uploads/2021/12/arrow-orm-300x115.png" alt="" width="300" height="115" srcset="https://softuni.org/wp-content/uploads/2021/12/arrow-orm-300x115.png 300w, https://softuni.org/wp-content/uploads/2021/12/arrow-orm-600x229.png 600w, https://softuni.org/wp-content/uploads/2021/12/arrow-orm-1024x391.png 1024w, https://softuni.org/wp-content/uploads/2021/12/arrow-orm-768x294.png 768w, https://softuni.org/wp-content/uploads/2021/12/arrow-orm-1536x587.png 1536w, https://softuni.org/wp-content/uploads/2021/12/arrow-orm.png 1962w" sizes="(max-width: 300px) 100vw, 300px" /></p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/A9wsdGoNImc&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2><div><div>In this video we review the following topics:</div><ul><li><b>ORM Technologies</b></li><li><b>Overview Live Demo – ToDo List</b></li></ul></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-97bd571 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="97bd571" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ccb3dd6" data-id="ccb3dd6" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-19-Object-Relational-Mapping.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/object-relational-mapping-orm/">Object-Relational Mapping (ORM) [Dev Concepts #19.2]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/object-relational-mapping-orm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Databases: Mini Overview [Dev Concepts #19.1]</title>
		<link>https://softuni.org/dev-concepts/databases-mini-overview-19-1/</link>
					<comments>https://softuni.org/dev-concepts/databases-mini-overview-19-1/#respond</comments>
		
		<dc:creator><![CDATA[Aleksandar Peev]]></dc:creator>
		<pubDate>Mon, 13 Dec 2021 05:30:00 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9264</guid>

					<description><![CDATA[<p>In this lesson of the series Dev Concepts, we take a look at Databases!</p>
<p>The post <a href="https://softuni.org/dev-concepts/databases-mini-overview-19-1/">Databases: Mini Overview [Dev Concepts #19.1]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9264" class="elementor elementor-9264" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span data-preserver-spaces="true">In this episode, Svetlin Nakov will explain to you what databases are.  That probably is not news to you, but the world creates a lot of <strong>data</strong> nowadays. </span><span data-preserver-spaces="true">By 2030, more than 465 exabytes of </span><strong><span data-preserver-spaces="true">data </span></strong><span data-preserver-spaces="true">will be created each day </span><strong><span data-preserver-spaces="true">globally</span></strong><span data-preserver-spaces="true">. That statistic is proof that </span><strong><span data-preserver-spaces="true">handling data</span></strong><span data-preserver-spaces="true"> becomes </span><strong><span data-preserver-spaces="true">essential</span></strong><span data-preserver-spaces="true">, and that is where </span><strong><span data-preserver-spaces="true">Databases </span></strong><span data-preserver-spaces="true">come into the picture.</span></p><p><img loading="lazy" decoding="async" class="wp-image-10534 alignright" src="https://softuni.org/wp-content/uploads/2022/01/db-300x185.png" alt="" width="300" height="185" srcset="https://softuni.org/wp-content/uploads/2022/01/db-300x185.png 300w, https://softuni.org/wp-content/uploads/2022/01/db-600x371.png 600w, https://softuni.org/wp-content/uploads/2022/01/db.png 647w" sizes="(max-width: 300px) 100vw, 300px" /></p><p><span data-preserver-spaces="true">A </span><strong><span data-preserver-spaces="true">database </span></strong><span data-preserver-spaces="true">is a place for storing our </span><strong><span data-preserver-spaces="true">data </span></strong><span data-preserver-spaces="true">but in an</span><strong><span data-preserver-spaces="true"> </span></strong><span data-preserver-spaces="true">organized structure.  </span><strong><span data-preserver-spaces="true">Data </span></strong><span data-preserver-spaces="true">is organized and stored in the form of tables. A table contains rows and columns. Each row in a </span><strong><span data-preserver-spaces="true">table</span></strong><span data-preserver-spaces="true"> is a </span>record<span data-preserver-spaces="true">, and column a </span><strong><span data-preserver-spaces="true">field</span></strong><span data-preserver-spaces="true"> that describes the row.  </span><span style="font-size: 16px;" data-preserver-spaces="true">For example, In a customer table, each row is a unique person, and </span><strong style="font-size: 16px;"><span data-preserver-spaces="true">fields </span></strong><span style="font-size: 16px;" data-preserver-spaces="true">like name and address describe this specific customer.</span></p><p><span data-preserver-spaces="true"> We usually say that our </span><strong><span data-preserver-spaces="true">database </span></strong><span data-preserver-spaces="true">is MySQL, MongoDB, SQLite, MS SQL Server, etc.</span><strong><span data-preserver-spaces="true"> </span></strong><span data-preserver-spaces="true">That is </span><strong><span data-preserver-spaces="true">wrong! </span></strong><span data-preserver-spaces="true">They are not databases, but </span><strong><span data-preserver-spaces="true">database management systems(DBMS)</span></strong><span data-preserver-spaces="true">. </span></p><p><span data-preserver-spaces="true"> The </span><strong><span data-preserver-spaces="true">DBMS </span></strong><span data-preserver-spaces="true">is the </span><strong><span data-preserver-spaces="true">software </span></strong><span data-preserver-spaces="true">that you install on your personal computer or a server, and then you would use it to </span><strong><span data-preserver-spaces="true">manage a database</span></strong><span data-preserver-spaces="true">. Modern software systems use a </span><strong><span data-preserver-spaces="true">DBMS </span></strong><span data-preserver-spaces="true">system to </span><strong><span data-preserver-spaces="true">manage data </span></strong><span data-preserver-spaces="true">instead of implementing the data management internally.</span></p><p><img loading="lazy" decoding="async" class="size-medium wp-image-10535 aligncenter" src="https://softuni.org/wp-content/uploads/2022/01/dbchart-300x229.png" alt="" width="300" height="229" srcset="https://softuni.org/wp-content/uploads/2022/01/dbchart-300x229.png 300w, https://softuni.org/wp-content/uploads/2022/01/dbchart.png 597w" sizes="(max-width: 300px) 100vw, 300px" /></p><p><span data-preserver-spaces="true"> One of the most important </span><strong><span data-preserver-spaces="true">DBMS </span></strong><span data-preserver-spaces="true">are: </span></p><ul><li><strong><span data-preserver-spaces="true">Relational Database Management Systems (RDMS)</span></strong></li><li><strong><span data-preserver-spaces="true">NoSQL Database Systems</span></strong></li></ul><p><span data-preserver-spaces="true">Today&#8217;s demo will be done with </span><strong><span data-preserver-spaces="true">RDMSystem</span></strong><span data-preserver-spaces="true">. They consider the </span><strong><span data-preserver-spaces="true">relationship </span></strong><span data-preserver-spaces="true">between the tables by using </span><strong><span data-preserver-spaces="true">primary keys</span></strong><span data-preserver-spaces="true"> and </span><strong><span data-preserver-spaces="true">foreign keys</span></strong><span data-preserver-spaces="true">. Thus, it offers an advantage over other </span><strong><span data-preserver-spaces="true">DBMS </span></strong><span data-preserver-spaces="true">by fetching and storing the </span><strong><span data-preserver-spaces="true">data</span></strong><span data-preserver-spaces="true">. It is used in enterprises for storing large amounts of </span><strong><span data-preserver-spaces="true">data</span></strong><span data-preserver-spaces="true">.</span></p><p><span data-preserver-spaces="true">Examples of </span><strong><span data-preserver-spaces="true">RDBMS </span></strong><span data-preserver-spaces="true">are:</span></p><ul><li><strong><span data-preserver-spaces="true">Microsoft SQL Server</span></strong></li><li><strong><span data-preserver-spaces="true">SQLite</span></strong></li></ul><p><span data-preserver-spaces="true"><img loading="lazy" decoding="async" class=" wp-image-10536 alignright" src="https://softuni.org/wp-content/uploads/2022/01/dbperson-234x300.jpg" alt="" width="181" height="232" srcset="https://softuni.org/wp-content/uploads/2022/01/dbperson-234x300.jpg 234w, https://softuni.org/wp-content/uploads/2022/01/dbperson.jpg 547w" sizes="(max-width: 181px) 100vw, 181px" />The next type of </span><strong><span data-preserver-spaces="true">DBMS  </span></strong><span data-preserver-spaces="true">is </span><strong><span data-preserver-spaces="true">NoSQL</span></strong><span data-preserver-spaces="true">. Non-relational databases do not store data in tables. Instead, there are multiple ways to store data in </span><strong><span data-preserver-spaces="true">NoSQL databases</span></strong><span data-preserver-spaces="true">, such as <strong>Key-value</strong>, <strong>Document-based</strong>, and <strong>Column-based</strong>. Each record </span><span data-preserver-spaces="true">does not have to be in the same structure as other </span>records<span data-preserver-spaces="true">. Due to this, to add additional data, you can add more </span>records <span data-preserver-spaces="true">without changing the </span><strong><span data-preserver-spaces="true">structure </span></strong><span data-preserver-spaces="true">of the entire </span><strong><span data-preserver-spaces="true">database</span></strong><span data-preserver-spaces="true">. Although there are many perks to </span><strong><span data-preserver-spaces="true">NoSQL </span></strong><span data-preserver-spaces="true">databases, </span><strong><span data-preserver-spaces="true">SQL </span></strong><span data-preserver-spaces="true">databases are still more commonly used at this point.</span></p><p><strong><span data-preserver-spaces="true">Database systems </span></strong><span data-preserver-spaces="true">are a <strong>necessary </strong></span><span data-preserver-spaces="true">component of most modern software systems, and software engineers must have at least </span><strong><span data-preserver-spaces="true">basic database skills</span></strong><span data-preserver-spaces="true">.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/riLcWcz14Sk&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-ac37199 elementor-widget elementor-widget-text-editor" data-id="ac37199" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><i style="font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">If you are new to programming, make sure to watch our <a href="https://softuni.org/code-lessons/java-basics-full-course-free-13-hours-video-plus-74-exercises/">Free Full Java Basics </a>course! It will give you the necessary foundation to build upon and become a successful software engineer!</i></p>								</div>
				</div>
				<div class="elementor-element elementor-element-be50e91 elementor-widget elementor-widget-heading" data-id="be50e91" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Topics</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this video we review the following topics:</p><div><ul><li><strong><span data-preserver-spaces="true">Databases</span></strong><ul><li class="ql-indent-1"><strong><span data-preserver-spaces="true">DBMS</span></strong></li><li class="ql-indent-1"><strong><span data-preserver-spaces="true">Relational Databases</span></strong></li><li class="ql-indent-1"><strong><span data-preserver-spaces="true">NoSQL Databases</span></strong></li></ul></li><li><strong><span data-preserver-spaces="true">Web SQL &#8211; Example</span></strong></li></ul></div>								</div>
				</div>
				<div class="elementor-element elementor-element-9fe4d6c elementor-widget elementor-widget-text-editor" data-id="9fe4d6c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">Remember that </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: bold;">coding is a skill</span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, which should be practiced. To learn to code, you should </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: bold;">write code</span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, every day, for a long time. Watching tutorials is not enough. </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-weight: bold;">You should code! <br /><br />We would love to hear from you, so leave a comment below saying what topics you would like to see next. </span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-daa4299 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="daa4299" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3eb2d1c" data-id="3eb2d1c" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-19.1-Databases-Mini-Overview-1.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/databases-mini-overview-19-1/">Databases: Mini Overview [Dev Concepts #19.1]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/databases-mini-overview-19-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[12/13] Java Foundations Certification: Java API Classes</title>
		<link>https://softuni.org/code-lessons/java-foundations-certification-java-api-classes/</link>
					<comments>https://softuni.org/code-lessons/java-foundations-certification-java-api-classes/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Thu, 09 Dec 2021 17:02:13 +0000</pubDate>
				<category><![CDATA[Code Lessons]]></category>
		<category><![CDATA[code lessons]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free Java tutorial]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[IntelliJ IDEA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java coding]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java Foundations]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[Java training]]></category>
		<category><![CDATA[Java videos]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9189</guid>

					<description><![CDATA[<p>Build a strong foundation of knowledge in Java programming! Prepare for your “Java Foundations” official exam by learning some of the most commonly used Java API Classes.</p>
<p>The post <a href="https://softuni.org/code-lessons/java-foundations-certification-java-api-classes/">[12/13] Java Foundations Certification: Java API Classes</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9189" class="elementor elementor-9189" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In the current lesson, we take a closer look at the most frequently used <b>Java API classes</b>. Svetlin Nakov will explain all about the Math class, how to generate random numbers, the need for <b>BigInteger </b>and <b>BigDecimal </b>in programming, and how to work with date and time in <b>Java</b>. We will also look at two of the main <b>Java classes</b> &#8211; <b>Arrays </b>and <b>Formatter</b>.<img loading="lazy" decoding="async" class="size-medium wp-image-9209 alignright" src="https://softuni.org/wp-content/uploads/2021/12/photo_2021-12-09_19-09-45-300x137.jpg" alt="" width="300" height="137" srcset="https://softuni.org/wp-content/uploads/2021/12/photo_2021-12-09_19-09-45-300x137.jpg 300w, https://softuni.org/wp-content/uploads/2021/12/photo_2021-12-09_19-09-45.jpg 490w" sizes="(max-width: 300px) 100vw, 300px" /></p><p>The <b>Math </b>class contains methods for performing basic numeric operations, such as <b>round, min, max, abs, ceil, etc</b>.. The <b>Arrays </b>class contains various methods which facilitate array manipulation. <b>String.format()</b> allows us to return the formatted string by given <b>locale</b>, <b>format</b>, and <b>arguments</b>.</p><p>In this lesson you will find many helpful <b>examples </b>and <b>exercises</b>, so make sure to <b>practice </b>what you&#8217;ve learned! That&#8217;s the only way to grasp the concept at hand.</p><p><b>BigInteger </b>and <b>BigDecimal </b>are used for handling <b>large </b>and <b>small numbers</b> with <b>great</b> <b>precision</b>. <b>BigInteger </b>will throw an exception when the result is <b>out of range</b>. <b>BigDecimal </b>gives the user <b>complete control </b>over the rounding behavior. </p><p><img loading="lazy" decoding="async" class="size-full wp-image-9210 alignleft" src="https://softuni.org/wp-content/uploads/2021/12/Picture1.png" alt="" width="264" height="202" />Importing a single package allows us to work with the <b>date </b>and <b>time API</b>. <br />In this lesson you will find many helpful <b>examples and exercises</b>, so make sure to practice what you’ve learned! </p><p>As always, we advise you to pause the video right before the solving part of each problem and try to do the exercises on your own first. Then, if you have difficulties, just watch the provided solutions in the video. If you still have questions, we’re always here to help! </p><p><i>*The exercise descriptions are to be found in the PDF document at the end of this post.</i></p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/H57pSYrPv-g&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f334d2a elementor-widget elementor-widget-heading" data-id="f334d2a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Topics</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div><p><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text );">This video</span><strong style="font-style: inherit; color: var( --e-global-color-text );"> </strong><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text );">covers the following topics:</span></p></div><p><b style="font-style: inherit; color: var( --e-global-color-text );">1. </b><span style="color: var( --e-global-color-text );"><b>The Judge System</b></span></p><ul><li>The <b>Exception </b>class </li><li>Types of exceptions and their hierarchy</li></ul><div><p style="font-size: 15px; font-style: normal;"><span style="font-weight: bold;">2. </span><span style="color: var( --e-global-color-text );"><b>The Math Class</b></span></p><p style="font-size: 15px; font-style: normal;"><span style="font-weight: bold;">3. The</span><b> <span style="color: var( --e-global-color-text );">Random Class</span></b></p><p style="font-size: 15px; font-style: normal;"><span style="font-weight: bold;">4. </span><span style="color: var( --e-global-color-text );"><b>The Arrays Class</b></span></p><ul style="font-size: 15px; font-style: normal; font-weight: 400;"><li style="font-size: 15px;">Methods of the Arrays Class </li><li style="font-size: 15px;">Example of Sorting an Array </li></ul><p style="font-size: 15px; font-style: normal;"><span style="font-weight: bold;">5. </span><span style="color: var( --e-global-color-text );"><b>String Formatter</b></span></p><p style="font-size: 15px; font-style: normal;"><span style="color: var( --e-global-color-text );"><b>6. </b></span><span style="color: var( --e-global-color-text );"><b>BigInteger and BigDecimal</b></span></p><p style="font-size: 15px; font-style: normal;"><span style="color: var( --e-global-color-text );"><b>7. </b></span><span style="color: var( --e-global-color-text );"><b>Java Date and Time</b></span></p></div><div id="malwarebytes-root"> </div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c79d7fc elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c79d7fc" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-86aa77a" data-id="86aa77a" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7a98032 elementor-widget elementor-widget-template" data-id="7a98032" data-element_type="widget" data-widget_type="template.default">
				<div class="elementor-widget-container">
							<div class="elementor-template">
					<div data-elementor-type="section" data-elementor-id="20669" class="elementor elementor-20669" data-elementor-post-type="elementor_library">
					<section class="elementor-section elementor-top-section elementor-element elementor-element-2753e750 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2753e750" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b04b054" data-id="b04b054" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-50498bde elementor-widget elementor-widget-heading" data-id="50498bde" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Practical Exercises</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6264b7a9 elementor-widget elementor-widget-text-editor" data-id="6264b7a9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span style="font-size: 16px; font-style: normal;">W</span></strong><span style="font-size: 16px; font-style: normal; font-weight: 700 !important;">atch the video</span><span style="font-size: 16px; font-style: normal; font-weight: 400;"> and </span><span style="font-size: 16px; font-style: normal; font-weight: 700 !important;">solve the problems</span><span style="font-size: 16px; font-style: normal; font-weight: 400;">. </span>To better understand the material, do the<strong> coding exercises</strong> and implement the knowledge you acquired. Writing code is the only way to master the <b>skill of code</b>.</p><p>Submit your code in the <b>SoftUni Judge System</b>:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5a06f887 elementor-cta--layout-image-right elementor-cta--mobile-layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="5a06f887" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
							<a class="elementor-cta" href="https://judge.softuni.org/Contests/3294/Full-Java-Foundations-Course" target="_blank">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://softuni.org/wp-content/uploads/2021/10/softuni-judge-system.png);" role="img" aria-label="softuni-judge-system"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h3 class="elementor-cta__title elementor-cta__content-item elementor-content-item">
						Hands-on Exercises in the SoftUni Judge					</h3>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item">
						Submit your exercise code and check its correctness in the SoftUni Judge.					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item ">
					<span class="elementor-cta__button elementor-button elementor-size-md">
						Go To Judge					</span>
					</div>
							</div>
							<div class="elementor-ribbon elementor-ribbon-left">
				<div class="elementor-ribbon-inner">
					free				</div>
			</div>
				</a>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
				</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Exercises: Problem Description</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-257b166 elementor-widget elementor-widget-pdfjs_viewer" data-id="257b166" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Java-Foundations-Lesson-12-Java-API-Classes-Exercises.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
				<div class="elementor-element elementor-element-fd8bc32 elementor-widget elementor-widget-heading" data-id="fd8bc32" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Java-Foundations-Lesson-12-Java-API-Classes.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/code-lessons/java-foundations-certification-java-api-classes/">[12/13] Java Foundations Certification: Java API Classes</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/code-lessons/java-foundations-certification-java-api-classes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>React Native: Short Overview [Dev Concepts #18]</title>
		<link>https://softuni.org/dev-concepts/react-native-short-overview/</link>
					<comments>https://softuni.org/dev-concepts/react-native-short-overview/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Wed, 08 Dec 2021 09:21:42 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9154</guid>

					<description><![CDATA[<p>Upgrade your knowledge of React with this React Native Dev Concepts lesson!</p>
<p>The post <a href="https://softuni.org/dev-concepts/react-native-short-overview/">React Native: Short Overview [Dev Concepts #18]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9154" class="elementor elementor-9154" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this episode, we’ll focus on <b>modern mobile app development</b>, while using <b>React Native</b>. </p><p>In the previous episode, we reviewed “<b>React</b>“ which is<b> the number one web framework for 2021</b>. Today we will be focusing on modern mobile app development technologies and React Native. </p><p><img loading="lazy" decoding="async" class="size-medium wp-image-9180 alignleft" src="https://softuni.org/wp-content/uploads/2021/12/1-281x300.png" alt="" width="281" height="300" srcset="https://softuni.org/wp-content/uploads/2021/12/1-281x300.png 281w, https://softuni.org/wp-content/uploads/2021/12/1.png 496w" sizes="(max-width: 281px) 100vw, 281px" /></p><p>The lesson includes a small demo React Native mobile app, which defines <b>a JSX component </b>and renders it in the Web browser. </p><p>For <b>front-end and client-side app development</b>, mobile apps are <b>important</b>. To build our mobile application we need to combine <b>development principles, concepts, platforms, technologies, frameworks, libraries, and tools</b>. In this lesson, we will be reviewing the two major mobile app platforms that <b>dominate the markets</b>.</p><p> </p><p>They are <b>Android </b>and <b>ioS</b>. Each one of them has its perks: </p><ul><li><b>Android </b>devices are <b>less expensive</b> compared to <b>iOS devices</b>. They also provide more freedom and options for developers. </li><li><b>iOS </b>devices are <b>slightly less popular</b>, despite their<b> high price</b>. This market is more profitable because most apps follow a paid model. </li></ul><p><img loading="lazy" decoding="async" class="size-medium wp-image-9181 alignright" src="https://softuni.org/wp-content/uploads/2021/12/4-300x169.jpg" alt="" width="300" height="169" srcset="https://softuni.org/wp-content/uploads/2021/12/4-300x169.jpg 300w, https://softuni.org/wp-content/uploads/2021/12/4-600x338.jpg 600w, https://softuni.org/wp-content/uploads/2021/12/4.jpg 736w" sizes="(max-width: 300px) 100vw, 300px" /></p><p><b>Mobile app</b> development technologies are split into several <b>categories</b>: <b>Android, iOS, and Hybrid</b>. We have talked about the first two, but what are <b>Hybrid </b>technologies? They are based on <b>JavaScript </b>and <b>HTML5 </b>using an embedded Web browser. There are more mobile app dev technologies, but those are the well-known ones we will be talking about. </p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/7zK7wpoZPHo&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2><div><div>In this video we review the following topics:</div><ul><li><b>Mobile App Technologies </b></li><li><b>Overview Live Demo – Summator</b></li></ul></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-72cc499 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="72cc499" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-12ccf15" data-id="12ccf15" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-18-React-Native-Short-Overview.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/react-native-short-overview/">React Native: Short Overview [Dev Concepts #18]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/react-native-short-overview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>React: Short Overview [Dev Concepts #17]</title>
		<link>https://softuni.org/dev-concepts/react-short-overview/</link>
					<comments>https://softuni.org/dev-concepts/react-short-overview/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Tue, 07 Dec 2021 09:29:25 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9127</guid>

					<description><![CDATA[<p>In this lesson of the series Dev Concepts we take a look at React!</p>
<p>The post <a href="https://softuni.org/dev-concepts/react-short-overview/">React: Short Overview [Dev Concepts #17]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9127" class="elementor elementor-9127" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In the current lesson, we will review a highly popular <b>JavaScript UI library</b>, called &#8220;<b>React</b>&#8220;. In short, <b>React.JS</b> is a <b>component-based front-end technology</b> for the Web. The <b>JSX </b>components in React combine <b>HTML</b> and <b>JavaScript </b>to display the <b>component UI</b>, which is bound to the internal component state.</p><p>The lesson includes a small demo <b>React app</b>, which defines a<b> JSX component </b>and renders it in the Web browser.</p><p>Later in the lesson, you will find a slightly more complicated demo: how to create <b>a simple React calculator</b>, which <b>sums two numbers</b>. We will review each of the files inside the sample <b>React app</b> to understand better how it works internally.</p><p><b>So, what is React?</b></p><p>When we talk about user interface and front-end frameworks, it is worth mentioning <b>React</b>.</p><ul><li><b>React </b>is a powerful <b>JavaScript library </b>from <b>Facebook </b>for building Web user interfaces using <b>HTML</b>, <b>CSS, </b>and <b>JavaScript</b>. The <b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">UI</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> is built from</span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> JSX components</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, which combine </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">HTML </b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">+ </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">JavaScript </b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">using a built-in templating engine.</span></li><li><b>React </b>is а <b>component-based UI library</b>.</li><li>With <b>React</b>, developers create <b>reusable UI components</b>, <span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">which have a </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>lifecycle, internal state and behavior.</b></span></li></ul><p>It is discussable whether <b>React </b>is a <b>library </b>or a <b>framework</b>. <span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">It is maybe somewhere </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>in between</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">.</span></p><p>By adding some additional components like<b> React Router, MobX, Redux, Flux, React Toolbox,</b> and some others, <span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">we can turn to React into a fully-functional Web front-end framework.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/gEbHl9EhwoI&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2><div><div>In this video we review the following topics:</div><ul><li><b>React &#8211; Overview</b></li><li><b>Live Demo &#8211; Summator</b></li></ul></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ac83483 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ac83483" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b4af63b" data-id="b4af63b" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-17-React-Short-Overview.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/react-short-overview/">React: Short Overview [Dev Concepts #17]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/react-short-overview/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Desktop App with Windows Forms [Dev Concepts #16]</title>
		<link>https://softuni.org/dev-concepts/desktop-app-with-windows-forms/</link>
					<comments>https://softuni.org/dev-concepts/desktop-app-with-windows-forms/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Mon, 06 Dec 2021 12:37:25 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9097</guid>

					<description><![CDATA[<p>Create a simple calculator with Windows Forms! Watch our new Dev Lesson to find out how.</p>
<p>The post <a href="https://softuni.org/dev-concepts/desktop-app-with-windows-forms/">Desktop App with Windows Forms [Dev Concepts #16]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9097" class="elementor elementor-9097" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this episode, you&#8217;ll learn how to create a <b>desktop application</b> using <b>Windows Forms</b> and <b>C#</b>.  <br /><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">We will take a closer look at how </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">GUI frameworks</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> work with a live code example.</span></p><p><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">In programming, </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">GUI</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> means &#8220;</span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">graphical user interface</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">&#8220;, which is a system to interact visually with the users through </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">UI controls</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, such as</span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> forms, buttons, text boxes,</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> and others.<br /></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">In this session, we will show you </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">a sample desktop app</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> based on the </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">Windows Forms GUI framework</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">. We will build a simple </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">calculator</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, which sums two numbers.</span></p><p><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">We will get familiar with </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">the structure </b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">and </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">the front-end part of the app</b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">: </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">the main form, holding the UI controls.</b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> We will look at </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">how the app is built</b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, by extending a </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">class </b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">from the </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">UI framework</b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, from a composition of components, and how </span><b style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">event handlers</b><span style="font-size: var( --e-global-typography-text-font-size ); font-style: inherit; font-weight: var( --e-global-typography-text-font-weight ); color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> are called from the framework to respond to user interactions.</span></p><p><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );">The demo code is designed to run in a </span><b style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size );">Windows environment</b><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );">, using </span><b style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size );">Visual Studio and the .NET Framework</b><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-size: var( --e-global-typography-text-font-size ); font-weight: var( --e-global-typography-text-font-weight );">. It can&#8217;t run on Mac or Linux. Sorry, this is a limitation of the Windows Forms technology.</span></p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/KQJrxjJfD-o&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-9fe4d6c elementor-widget elementor-widget-text-editor" data-id="9fe4d6c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>Windows Forms</b> is a classic software framework for the development of Desktop <b>graphical user interface (GUI)</b> apps for Microsoft Windows.</p><p>It is based on <b>the .NET platform</b> and <b>the C# language</b>.<br /><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit; font-weight: inherit;">Windows Forms provides a programming model and </span><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit;"><b>rich UI control library</b></span><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit; font-weight: inherit;"> for building </span><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit;"><b>GUI apps</b></span><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit; font-weight: inherit;">.<br /></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">Additionally, </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>the Visual Studio IDE</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> provides </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>a powerful visual UI builder </b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">for Windows Forms, </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">where developers </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>design the user interface </b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">by dragging and dropping </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>UI controls</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">and configuring their properties and events. </span></p><p><span style="color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif; font-style: inherit; font-weight: inherit;">Windows Forms is an object-oriented framework. </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">Your app is a &#8220;</span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>form</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">&#8220;, which is</span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b> an object-oriented class</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">. </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">This class i</span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>nherits its functionality</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> and behavior from a base class from the framework. </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">Additional UI controls (such as labels, text boxes, and buttons) are added as </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>data fields </b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">in </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>the app class</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">. </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">The app </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>UI controls</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> are inserted into the tree of components, in the parent container.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c7a37ce elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c7a37ce" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d90dd77" data-id="d90dd77" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-16-Example-of-Desktop-App-Windows-Forms.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/desktop-app-with-windows-forms/">Desktop App with Windows Forms [Dev Concepts #16]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/desktop-app-with-windows-forms/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Libraries and Frameworks: What Is the Difference? [Dev Concepts #15]</title>
		<link>https://softuni.org/dev-concepts/libraries-frameworks-difference/</link>
					<comments>https://softuni.org/dev-concepts/libraries-frameworks-difference/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Fri, 03 Dec 2021 11:01:40 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9064</guid>

					<description><![CDATA[<p>Learn the difference between libraries and frameworks in this Dev Concepts lesson!</p>
<p>The post <a href="https://softuni.org/dev-concepts/libraries-frameworks-difference/">Libraries and Frameworks: What Is the Difference? [Dev Concepts #15]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9064" class="elementor elementor-9064" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this episode, we&#8217;ll be talking about <b>UI and component libraries </b>that provide <b>ready-to-use UI controls</b> and program components, and <b>software frameworks</b> that provide <b>a technical foundation</b> for developing certain types of apps. Both libraries and frameworks speed-up software development and are used every day by <b>millions of developers</b>, so you as a developer, should understand these concepts very well.</p><p> </p><p>In this session we will explain <b>the main difference between a library and a framework</b>, which in short is the following:</p><ul><li><b>Libraries extend your app </b>by plugging a <b>software component</b> in it. They use the traditional program flow.</li><li><b>Frameworks </b>are<b> foundations of functionality</b>, which developers <b>extend </b>to build an <b>app</b>. They use the &#8220;<b>inversion of control</b>&#8221; program flow.</li></ul><p>Finally, we will explain the concept of<b> &#8220;inversion of control&#8221; (IoC)</b> and its purpose in modern software development. Svetlin Nakov will give you an example of how <b>UI frameworks </b>take the program execution flow and <b>call your code</b> through events when <b>the user </b>interacts with <b>the user interface</b>. This is an <b>&#8220;inverted&#8221; program flow &#8211; IoC</b>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/www.youtube.com\/watch?v=S4FrwLd5sHQ&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2>
<div>
<div>In this video we review the following topics:</div>
<ul>
<li><b>User Interface and Front-end Frameworks</b></li>
<li><b>Libraries vs Frameworks</b></li>
<li><b>Inversion of Control (IoC)</b></li>
</ul>
</div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e259b02 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e259b02" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-069249e" data-id="069249e" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Dev-Concepts-Episode-15-Libraries-Frameworks-Difference.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/libraries-frameworks-difference/">Libraries and Frameworks: What Is the Difference? [Dev Concepts #15]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/libraries-frameworks-difference/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>[11/13] Java Foundations Certification: Exception Handling</title>
		<link>https://softuni.org/code-lessons/java-foundations-certification-exception-handling/</link>
					<comments>https://softuni.org/code-lessons/java-foundations-certification-exception-handling/#comments</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Thu, 02 Dec 2021 10:21:20 +0000</pubDate>
				<category><![CDATA[Code Lessons]]></category>
		<category><![CDATA[code lessons]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free Java tutorial]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[IntelliJ IDEA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java coding]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java Foundations]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[Java training]]></category>
		<category><![CDATA[Java videos]]></category>
		<category><![CDATA[java-tutorial]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9024</guid>

					<description><![CDATA[<p>Build a strong foundation of knowledge in Java programming! Learn all about handling exceptions in your code!</p>
<p>The post <a href="https://softuni.org/code-lessons/java-foundations-certification-exception-handling/">[11/13] Java Foundations Certification: Exception Handling</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9024" class="elementor elementor-9024" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In the current lesson, we take a close look at <b>exception handling </b>and<b> why it&#8217;s important</b> in software engineering.</p><p>What are exceptions? We&#8217;ve all seen one, there is no way to write completely bug-free code. In short<b> an exception is</b> <b>a problem that arises during the execution of the program</b>. </p><p>Exceptions <b>simplify code construction</b> and maintenance and allow problematic situations to be <b>processed at multiple levels</b>.</p><p>In Java <b>exceptions are objects</b>. The base for all exceptions is the <b>Throwable class</b> &#8211; it contains information about the <b>cause </b>of the exception, its <b>description</b>, and the <b>stack trace</b>.</p><p>There are<b> two types of exceptions</b> &#8211; <b>checked </b>(also known as compile-time exceptions), and <b>unchecked </b>(also known as runtime exceptions).</p><p>Exceptions can be handled by the <b>try-catch</b> construction. The <b>try-finally </b>block is also used, especially when we want to <b>ensure the execution of a given block</b> of code. </p><p>To <b>raise an exception</b>, we use the <b>throw </b>keyword. When an exception is thrown <b>the program execution stops</b>, and the<b> execution travels over the stack</b> until <b>a matching catch block </b>is reached to handle it. </p><p>In this lesson you will find many helpful <b>examples </b>and <b>exercises</b>, so make sure to <b>practice </b>what you&#8217;ve learned! That&#8217;s the only way to grasp the concept at hand.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/b6G85jwBdDM&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f4ccca0 elementor-widget elementor-widget-heading" data-id="f4ccca0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Topics</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<div><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text );">This video</span><strong style="font-style: inherit; color: var( --e-global-color-text );"> </strong><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text );">covers the following topics:</span></div><p><b style="font-style: inherit; color: var( --e-global-color-text );">1. What are Exceptions?</b></p><ul><li>The <b>Exception </b>class </li><li>Types of exceptions and their hierarchy</li></ul><div><p style="font-size: 15px; font-style: normal; font-weight: 400;"><span style="font-weight: bold;">2. Handling Exceptions</span></p><p style="font-size: 15px; font-style: normal; font-weight: 400;"><span style="font-weight: bold;">3. Raising (throwing) Exceptions</span></p><p style="font-size: 15px; font-style: normal; font-weight: 400;"><span style="font-weight: bold;">4. Best Practices</span></p><p style="font-size: 15px; font-style: normal; font-weight: 400;"><span style="font-weight: bold;">5. Creating Custom Exceptions</span></p></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-511d9f8 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="511d9f8" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-52d39a3" data-id="52d39a3" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1dee13b elementor-widget elementor-widget-template" data-id="1dee13b" data-element_type="widget" data-widget_type="template.default">
				<div class="elementor-widget-container">
							<div class="elementor-template">
					<div data-elementor-type="section" data-elementor-id="20669" class="elementor elementor-20669" data-elementor-post-type="elementor_library">
					<section class="elementor-section elementor-top-section elementor-element elementor-element-2753e750 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2753e750" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b04b054" data-id="b04b054" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-50498bde elementor-widget elementor-widget-heading" data-id="50498bde" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Practical Exercises</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6264b7a9 elementor-widget elementor-widget-text-editor" data-id="6264b7a9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong><span style="font-size: 16px; font-style: normal;">W</span></strong><span style="font-size: 16px; font-style: normal; font-weight: 700 !important;">atch the video</span><span style="font-size: 16px; font-style: normal; font-weight: 400;"> and </span><span style="font-size: 16px; font-style: normal; font-weight: 700 !important;">solve the problems</span><span style="font-size: 16px; font-style: normal; font-weight: 400;">. </span>To better understand the material, do the<strong> coding exercises</strong> and implement the knowledge you acquired. Writing code is the only way to master the <b>skill of code</b>.</p><p>Submit your code in the <b>SoftUni Judge System</b>:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-5a06f887 elementor-cta--layout-image-right elementor-cta--mobile-layout-image-above elementor-cta--skin-classic elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="5a06f887" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
							<a class="elementor-cta" href="https://judge.softuni.org/Contests/3294/Full-Java-Foundations-Course" target="_blank">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://softuni.org/wp-content/uploads/2021/10/softuni-judge-system.png);" role="img" aria-label="softuni-judge-system"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h3 class="elementor-cta__title elementor-cta__content-item elementor-content-item">
						Hands-on Exercises in the SoftUni Judge					</h3>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item">
						Submit your exercise code and check its correctness in the SoftUni Judge.					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item ">
					<span class="elementor-cta__button elementor-button elementor-size-md">
						Go To Judge					</span>
					</div>
							</div>
							<div class="elementor-ribbon elementor-ribbon-left">
				<div class="elementor-ribbon-inner">
					free				</div>
			</div>
				</a>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
				</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Exercises: Problem Description</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-9bf8627 elementor-widget elementor-widget-pdfjs_viewer" data-id="9bf8627" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Java-Foundations-Lesson-11-Exception-Handling-Exercises.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
				<div class="elementor-element elementor-element-7611016 elementor-widget elementor-widget-heading" data-id="7611016" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/12/Java-Foundations-Lesson-11-Exception-Handling.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/code-lessons/java-foundations-certification-exception-handling/">[11/13] Java Foundations Certification: Exception Handling</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/code-lessons/java-foundations-certification-exception-handling/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>What Is Routing? [Dev Concepts #14]</title>
		<link>https://softuni.org/dev-concepts/what-is-routing/</link>
					<comments>https://softuni.org/dev-concepts/what-is-routing/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Wed, 01 Dec 2021 11:15:00 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=9002</guid>

					<description><![CDATA[<p>Learn all about routing in this Dev Concepts lesson!</p>
<p>The post <a href="https://softuni.org/dev-concepts/what-is-routing/">What Is Routing? [Dev Concepts #14]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9002" class="elementor elementor-9002" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this video you will become familiar with the topic of &#8220;<b>routing</b>&#8220;, used for navigation in <b>modern app development</b>. In short, <b>routing </b>is the technology used t<b>o switch between different UI views </b>(different app screens), based on changes of the current <b>URL </b>in the navigation bar. Routing is typically implemented through <b>a routing library</b>.</p><p>In this lesson, we will see <b>how routing works</b> in<b> front-end apps</b>. We will show you <b>a sample routing library</b>, which changes the view on the <b>front-end</b>, when the browser navigates to certain <b>URL</b>. Finally, we will demonstrate the concept of <b>routing </b>with a live coding example in <b>JavaScript</b>, so that we see how everything is done.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-290add8 elementor-widget elementor-widget-heading" data-id="290add8" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">So, what is routing and why do we use it?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-2c75e0e elementor-widget elementor-widget-text-editor" data-id="2c75e0e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">In </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">front-end</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> apps, </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">routing </b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">is a technology for </span><b style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">switching between different UI views</b><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">, </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">based on the changes of </span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>the current URL</b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"> (holding the route).</span></p><p>In <b>back-end</b> apps, routing is a technology for switching between <b>different server-side endpoints</b>, <span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">based on the changes of the </span><span style="font-style: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;"><b>requested URL </b></span><span style="font-style: inherit; font-weight: inherit; color: var( --e-global-color-text ); font-family: var( --e-global-typography-text-font-family ), Sans-serif;">(holding the route).</span></p><p>Many front-end and back-end frameworks <b>internally implement routing</b> and invoke different functionality based on the URL and its components.</p><p>Routing libraries <b>switch the view by URL</b> like shown below.</p><ul><li>This is the &#8220;home&#8221; <b>URL: /</b></li><li>This is the &#8220;about&#8221; <b>URL: /about</b></li><li>This is the &#8220;contact&#8221; <b>URL: /contact</b></li></ul><p>Different <b>routes </b>in the URL switch to different <b>views</b>.</p><p>This is briefly the concept of <b>routing </b>in <b>Web apps</b>.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/youtu.be\/MqJa9__LwfU&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-5adcf3b elementor-widget elementor-widget-heading" data-id="5adcf3b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Topics</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2><span style="font-size: 16px;">In this video we review the following topics:</span></h2><div><ul><li><b>Overview of Routing and Routing Libraries</b></li><li><b>Live Demo &#8211; Navigation with Routing Library</b></li></ul></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-e96ab45 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e96ab45" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-97efdc9" data-id="97efdc9" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/11/Dev-Concepts-Episode-14-What-is-Routing.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 800px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/what-is-routing/">What Is Routing? [Dev Concepts #14]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/what-is-routing/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>What Is Templating Engine? [Dev Concepts #13]</title>
		<link>https://softuni.org/dev-concepts/what-is-templating-engine/</link>
					<comments>https://softuni.org/dev-concepts/what-is-templating-engine/#respond</comments>
		
		<dc:creator><![CDATA[Sanya Kasarova]]></dc:creator>
		<pubDate>Tue, 30 Nov 2021 09:39:00 +0000</pubDate>
				<category><![CDATA[Dev Concepts]]></category>
		<category><![CDATA[dev-concepts]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[essential]]></category>
		<category><![CDATA[exercises]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free lessons]]></category>
		<category><![CDATA[Java course]]></category>
		<category><![CDATA[Java programming]]></category>
		<category><![CDATA[nakov]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[skills]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[video course]]></category>
		<guid isPermaLink="false">https://softuni.org/?p=8980</guid>

					<description><![CDATA[<p>Learn all about templating engine in this Dev Concepts lesson!</p>
<p>The post <a href="https://softuni.org/dev-concepts/what-is-templating-engine/">What Is Templating Engine? [Dev Concepts #13]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="8980" class="elementor elementor-8980" data-elementor-post-type="post">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-5d5405e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5d5405e" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0d32134" data-id="0d32134" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-9216798 elementor-widget elementor-widget-text-editor" data-id="9216798" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In this lesson, you will become familiar with the concept of &#8220;<b>templating engines</b>&#8220;, which render input data into output document (like <b>HTML</b>) through a template. We will explain how templates combine markup code with programming constructs to visualize data in a target output format.</p><p> </p><p>Along with the slides, at the end of the lesson, we have included a live code example, so you can see how we can render an <b>HTML-based UI</b> with a templating engine. We will use a <b>JSON </b>dataset and the Handlebars templating engine in JavaScript to render the dataset as <b>HTML </b>document.</p><p> </p><div><div>Templating engines <b>render data as HTML </b>or <b>other format</b> through a <b>template</b>.</div><div>This is very <b>useful</b>, when you want to <b>visualize data</b>, which comes from <b>the server-side </b>or from a <b>database</b>.</div><div>The template is written in some templating language like <b>Razor</b>, <b>Handlebars </b>or <b>Pug</b>.</div><div>Typically, templates combine <b>HTML </b>with <b>special tags</b>.</div><div>Templates can render <b>variables</b>, <b>iterate over a collection </b>and<b> perform conditional checks.</b></div><div>You will <b>definitely use templating</b> <b>engines </b>in some form, if you work with <b>data </b>and <b>visualization</b>.</div></div>								</div>
				</div>
				<div class="elementor-element elementor-element-88292b4 elementor-widget elementor-widget-video" data-id="88292b4" data-element_type="widget" data-settings="{&quot;youtube_url&quot;:&quot;https:\/\/www.youtube.com\/watch?v=AkJtYYL0ww0&amp;ab_channel=CodewithNakov&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}" data-widget_type="video.default">
				<div class="elementor-widget-container">
							<div class="elementor-wrapper elementor-open-inline">
			<div class="elementor-video"></div>		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-edfdd22 elementor-widget elementor-widget-text-editor" data-id="edfdd22" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>Lesson Topics</h2><div><div>In this video we review the following topics:</div><ul><li><b>Overview of Templating Engines</b></li><li><b>Live Demo &#8211; Rendering UI with a Templating Engine</b></li></ul></div>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-0a3df10 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0a3df10" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0c6f107" data-id="0c6f107" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a0aff0b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a0aff0b" data-element_type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-48c6c18" data-id="48c6c18" data-element_type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f972417 elementor-widget elementor-widget-heading" data-id="f972417" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Lesson Slides</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-37e6760 elementor-widget elementor-widget-pdfjs_viewer" data-id="37e6760" data-element_type="widget" data-widget_type="pdfjs_viewer.default">
				<div class="elementor-widget-container">
					<iframe src="https://softuni.org/wp-content/plugins/pdf-viewer-for-elementor/assets/pdfjs/web/viewer.html?file=https://softuni.org/wp-content/uploads/2021/11/Dev-Concepts-Episode-13-What-is-Templating-Engine.pdf&amp;embedded=true" style="display: block; margin-left: auto; margin-right: auto; width: 100%; height: 1020px;" frameborder="1" marginheight="0px" marginwidth="0px" allowfullscreen></iframe>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softuni.org/dev-concepts/what-is-templating-engine/">What Is Templating Engine? [Dev Concepts #13]</a> appeared first on <a href="https://softuni.org">SoftUni Global</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softuni.org/dev-concepts/what-is-templating-engine/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: softuni.org @ 2026-07-13 08:01:01 by W3 Total Cache
-->