<?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>UFSM - Feed Customizado RSS</title>
			<atom:link href="https://www.ufsm.br/busca?rss=true&#038;tags=mobile" rel="self" type="application/rss+xml" />
			<link>https://www.ufsm.br</link>
			<description>Universidade Federal de Santa Maria</description>
			<lastBuildDate>Fri, 24 Jul 2026 21:45:19 +0000</lastBuildDate>
			<language>pt-BR</language>
			<sy:updatePeriod>hourly</sy:updatePeriod>
			<sy:updateFrequency>1</sy:updateFrequency>
			<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>/app/themes/ufsm/images/icons/favicon.ico</url>
	<title>UFSM</title>
	<link>https://www.ufsm.br</link>
	<width>32</width>
	<height>32</height>
</image> 
						<item>
				<title>Bibliotecas Flutter</title>
				<link>https://www.ufsm.br/pet/sistemas-de-informacao/2022/05/02/bibliotecas-flutter</link>
				<pubDate>Mon, 02 May 2022 20:18:36 +0000</pubDate>
						<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Redações]]></category>
		<category><![CDATA[Mobile]]></category>

				<guid isPermaLink="false">https://www.ufsm.br/pet/sistemas-de-informacao/?p=3283</guid>
						<description><![CDATA[Olá pessoal! Nesta edição do PET-Redação iremos fazer uma breve introdução a algumas bibliotecas importantes que irão ajudá-los em seus desenvolvimentos que utilizam o framework Flutter, apresentando alguns de seus recursos e usos. Se você não conhece esta tecnologia, através deste link é possível acessar o PET Redação que introduz o framework, e explica o processo de [&hellip;]]]></description>
							<content:encoded><![CDATA[  <p><!-- wp:tadv/classic-paragraph --></p>
<p style="color: #000000;font-size: 16px">Olá pessoal! Nesta edição do PET-Redação iremos fazer uma breve introdução a algumas bibliotecas importantes que irão ajudá-los em seus desenvolvimentos que utilizam o framework Flutter, apresentando alguns de seus recursos e usos.</p>
<p style="color: #000000;font-size: 16px">Se você não conhece esta tecnologia, através deste <a href="https://www.ufsm.br/pet/sistemas-de-informacao/2018/09/18/flutter-o-futuro-de-aplicacoes-desktop-mobile-e-web)">link</a> é possível acessar o PET Redação que introduz o framework, e explica o processo de instalação. </p>
<p style="color: #000000;font-size: 16px"> </p>
<p style="color: #000000;font-size: 16px;text-align: center">fl_chart</p>
<p style="color: #000000;font-size: 16px">FL Chart é uma biblioteca utilizada para gerar gráficos customizáveis. Seu uso é simples e permite a criação de diversos tipos de gráficos, tais como Line Chart, Bar Chart, Pie Chart, Scatter Chart, e Radar Chart.  No repositório da biblioteca no github, estão disponíveis diversos tipos de gráficos flexíveis para estilização e configuração. </p>
<p style="color: #000000;font-size: 16px"> </p>
<p style="color: #000000;font-size: 16px">Vamos para a prática! Através do <i><a href="https://pub.dev/packages/fl_chart/install">link</a></i> é possível acessar </p>
<p style="color: #000000;font-size: 16px">a documentação da biblioteca para adicionar o fl_chart ao seu projeto.</p>
<p style="color: #000000;font-size: 16px">Após ter seguido as instruções anteriores, será possível utilizar todos os gráficos da biblioteca no seu projeto. Neste exemplo, vamos gerar um Pie Chart como o da imagem abaixo:</p>
<p style="color: #000000;font-size: 16px"><img src="https://www.ufsm.br/app/uploads/sites/791/2022/05/gif-1-299x234.gif" alt="" width="299" height="234" />                                                                                     </p>
<p style="color: #000000;font-size: 16px"><code>PieChart(</code></p>
<p style="color: #000000;font-size: 16px"><code>  PieChartData(</code></p>
<p style="color: #000000;font-size: 16px"><code>    // read about it in the PieChartData section</code></p>
<p style="color: #000000;font-size: 16px"><code>  ),</code></p>
<p style="color: #000000;font-size: 16px"><code>  swapAnimationDuration: Duration(milliseconds: 150), // animacao opcional</code></p>
<p style="color: #000000;font-size: 16px"><code>  swapAnimationCurve: Curves.linear, // animacao opcional</code></p>
<p style="color: #000000;font-size: 16px"><code>);</code></p>
<p style="color: #000000;font-size: 16px">Esta é a estrutura básica do Pie Chart, o código completo é possível acessar através do <i><a href="https://github.com/imaNNeoFighT/fl_chart/blob/master/example/lib/pie_chart/samples/pie_chart_sample1.dart">GitHub</a>.</i> </p>
<p style="color: #000000;font-size: 16px"> </p>
<p style="color: #000000;font-size: 16px;text-align: center">flutter_native_splash</p>
<p style="color: #000000;font-size: 16px">Ao abrir um aplicativo, por padrão a tela fica branca até ele ser carregado. O flutter_native_splash possibilita que você personalize a tela que é mostrada durante o carregamento, sendo possível utilizar modo escuro, tela inteira e opções específicas da plataforma. </p>
<p style="color: #000000;font-size: 16px"><img src="https://www.ufsm.br/app/uploads/sites/791/2022/05/gif-2-169x300.gif" alt="" width="169" height="300" />  </p>
<p>A documentação, desde instalação e uso, pode ser acessada através do seguinte <a href="https://pub.dev/packages/flutter_native_splash">link</a>.</p>
<p> </p>
<p style="text-align: center"><b>Animations</b></p>
<p>Esta biblioteca contém animações pré-construídas e altamente customizáveis, podendo adicioná-las em seu projeto, deixando assim mais estilizado. Dentre as diversas funcionalidades, destacam-se: </p>
<h3>Container transform:<img src="https://www.ufsm.br/app/uploads/sites/791/2022/05/gif-3-300x139.gif" alt="" width="300" height="139" /></h3>
<h3>Fade through: <img src="https://www.ufsm.br/app/uploads/sites/791/2022/05/gif-4-300x158.gif" alt="" width="300" height="158" /></h3>
<p>A documentação, desde instalação e uso, pode ser acessada através do seguinte link (https://pub.dev/packages/animations).</p>
<p> </p>
<h3 style="text-align: center"><b>cached_network_image</b></h3>
<p>Esta biblioteca possibilita que imagens da internet fiquem salvas em Cache. Ou seja, mesmo que o usuário não tenha conexão com a internet, terá acesso a imagem, pois ela já foi acessada anteriormente e ficou salva. </p>
<p> </p>
<p>A documentação, desde instalação e uso, pode ser acessada através do seguinte <a href="https://pub.dev/packages/cached_network_image">link</a>.</p>
<h3 style="text-align: center"><b> intro_slider</b></h3>
<p>O Flutter Intro Slider permite o desenvolvimento de intros para seu app, de maneira simples e intuitiva é possível criar uma introdução de maneira rápida.</p>
<p><img src="https://www.ufsm.br/app/uploads/sites/791/2022/05/gif-5-169x300.gif" alt="" width="169" height="300" /></p>
<p>A documentação, desde instalação e uso, pode ser acessada através do seguinte <a href="https://pub.dev/packages/intro_slider">link</a>.</p>
<p> </p>
<p>Fontes: </p>
<p><a href="https://pub.dev/packages/fl_chart/install"><i>https://pub.dev/packages/fl_chart/install</i></a><i> </i></p>
<p><a href="https://pub.dev/packages/flutter_native_splash">https://pub.dev/packages/flutter_native_splash</a></p>
<p><a href="https://pub.dev/packages/animations">https://pub.dev/packages/animations</a> </p>
<p><a href="https://pub.dev/packages/cached_network_image">https://pub.dev/packages/cached_network_image</a> </p>
<p><a href="https://pub.dev/packages/intro_slider">https://pub.dev/packages/intro_slide</a></p>
<p><!-- /wp:tadv/classic-paragraph --></p>]]></content:encoded>
													</item>
						<item>
				<title>Desenvolvimento de aplicativos utilizando SWIFT</title>
				<link>https://www.ufsm.br/pet/sistemas-de-informacao/2020/07/28/desenvolvimento-de-aplicativos-utilizando-swift</link>
				<pubDate>Tue, 28 Jul 2020 18:32:00 +0000</pubDate>
						<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Redações]]></category>
		<category><![CDATA[Mobile]]></category>

				<guid isPermaLink="false">https://www.ufsm.br/pet/sistemas-de-informacao/?p=2702</guid>
						<description><![CDATA[Olá pessoal, tudo bem? Desta vez o PET-Redação abordará a linguagem Swift. Swift é uma linguagem de programação criada pela Apple para o desenvolvimento de aplicativos para Apple TV, Apple Watch, iOS e Mac que foi desenvolvida com o intuito de ser de fácil uso, com código aberto a todos que queiram cooperar. Em comparação [&hellip;]]]></description>
							<content:encoded><![CDATA[  <!-- wp:tadv/classic-paragraph -->
<section id="h.29b0ae76f7c89a52_19" class="yaqOZd">
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc yYI8W ">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c">
<div id="h.29b0ae76f7c89a52_10" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Olá pessoal, tudo bem? Desta vez o PET-Redação abordará a linguagem Swift. Swift é uma linguagem de programação criada pela Apple para o desenvolvimento de aplicativos para Apple TV, Apple Watch, iOS e Mac que foi desenvolvida com o intuito de ser de fácil uso, com código aberto a todos que queiram cooperar. Em comparação com outras linguagens como Objetive-C e Python 2.7, a linguagem Swift obteve um desempenho relevante em testes,foi utilizado o algoritmo de busca em profundidade (DFS) com 10000 números inteiros, tendo como resultado 2,6 e 8,4 vezes mais rápida que essas linguagens, respectivamente. Usuários de Linux e Mac podem desfrutar de todos os recursos que esta linguagem pode oferecer. Que tal desenvolvermos um joguinho simples para iOS e vermos o quão interessante é o Swift? Iremos desenvolver um Jokenpô ou Pedra, Papel ou Tesoura!</p>
<p class="zfr3Q" dir="ltr">Para isso vamos utilizar a IDE Xcode 11. Abrimos o Xcode e criamos um novo projeto Xcode:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_23" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_20" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2901 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift1-300x180.png" alt="" width="620" height="372" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_27" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_24" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Ao clicar em criar um novo projeto vamos precisar escolher o tipo de projeto a ser desenvolvido, onde escolhemos um aplicativo para iOS de visualização simples e passamos para a próxima configuração:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_31" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_28" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2902 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift2-300x196.png" alt="" width="626" height="409" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_35" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_32" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Devemos colocar um nome para o projeto, selecionar a linguagem de programação (no nosso caso Swift) e a interface de usuário como storyboard, e escolhemos, então, um diretório para salvar o projeto.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_39" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_36" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2903 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift3-300x201.png" alt="" width="612" height="410" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_43" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_40" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Aparecerá o projeto criado e a seguinte tela:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_47" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_44" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2904 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift4-300x170.png" alt="" width="589" height="334" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_51" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_48" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Agora vamos criar um novo arquivo clicando no nome do projeto e, em novo arquivo, escolhemos um nome (no nosso caso estadoJogo do tipo Swift). Neste arquivo iremos colocar os estados possíveis do jogo - início, derrota, empate e vitória - através de uma enumeração (enum em Swift), utilizando o case para os casos possíveis do estado do jogo. A imagem abaixo mostra como ficará nosso arquivo estadoJogo.swift .</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_55" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_52" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2905 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift5-300x95.png" alt="" width="682" height="216" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_59" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_56" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Criamos então, outro arquivo, com o nome Sinais do tipo Swift. Vamos incluir a biblioteca GameplayKit, que engloba uma função que iremos utilizar: a de randomizar. Para isso, utilizamos import e o nome da biblioteca. Vamos criar uma constante que será denominada escolha_aleatoria e fazemos a randomização de 0 a 2 representando as 3 possibilidades de jogada do computador. Para isso utilizamos a função da biblioteca GameplayKit GKRandomDistribution(lowestValue: 0, highestValue: 2). Criamos então a função chamada sinal_aleatorio para especificar qual foi o sinal sorteado pela função acima. Com essa finalidade, cria-se a constante sinal e utilizamos a função com o intervalo que foi criada (escolha_aleatoria), junto com a função para ser feito a randomização nesse intervalo definido (nextInt). Fazemos a seleção: se o número aleatório for igual a 0, será pedra, se igual a 1 será papel e se igual a 2 será tesoura.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_63" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_60" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2906 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift6-300x225.png" alt="" width="471" height="353" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_67" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_64" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Vamos criar outra enumeração para os possíveis sinais do jogo - pedra, papel ou tesoura. Para isso, vamos utilizar o case. Criamos uma variável do tipo String para os emojis que serão utilizados e será utilizado um switch (switch self no Swift) com as três possibilidades: pedra, papel ou tesoura e os respectivos emojis para representá-los.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_71" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_68" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2907 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift7-300x82.jpg" alt="" width="596" height="163" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_75" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_72" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Devemos criar, também, uma função para verificar se o jogador vai ganhar, perder ou se vai empatar com o computador. Para isso, utilizamos um switch case (switch self no Swift) e para cada uma das três possibilidades, pode-se ter vitória, perda ou empate.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_79" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_76" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2908 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift8-300x186.png" alt="" width="563" height="349" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_83" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_80" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">A parte de jogabilidade está pronta. Vamos agora no arquivo Main.storyboard para a criação da parte visual do aplicativo. Clicamos em View Controller e depois em + para adicionar os elementos a tela.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_87" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_84" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2909 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift9-300x183.png" alt="" width="562" height="343" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_91" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_88" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Para o joguinho vamos necessitar dos rótulos (Label), que são basicamente textos, e dos botões (Button). Adicionamos então conforme a imagem abaixo. Para alterar um rótulo ou botão, mudamos o texto nas configurações de cada elemento. Nossa interface deve ficar mais ou menos assim:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_95" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_92" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2910 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift10-300x264.png" alt="" width="491" height="432" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_99" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_96" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Agora estamos na etapa final, e temos que resolver as interações da tela com a jogabilidade. Para isso, vamos abrir o arquivo ViewController.swift e deixar ao lado do arquivo Main.storyboard. Vamos clicar com o botão direito em cada um dos botões e arrastar até o arquivo ViewController, dentro da classe ViewController. A seguir, será requisitado o nome do rótulo/botão que desejarmos. Após realizar a ação com todos, teremos a seguinte situação:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_103" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_100" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2911 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift11-300x226.png" alt="" width="519" height="391" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_107" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_104" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Criamos uma variável (var em Swift) para receber o atual estado do jogo (início) e ter um controle. Utilizamos a seguinte sintaxe: <strong>var</strong> atualEstado: estadoJogo = estadoJogo.inicio . Devemos criar uma função para resetar o display para seu estado inicial, onde alguns elementos devem estar desabilitados/escondidos e outros não. Fazemos isso utilizando o nome do elemento e as propriedades isHidden (true se o elemento deve estar escondido, false para o contrário) e isEnabled (true se o elemento deve estar desabilitado, false para o contrário):</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_111" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_108" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2912 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift12-300x115.png" alt="" width="532" height="204" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_115" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_112" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Agora devemos criar a função do jogo, e para isso colocamos os botões das três possibilidades como não habilitados, criamos uma constante para receber um sinal aleatório (representando a jogada do computador), e a label do robô então receberá o emoji atualizado conforme a jogada que foi randomizado o que representa o computador, o estado então é atualizado conforme é verificado a situação da partida através da verificação das jogadas. Criamos, então, um switch para verificar o atual estado do jogo e atualizar o rótulo - se houve uma derrota, empate, vitória ou se será iniciada uma nova partida. Teremos o seguinte código:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_123" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_120" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2913 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift13-300x200.png" alt="" width="529" height="352" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_127" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_124" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Agora vamos atualizar a tela conforme o que o jogador escolheu para deixar apenas a sua escolha:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_131" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_128" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2914 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift14-300x180.png" alt="" width="515" height="309" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_135" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_132" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Para finalizar, escolhemos as ações que ocorrerão quando os botões forem clicados, para isso clicamos com o botão direito do mouse e arrastamos até a classe ViewController, da mesma forma que foi feito anteriormente, mas dessa vez representará uma ação que deve conter um nome. Ficará assim:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_139" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_136" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2915 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift15-300x89.png" alt="" width="543" height="161" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_143" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_140" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Adicionamos então, as funções que ocorrerão cada vez que um desses botões for clicado:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_147" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-OiUrBf purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_144" class="hJDwNd-AhqUyc-OiUrBf jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="wp-image-2916 aligncenter" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift16-300x127.png" alt="" width="524" height="222" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-ibL1re JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_151" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_148" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Nosso jogo está pronto, para testá-lo clicamos no botão de executar, então o simulador e o aplicativo serão iniciados.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_163" class="yaqOZd">
<div class="yaqOZd IFuOkc"><img class="wp-image-2917 alignleft" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift17-148x300.png" alt="" width="234" height="474" /> <img class="wp-image-2918 alignleft" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift18-149x300.png" alt="" width="239" height="482" /> <img class="wp-image-2919 alignleft" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/swift19-148x300.png" alt="" width="236" height="478" /></div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_152" class="hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_156" class="hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_160" class="hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.29b0ae76f7c89a52_167" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_164" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p dir="ltr"> </p>
</div>
</div>
</div>
</div>
</div>
</div>
<p dir="ltr"> </p>
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.29b0ae76f7c89a52_164" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p dir="ltr"> </p>
<p class="zfr3Q" dir="ltr">Agora resta nos divertir e aproveitar o jogo simples e rápido de desenvolver que fizemos. Conseguimos entender melhor como funciona e como desenvolver um aplicativo utilizando essa incrível linguagem, boas criações! =)</p>
<p class="zfr3Q" dir="ltr"><strong>Referências</strong>:</p>
<ul class="n8H08c UVNKR">
<li class="TYR86d zfr3Q">
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://www.google.com/url?q=https%3A%2F%2Fwww.apple.com%2Fbr%2Fswift%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFYLs3dM4SLj-xAVJJ9gWLF5p0XLQ" target="_blank" rel="noopener noreferrer">Apple</a></span></p>
</li>
<li class="TYR86d zfr3Q">
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://www.google.com/url?q=https%3A%2F%2Fswift.org&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEp4fFFTX7zQrCFTNb4QjfW-GDKPg" target="_blank" rel="noopener noreferrer">Swift</a></span></p>
</li>
</ul>
<p dir="ltr"> </p>
<p class="zfr3Q" dir="ltr" style="text-align: right">Rafael Trindade</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- /wp:tadv/classic-paragraph -->]]></content:encoded>
													</item>
						<item>
				<title>FLUTTER: O futuro de aplicações desktop, mobile e web?</title>
				<link>https://www.ufsm.br/pet/sistemas-de-informacao/2018/09/18/flutter-o-futuro-de-aplicacoes-desktop-mobile-e-web</link>
				<pubDate>Tue, 18 Sep 2018 17:18:00 +0000</pubDate>
						<category><![CDATA[Destaques]]></category>
		<category><![CDATA[Redações]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Mobile]]></category>

				<guid isPermaLink="false">https://www.ufsm.br/pet/sistemas-de-informacao/?p=2669</guid>
						<description><![CDATA[Olá pessoal, o PET-Redação de hoje vai abordar sobre uma tecnologia promissora da Google, o Flutter. É um SDK open-source com o objetivo de construir aplicações mobile, web e desktop a partir de um único código(multiplataforma). Dessa forma, permite um rápido desenvolvimento aliado a uma expressiva e flexível UI. Além disso, o desempenho é nativo [&hellip;]]]></description>
							<content:encoded><![CDATA[  <!-- wp:tadv/classic-paragraph -->
<section id="h.3dc1e70853ba83db_12" class="yaqOZd">
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_9" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Olá pessoal, o PET-Redação de hoje vai abordar sobre uma tecnologia promissora da Google, o Flutter. É um SDK open-source com o objetivo de construir aplicações mobile, web e desktop a partir de um único código(multiplataforma). Dessa forma, permite um rápido desenvolvimento aliado a uma expressiva e flexível UI. Além disso, o desempenho é nativo tanto para Android quanto para iOS, o que permite que apps fluam mais rápido trazendo ótimos benefícios a aplicação. É programado em Dart, uma linguaguem da Google, parecida com Java, e compilada em código de máquina. Tudo no Flutter são widgets e esses widgets formam uma árvore com hierarquia pai e filho, dessa forma se torna mais fácil de fazer as criações pois há muitas opções de widgets disponíveis, ao contrário do React Native, tecnologia do Facebook que utiliza JavaScript onde widgets são chamados de componentes onde estes não apresentam tanta complexidade, sendo necessário a criação dos mesmos. Além disso, o Flutter apresenta melhor desempenho em comparação com o React Native já que na tecnologia do Facebook é feito uma ponte entre o código nativo e o Javascript. Uma curiosidade muito interessante é de que a Google está desenvolvendo um novo sistema operacional, chamado de Fuchsia, para substituir o grandioso Android utilizando Flutter, já que a performance será muito melhor que o atual SO da empresa. Grandes organizações estão adotanto a nova tecnologia da Google diante das vantagens de a utilizá-la. Um grande exemplo é a Nubank, fintech brasileira que está mudando o cenário de bancos no país, estar alterando suas aplicações para o Flutter. Diante disso, não surgem dúvidas de que o Flutter tem muito a evoluir e crescer no mercado. Que tal instala-lo e dar os primeiros passos</p>
<p class="zfr3Q" dir="ltr">Primeiro <span class=" aw5Odc"><a class="XqQF9c" href="https://flutter.dev/docs/get-started/install" target="_blank" rel="noopener noreferrer">clique aqui</a></span> e instale o Flutter e o Android Studio conforme os passos.</p>
<p class="zfr3Q" dir="ltr">Após a instalação abra o terminal e digite: <em>flutter doctor</em> e aparecerá a seguinte tela, significando que o Flutter está instalado e o Android Studio também.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_16" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class="" style="text-align: center"> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_13" class="hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3013 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter1.png" alt="" width="735" height="315" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_20" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_17" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Agora abra o Android Studio e vamos configura-lo clicando em Configure e em Plugins</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_24" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_21" class="hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3014 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter2.png" alt="" width="777" height="478" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_28" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_25" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Após isso, procure pelos plugins do Dart e do Flutter o os instale.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_32" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_29" class="hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3015 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter3.png" alt="" width="797" height="252" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_36" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_33" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Vamos criar um projeto, para isso clique em Start a new Flutter project e em Flutter Application, escolha um nome para o projeto e selecione o PATH do Flutter, bem como a localização desejada do projeto:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_40" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-qWD73c purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_37" class="hJDwNd-AhqUyc-qWD73c jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3016 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter4.png" alt="" width="800" height="555" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-c5RTEf JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_44" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_41" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Após isso aparecerá uma tela com configurações de nome de domínio, deixe assim ou coloque qualquer nome e então clique em Next.</p>
<p class="zfr3Q" dir="ltr">O projeto será criado e aparecerá a seguinte tela:</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_48" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-EehZO purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_45" class="hJDwNd-AhqUyc-EehZO jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3017 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter5-e1601502279749.jpg" alt="" width="761" height="394" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-R6PoUb JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_52" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_49" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">Clique na imagem do smartphone e selecione um emulador(caso não tenha um , crie um), após isso clique no botão play para executar a aplicação exemplo.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_56" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-II5mzb JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
<div class="hJDwNd-AhqUyc-II5mzb purZT-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_53" class="hJDwNd-AhqUyc-II5mzb pSzOP-AhqUyc-II5mzb jXK9ad D2fZ2 OjCsFc wHaque">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd baZpAe">
<div class="t3iYD"><img class="aligncenter wp-image-3018 size-full" src="https://www.ufsm.br/app/uploads/sites/791/2020/09/flutter6.png" alt="" width="383" height="691" /></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="hJDwNd-AhqUyc-II5mzb JNdkSc L6cTce-purZT L6cTce-pSzOP">
<div class="JNdkSc-SmKAyb">
<div class=""> </div>
</div>
</div>
</div>
</div>
</section>
<section id="h.3dc1e70853ba83db_60" class="yaqOZd">
<div class="yaqOZd IFuOkc"> </div>
<div class="mYVXT">
<div class="LS81yb VICjCf">
<div class="hJDwNd-AhqUyc-uQSCkd purZT-AhqUyc-II5mzb pSzOP-AhqUyc-qWD73c JNdkSc">
<div class="JNdkSc-SmKAyb">
<div class="">
<div class="oKdM2c Kzv0Me">
<div id="h.3dc1e70853ba83db_57" class="hJDwNd-AhqUyc-uQSCkd jXK9ad D2fZ2 OjCsFc wHaque GNzUNc">
<div class="jXK9ad-SmKAyb">
<div class="tyJCtd mGzaTb baZpAe">
<p class="zfr3Q" dir="ltr">A aplicação exemplo vai ser emulada e podemos ver que o modelo possui um botão + que realizará incremento de quantas vezes o usuário clicou nesse botão. Espero que tenha gostado e boas criações!</p>
<p dir="ltr"> </p>
<p class="zfr3Q" dir="ltr">Referências:</p>
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://flutter.dev/" target="_blank" rel="noopener noreferrer">https://flutter.dev/</a></span></p>
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://www.google.com/url?q=https%3A%2F%2Fwww.zup.com.br%2Fblog%2Fflutter&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNFBewM2Rm5QiqiWfqj06gyGLWOiiw" target="_blank" rel="noopener noreferrer">https://www.zup.com.br/blog/flutter</a></span></p>
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://www.google.com/url?q=https%3A%2F%2Ftableless.com.br%2Fflutter-porque-investir-nessa-tecnologia%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNGR0TvhIYSgipst-3JwLLoTuR24NQ" target="_blank" rel="noopener noreferrer">https://tableless.com.br/flutter-porque-investir-nessa-tecnologia/</a></span></p>
<p class="zfr3Q" dir="ltr"><span class=" aw5Odc"><a class="XqQF9c" href="https://www.google.com/url?q=https%3A%2F%2Fwww.pipelinelab.com.br%2Fflutter-nubank-vai-migrar-ou-esta-migrando-para-o-flutter%2F&amp;sa=D&amp;sntz=1&amp;usg=AFQjCNEJoKtM_vtoMcIt11zrkbCHlOuGsg" target="_blank" rel="noopener noreferrer">https://www.pipelinelab.com.br/flutter-nubank-vai-migrar-ou-esta-migrando-para-o-flutter/</a></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- /wp:tadv/classic-paragraph -->]]></content:encoded>
													</item>
					</channel>
        </rss>
        