<?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>#JustCode &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/justcode/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Thu, 17 Jul 2025 15:03:33 +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>
	<item>
		<title>Year of Code 2025: Kickoff</title>
		<link>https://blog.xojo.com/2025/01/09/year-of-code-2025-kickoff/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 09 Jan 2025 16:30:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Year of Code]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[#YearofCode]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Educational]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=14122</guid>

					<description><![CDATA[Xojo is kicking off 2025 with something for everyone in the Xojo community, an event that will help new users grow their Xojo coding skills&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Xojo is kicking off 2025 with something for everyone in the Xojo community, an event that will help new users grow their Xojo coding skills and existing users polish theirs. Back in 2018, we did a &#8220;<a href="https://blog.xojo.com/2018/06/18/jump-right-in-just-code-challenge/" target="_blank" rel="noreferrer noopener">Summer of Code</a>&#8221; contest that challenged people to create one project a week through the summer. This was a lot of fun and many interesting apps were made that summer. For 2025, we have expanded that idea out to the entire year! However, instead of one app a week, we will make one app a month from January to November 2025. In December we will give away a grand prize!</p>



<h3 class="wp-block-heading">The Idea </h3>



<p>Early each month we will share a blog post that introduces an app &#8220;theme&#8221; and recaps the prior month. A week or so later, we will create a Forum topic and post an example project created by one of the Xojo team. To participate in the Year of Code, make a Xojo project that that demonstrates the theme in some way, share it on GitHub to make it easily accessible to everyone and then add a post about it (with your GitHub link) to the Forum topic.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>If you have not used GitHub before, here is a <a href="https://blog.xojo.com/2024/04/02/using-xojo-and-github/" target="_blank" rel="noreferrer noopener">blog post on how to share a Xojo project on GitHub</a>.</p>
</blockquote>



<p>Ideally, these will be small, focused apps that can be made in a few days. The idea is to have fun creating something that others might learn from. But I guarantee you&#8217;ll learn something as well. After all, the best way to get better at coding is to always be coding.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1024" height="640" src="https://blog.xojo.com/wp-content/uploads/2025/01/image-1.png" alt="" class="wp-image-14306" srcset="https://blog.xojo.com/wp-content/uploads/2025/01/image-1.png 1024w, https://blog.xojo.com/wp-content/uploads/2025/01/image-1-300x188.png 300w, https://blog.xojo.com/wp-content/uploads/2025/01/image-1-768x480.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading" id="participate">How To Participate</h3>



<p>Each month Xojo will announce a new theme and share an example project. Share your own projects in the Xojo Forum thread for that month via GitHub, preferably. Projects with code shared at other sites can be eligible as long as the code is accessible to everyone. Learn how to use&nbsp;<a href="https://blog.xojo.com/2024/04/02/using-xojo-and-github/">Xojo and GitHub</a>.</p>



<h3 class="wp-block-heading" id="prizes">The Prizes</h3>



<p>And yes, there will be prizes for those that participate. Each month all participants (everyone who shares a project that month) will be entered for a chance to win a monthly prize of $100 at the Xojo Store plus a 25% off coupon for GraffitiSuite.<sup data-fn="475ca43b-7f55-4b9d-8f49-dc8378c3dec1" class="fn"><a href="#475ca43b-7f55-4b9d-8f49-dc8378c3dec1" id="475ca43b-7f55-4b9d-8f49-dc8378c3dec1-link">1</a></sup> The $100 can be applied to any Xojo license purchase or Extras Store item. At the end of 2025, all participants from the year will be entered to win the grand prize of a Xojo Pro license, $250 cash and a free year of GraffitiSuite. The more months in which you participate throughout the year, the more chances you&#8217;ll have to win the grand prize.</p>



<h3 class="wp-block-heading">January&#8217;s Theme</h3>



<p>Now that it is January (Happy New Year, everyone), the 2025 Year of Code kicks off with this theme: <strong>Desktop apps</strong>. People have used Xojo to make wonderful desktop apps since its inception in 1998 so this is an ideal first theme that is broad enough to allow anyone to participate. Look for a post next week announcing this months&#8217; project details. Once it is posted, I will start a forum topic for others to share GitHub links to their projects and apps. In early February we will do a blog post that highlights what people made this month and introduce February&#8217;s theme.</p>



<p>I hope you will join us for the 2025 Year of Code and I look forward to seeing what you make with Xojo!</p>



<p>#2025YearOfCode</p>


<ol class="wp-block-footnotes"><li id="475ca43b-7f55-4b9d-8f49-dc8378c3dec1">Monthly winners are excluded from future <em>monthly</em> prizes but each monthly participant earns an additional entry into the grand prize drawing. <a href="#475ca43b-7f55-4b9d-8f49-dc8378c3dec1-link" aria-label="Jump to footnote reference 1"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/21a9.png" alt="↩" class="wp-smiley" style="height: 1em; max-height: 1em;" />︎</a></li></ol>


<p><strong>Year of Code Project</strong></p>



<ul class="wp-block-list">
<li><a href="https://blog.xojo.com/2025/01/09/year-of-code-2025-kickoff/">Year of Code: Kickoff</a></li>



<li><a href="https://blog.xojo.com/2025/01/15/year-of-code-2025-january-project/" target="_blank" rel="noreferrer noopener">January Project: Desktop Apps</a>&nbsp;|&nbsp;<a href="https://forum.xojo.com/t/year-of-code-2025-january-project-sharing/83927" target="_blank" rel="noreferrer noopener">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/02/11/year-of-code-2025-february-project/">February Project: Database Apps</a>&nbsp;|&nbsp;<a href="https://forum.xojo.com/t/2025-year-of-code-february" target="_blank" rel="noreferrer noopener">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/03/05/year-of-code-2025-march-project-web-apps/">March Project: Web Apps</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-march/84474?u=alyssa_foley">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/04/08/year-of-code-2025-april-project-user-interface/">April Project: User Interface</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-april-user-interface/84926">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/05/07/year-of-code-2025-may-project-mobile-apps/">May Project: Mobile Apps</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-may-is-mobile/85272">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/06/10/year-of-code-2025-june-project-cross-platform-code-class/">June Project: Code Sharing</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-june-is-code-sharing/85612">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/07/10/year-of-code-2025-july-project-charting/">July Project: Charting</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-july-is-charting/85896">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/08/07/year-of-code-2025-august-project-console-apps/">August Project: Console Apps</a> | <a href="https://forum.xojo.com/t/august-2025-year-of-code-console-apps/86203">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/09/08/year-of-code-2025-september-project-games/">September Project: Games</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-septgamer">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/10/13/year-of-code-2025-october-project-multi-platform-communication/">October Project: Multi-Platform</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-october-multi-platform-communication/86717">Forum Discussion</a></li>



<li><a href="https://blog.xojo.com/2025/11/10/year-of-code-2025-november-project-pdf-postcard-generator/">November Project: PDF</a> | <a href="https://forum.xojo.com/t/2025-year-of-code-november-pdf/86969">Forum Discussion</a></li>
</ul>



<p><strong>How to Play:</strong></p>



<p>Each month we&#8217;ll announce a new theme and share an example project of our own. Share your projects to the Xojo Forum thread for that month via GitHub (all the links you need are posted above ↑ ). Learn how to use <a href="https://blog.xojo.com/2024/04/02/using-xojo-and-github/">Xojo and GitHub</a>.</p>



<p><strong>The Prizes:</strong></p>



<p>Monthly winners get $100 at the Xojo store. Every month you submit a project is another chance to win the grand prize. The grand prize is $250 cash plus a Xojo Pro license and a year of GraffitiSuite and will be announce in December. Learn more about the <a href="https://blog.xojo.com/2025/01/09/year-of-code-2025-kickoff/#prizes">prizes</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 14 &#8211; Marching Band ScoreKeeper</title>
		<link>https://blog.xojo.com/2018/09/21/justcode-challenge-week-14-marching-band-scorekeeper/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 21 Sep 2018 10:00:54 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Mobile]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4980</guid>

					<description><![CDATA[For the final week of the #JustCode Challenge I've made an iOS app that keeps the score for high school marching band shows. The app lets you add a show and then set the scores when they are announced at the end of the show. Though this is for marching band, it can easily be adjusted to keep track of a set of scores for any sort of competition or game.]]></description>
										<content:encoded><![CDATA[<p>For the final week of the #JustCode Challenge I&#8217;ve made an iOS app that keeps the score for high school marching band shows. The ScoreKeeper app lets you add a show or event and then set the scores when they are announced at the end of the show. Though this is for marching band, it can easily be adjusted to keep track of a set of scores for any sort of competition or game.</p>
<p><span id="more-4980"></span></p>
<p><img decoding="async" class="size-full wp-image-4981 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/09/2018-09-19_10-08-12-1.gif" alt="" width="173" height="340" /></p>
<p>This app uses three views. One to display the list of shows, a modal view to enter new shows and a view to show and change scores. A SQLite database is used to store the shows and scores.</p>
<p>Here&#8217;s a rough sketch of the app and the database that I did before starting on creating the app:</p>
<p><img decoding="async" class="alignnone size-full wp-image-4983" src="https://blog.xojo.com/wp-content/uploads/2018/09/IMG_1545-2.jpg" alt="" width="3024" height="2512" /></p>
<p>I often like to sketch out some ideas beforehand so that design and coding goes a bit quicker.</p>
<p><a href="https://github.com/paullefebvre/MarchingBandScoreKeeper">Download the project from GitHub</a>.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/50082-just-code-challenge-week-14-projects-final-week">week 14 forum conversation</a>.</p>
<p>And that&#8217;s it! 14 weeks of #JustCode is done! We&#8217;re going to take the weekend to review participation and on Monday we&#8217;ll announce winners and prizes! We&#8217;d like to thank everyone who participated, overall, I think our first #JustCode was a success. We hope to do this again and would appreciate any feedback you may have. Please email <a href="mailto:paul@xojo.com">Paul</a> and let us know what you liked about the event and where you think it can be improved.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 13: <a href="https://blog.xojo.com/2018/09/14/justcode-challenge-week-13-xojo-speed/">Xojo Speed</a></li>
<li>Week 12: <a href="https://blog.xojo.com/2018/09/07/justcode-challenge-week-12-multitemp/">MultiTemp</a></li>
<li>Week 11: <a href="https://blog.xojo.com/2018/08/31/justcode-challenge-week-11-xojo-dojo-for-pi/">Xojo Dojo</a></li>
<li>Week 10: <a href="https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/">NetTank</a></li>
<li>Week 9: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 13 &#8211; Xojo Speed</title>
		<link>https://blog.xojo.com/2018/09/14/justcode-challenge-week-13-xojo-speed/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 14 Sep 2018 10:00:31 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Mobile]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4912</guid>

					<description><![CDATA[Run Xojo Speed on your iPhone while you're driving and it uses the iOSLocation class to calculate the miles per hour or kilometers per hour in a large, easy-to-read display.]]></description>
										<content:encoded><![CDATA[<p>When Geoff and I were driving around Germany with Christian Schmitz of <a href="https://www.monkeybreadsoftware.de">MBS Software</a> before the MBS Xojo Conference started, the topic of speed limits on the autobahn came up. Christian mentioned than many cars in Germany have the speedometer set to display a speed that is a little higher than what you are actually doing. I have noticed that my Toyota Tacoma shows 70mph on the speedometer when it is really going more like 67.</p>
<p>Geoff wondered if there was a way to determine how accurate your car&#8217;s speedometer was and it made me think of a Xojo iOS app I had made a while ago: <strong>Xojo Speed</strong>.</p>
<p>Run Xojo Speed on your iPhone while you&#8217;re driving and it uses the iOSLocation class to calculate the miles per hour or kilometers per hour in a large, easy-to-read display.</p>
<p><span id="more-4912"></span></p>
<p><img loading="lazy" decoding="async" class="size-medium aligncenter" src="https://media.giphy.com/media/dlh7xpZaRGimfm1IN4/giphy.gif" width="270" height="480" /></p>
<p>This app is super simple. On the iOSLocation control that is on the view (SpeedTracker), the LocationChanged event provides a speed parameter that is in meters per second. This can easily be converted to km/h or mph. Here is the code that is used:</p>
<pre>// speed is meters per second
Dim kph As Double = speed * 3.6
Dim mph As Double = kph / 1.60934

If UnitsSelector.Value = 0 Then
  SpeedLabel.Text = kph.ToText(Locale.Current, "###")
  UnitLabel.Text = "km/h"
Else
  SpeedLabel.Text = mph.ToText(Locale.Current, "###")
  UnitLabel.Text = "MPH"
End If</pre>
<p>Download the <a href="https://github.com/xojo/XojoSpeed">Xojo Speed project from GitHub</a>.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/49969-just-code-challenge-week-13-projects">week 13 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 12: <a href="https://blog.xojo.com/2018/09/07/justcode-challenge-week-12-multitemp/">MultiTemp</a></li>
<li>Week 11: <a href="https://blog.xojo.com/2018/08/31/justcode-challenge-week-11-xojo-dojo-for-pi/">Xojo Dojo</a></li>
<li>Week 10: <a href="https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/">NetTank</a></li>
<li>Week 9: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 12 &#8211; MultiTemp</title>
		<link>https://blog.xojo.com/2018/09/07/justcode-challenge-week-12-multitemp/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 07 Sep 2018 10:00:39 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4875</guid>

					<description><![CDATA[#JustCode app of the week - instead of using the Weather Channel, I found a web API called OpenWeatherMap and built an iOS app to fetch the weather for display in a table. I even implemented the new table refresh feature added to Xojo 2018r2.]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s week 12 of #JustCode and I&#8217;m in in Munich, Germany at the <a href="https://www.monkeybreadsoftware.de/xojo/events/munich-2018-event.shtml">MBS Xojo Developer Conference!</a> I&#8217;ve never been to Germany and had no idea what the temperature would be, so instead of using the Weather Channel, I found a web API called OpenWeatherMap and built an iOS app to fetch the weather for display in a table. I even implemented the <a href="https://blog.xojo.com/2018/08/07/ios-improvements-in-xojo-2018-release-2/">new table refresh feature</a> added to Xojo 2018r2.</p>
<p><span id="more-4875"></span></p>
<p><img loading="lazy" decoding="async" class=" wp-image-4876 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-28_15-20-03.png" alt="" width="284" height="559" /></p>
<p>To use this project you&#8217;ll need to sign up for a <a href="https://openweathermap.org/appid">free account with OpenWeatherMap</a> so you can get your own <a href="https://openweathermap.org/appid">API Key</a>. In the project, assign your API Key to the TemperatureView.kAPIKey constant.</p>
<p>The TemperatureView.GetWeather method has three city values hard-coded in it. You can change those values as you want. Or for a better challenge, add another View that lets you add and remove your own city values.</p>
<p><a href="https://gitlab.com/xojo/MultiTemp">Download the source from GitLab</a>.</p>
<p>Add your #JustCode project to the week 12 forum conversation.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 11: <a href="https://blog.xojo.com/2018/08/31/justcode-challenge-week-11-xojo-dojo-for-pi/">Xojo Dojo</a></li>
<li>Week 10: <a href="https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/">NetTank</a></li>
<li>Week 9: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 11 &#8211; Xojo Dojo for Pi</title>
		<link>https://blog.xojo.com/2018/08/31/justcode-challenge-week-11-xojo-dojo-for-pi/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 31 Aug 2018 10:00:15 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[GPIO]]></category>
		<category><![CDATA[RPi]]></category>
		<category><![CDATA[Scripting]]></category>
		<category><![CDATA[Xojo Dojo]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4872</guid>

					<description><![CDATA[For #JustCode week 11, I've finished a project I've been working on for several months. This project is a simple app that you can use to write and run your own scripts using Xojo code on the Raspberry Pi. I call it Xojo Dojo.]]></description>
										<content:encoded><![CDATA[<p>For #JustCode week 11, I&#8217;ve finished a project I&#8217;ve been working on for several months. This project is a simple app that you can use to write and run your own scripts using Xojo code on the Raspberry Pi. I call it Xojo Dojo.</p>
<p><span id="more-4872"></span></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4873" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-28_15-11-34.png" alt="" width="1195" height="758" /></p>
<p>With Xojo Dojo you get a simple code editor where you can write code using the Xojo programming language and a small set of additional commands for graphics, GPIO and some other things. It&#8217;s a great way to learn programming basics. Xojo Dojo includes several sample scripts to get you started.</p>
<p>For more information, check out the <a href="http://developer.xojo.com/xojo-dojo">Xojo Dojo doc page</a>.</p>
<p><a href="https://gitlab.com/xojo/XojoDojo">Download the source from GitLab</a>.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/49692-just-code-challenge-week-11-projects">week 11 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 10: <a href="https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/">NetTank</a></li>
<li>Week 9: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 10 &#8211; NetTank</title>
		<link>https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 24 Aug 2018 10:00:54 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[UDP]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4851</guid>

					<description><![CDATA[For the 10th week of the #JustCode Challenge I took a look at networking. For my project this week I've created a networked version of the Combat game, which has two tanks on the screen shooting at each other. ]]></description>
										<content:encoded><![CDATA[<p>For the 10th week of the #JustCode Challenge I took a look at networking. For my project this week I&#8217;ve created a networked version of the Combat game, which has two tanks on the screen shooting at each other. The network version allows you to control one tank with the app running on your computer and someone else to control the other tank with the app running on their computer. I call it NetTank.</p>
<p><span id="more-4851"></span></p>
<p>I made a version of Combat in Xojo a while ago (it&#8217;s included in the Xojo examples folder in the Download) so I figured I would start there. To provide network capabilities to a game, you generally want to go with something fast and that means UDP (User Datagram Protocol), which is provided by the UDPSocket. There&#8217;s also a UDPSocket example included with Xojo which I used as a reference.</p>
<p>To start I first decided what data I wanted to send back and forth. I narrowed it down to these actions:</p>
<ul>
<li>JoinAction</li>
<li>MoveAction</li>
<li>HitAction</li>
</ul>
<p>These are all sent as JSON by broadcasting to a Multicast group.</p>
<p>JoinAction is sent when a game is first started to allow the two client NetTank apps to negotiate who is player 1 and who is player 2. The two actions are &#8220;ready&#8221; and &#8220;player2&#8221;.</p>
<p>MoveAction contains the action that your tank just did to send to the other client so it can update its display. Initially I was just sending actions for &#8220;forward&#8221;, &#8220;left&#8221;, &#8220;right&#8221; and &#8220;fire&#8221;. But because UDP does not guarantee messages are received, the tanks would sometimes get out of sync if a lot of moves were sent quickly when there was network congestion. So I instead decided to send the actual xy coordinate and rotation angle for a forward move so that should a message get lost it will at least have the correct information in a future forward message.</p>
<p>When a tank is hit, HitAction contains the new location for the tank (it is moved to a random spot on the screen when hit) to send to the other client.</p>
<p>Because the Combat game already ran using Timers, I didn&#8217;t really have to change much of the original Combat game code for NetTank. I added a UDPSocket to the main CombatWindow and in its DataAvailable event I have the code to check for the messages and update the Tank objects as needed.</p>
<p>I also had to make a few tweaks to the main code to send the JSON messages for movements, hits and to properly identify which tank to move.</p>
<p>To try the game you&#8217;ll need to run it on two different computers. The first one that starts becomes player 1 (blue) and the second one is player 2 (red). Use the arrow keys to move the tanks and press the space bar to fire.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4856" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-22_14-05-40.png" alt="" width="1220" height="437" /></p>
<p><a href="http://files.xojo.com/JustCode/NetworkTank.zip">Download the project</a> or <a href="https://gitlab.com/xojo/NetTank">check it out on GitLab</a>.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/49555-just-code-challenge-week-10-projects">week 10 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 9: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 9 &#8211; Quote Web Service</title>
		<link>https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 17 Aug 2018 10:00:24 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[Web Service]]></category>
		<category><![CDATA[webdev]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4829</guid>

					<description><![CDATA[We're wrapping up week 9 of #JustCode with a web app that demonstrates a web service, JSON and SQLite. The web app functions as both an app with a UI and a web service. It lets you enter your own quotes which are saved in a SQLite database. The web service randomly fetches a quote and returns it as JSON.]]></description>
										<content:encoded><![CDATA[<p>We&#8217;re wrapping up week 9 of #JustCode with a web app that demonstrates a web service, JSON and SQLite. The web app functions as both an app with a UI and a web service. It lets you enter your own quotes which are saved in a SQLite database. The web service randomly fetches a quote and returns it as JSON.</p>
<p><span id="more-4829"></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4831 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-15_12-22-31.png" alt="" width="591" height="490" /></p>
<p>The SQLite database has just a single table called Quote with this structure:</p>
<pre>CREATE TABLE Quote (
ID INTEGER NOT NULL,
QuoteText TEXT,
QuoteSource TEXT, 
PRIMARY KEY (ID)
);</pre>
<p>To randomly fetch a single quote from the table, this SQL is used:</p>
<pre>SELECT QuoteText, QuoteSource FROM Quote ORDER BY RANDOM() LIMIT 1;</pre>
<p>As companion apps, I&#8217;ve also included simple desktop and iOS apps that call the web service to display a quote.</p>
<p>The raw JSON that is returned looks like this:</p>
<pre>{"QuoteText":"Simple things should be simple. Complex things should be possible.","QuoteSource":"Alan Kay"}</pre>
<p>I&#8217;ve published a version of this on <a href="https://www.xojo.com/cloud/">Xojo Cloud</a>. <a href="http://demos.xojo.com/QuoteService/">Access the app</a>.</p>
<p>Access the web service <a href="http://demos.xojo.com/QuoteService/index.cgi/api/quote">here</a>.</p>
<p>You can <a href="http://files.xojo.com/JustCode/QuoteService.zip">download the projects</a> or check it all out <a href="https://gitlab.com/xojo/QuoteService">on GitLab</a>.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/49401-just-code-challenge-week-9-projects">week 9 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 8: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 8 &#8211; JumpStart App Launcher</title>
		<link>https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 10 Aug 2018 10:10:46 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Atari]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[ContainerControl]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[UI]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4815</guid>

					<description><![CDATA[Replicating an app launcher he originally made for the Atari, Paul's JumpStart app for week 8 of #JustCode demonstrates save/load JSON, ContainerControl and Canvas-based Buttons in Xojo.]]></description>
										<content:encoded><![CDATA[<p>A long, long time ago (1989) one of the first apps I ever made was an app launcher for the Atari ST. I called it JumpSTART. I originally wrote it in <a href="https://en.wikipedia.org/wiki/GFA_BASIC">GFA BASIC</a> and then later re-implemented it in <a href="https://en.wikipedia.org/wiki/Pascal_(programming_language)">Pascal</a> (<a href="https://archive.org/details/OSSPersonalPascal">OSS Personal Pascal</a>, technically).</p>
<p>When I got my first modem I went online with <a href="https://en.wikipedia.org/wiki/GEnie">Genie</a> and <a href="https://en.wikipedia.org/wiki/Delphi_(online_service)">Delphi</a> and uploaded JumpSTART as freeware. Even though it was freeware, I got a few checks in the mail from people that liked it.</p>
<p>I was reminded of JumpSTART when I saw my dock getting crowed. I thought replicating JumpSTART in Xojo would be a good project for week 8 of #JustCode. Though let&#8217;s just call it JumpStart this time around.</p>
<p><span id="more-4815"></span></p>
<p>This is what JumpSTART looked like on monochrome 640&#215;480 screen:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4816 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-09_14-06-09.png" alt="" width="640" height="434" /></p>
<p>JumpStart in Xojo is greatly simplified and looks like this:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4817 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/08/2018-08-09_14-10-06.png" alt="" width="680" height="392" /></p>
<p>The Xojo version automatically saves and loads the apps you&#8217;ve added so there was no need for separate Load/Save, Re-Read buttons. Technically they don&#8217;t have to be apps as even a document file can be launched as well.</p>
<p>You can right-click on an app button after you&#8217;ve added it to Rename, Change or Clear it so that also removed the need for some UI controls. And you just click on an empty button to add an app to it. When you click on a button with an app assigned, the app is launched and JumpStart hides itself.</p>
<p>This Xojo app demonstrates the use of a Canvas-based button, ContainerControls added dynamically to a window, and saving/loading JSON. The Canvas-based button will let me tweak the display, colors and maybe display an icon there.</p>
<p>You can <a href="http://files.xojo.com/JustCode/JumpStart.xojo_binary_project.zip">download the project</a> or <a href="https://gitlab.com/xojo/JumpStart">check it out on GitLab</a>.</p>
<p>As an added code treat, I&#8217;ve posted the <a href="https://github.com/paullefebvre/JumpSTART-AtariST">original JumpSTart Pascal code to GitHub</a>. FWIW, the original Pascal source is just over 1300 lines of code. The Xojo version is about 180.</p>
<p>Add your #JustCode project to the <a href="https://forum.xojo.com/49298-just-code-challenge-week-8-projects">week 8 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 7: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 7 &#8211; Pitch Tracker</title>
		<link>https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 03 Aug 2018 10:00:44 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[Mobile]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4790</guid>

					<description><![CDATA[As many know, I&#8217;m a big baseball fan. I was recently at Sea Dogs game (our local AA minor league team) and was sitting behind&#8230;]]></description>
										<content:encoded><![CDATA[<p>As many know, I&#8217;m a big baseball fan. I was recently at Sea Dogs game (our local AA minor league team) and was sitting behind home plate alongside many scouts who were carefully watching the pitchers. I noticed several were tracking pitch counts using an app on a tablet or laptop. I thought that would make for an interesting app to make in Xojo, so this week I&#8217;ve made an iOS app (I&#8217;m on an iOS roll it seems) to track the location of pitches, similar to what I observed the scouts using.</p>
<p>The app shows a grid of the strike zone and you tap where the pitch was. You can use the buttons on the bottom to mark the pitch as a ball, strike or in play changing its color. Click the Reset button to clear the pitches for the next batter.</p>
<p><span id="more-4790"></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4792 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-08-01_09-55-05.png" alt="" width="392" height="770" /></p>
<p><a href="http://files.xojo.com/JustCode/PitchTracker.xojo_binary_project.zip">Download the project</a> or <a href="https://gitlab.com/xojo/PitchTracker">check it out on GitLab</a>.</p>
<p>Enhancement idea:</p>
<ul>
<li>Enter player names</li>
<li>Save the pitch count data to a text file</li>
</ul>
<p>Add your project to the <a href="https://forum.xojo.com/49130-just-code-challenge-week-7-projects">week 7 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 6: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 6 &#8211; Bubble Popper</title>
		<link>https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 27 Jul 2018 10:00:59 +0000</pubDate>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[Games]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4568</guid>

					<description><![CDATA[For this week&#8217;s app, I created a simple iOS app where you tap on &#8220;bubbles&#8221; to pop them. This was actually suggested to me by&#8230;]]></description>
										<content:encoded><![CDATA[<p>For this week&#8217;s app, I created a simple iOS app where you tap on &#8220;bubbles&#8221; to pop them. This was actually suggested to me by Dana Brown some time ago as something that would make a great diversion for her son. I have found it helpful with some of my younger nieces and nephews.</p>
<p>This iOS app demonstrates the use of a Canvas and the detection of taps. When all the bubbles have been popped, more are added. It never ends!</p>
<p><span id="more-4568"></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4580 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-07-19_09-59-13.png" alt="" width="392" height="770" /></p>
<p><a href="http://files.xojo.com/JustCode/BubblePopper.zip">Download the project</a> or <a href="https://gitlab.com/xojo/BubblePopper">check it out on GitLab</a>.</p>
<p>Enhancements idea include:</p>
<ul>
<li>Add more bubble colors.</li>
<li>Keep track of how many bubbles are popped.</li>
<li>Handle screen rotations so that bubbles that are off screen get repositioned.</li>
<li>Take advantage of multi-touch to allow multiple bubbles to be popped at once.</li>
</ul>
<p>Add your project to the <a href="https://forum.xojo.com/49030-just-code-challenge-week-6-projects">week 6 forum conversation</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 5: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 5 &#8211; Math Quiz</title>
		<link>https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 20 Jul 2018 10:00:01 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[webdev]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4565</guid>

					<description><![CDATA[For week five of the Just Code Challenge, I made a web app. This Xojo web app generates random math problems for addition, subtraction, multiplication and division and then displays the score.]]></description>
										<content:encoded><![CDATA[<p>For week five of the Just Code Challenge, I made a web app. My wife is a middle school math teacher and sometimes she needs to give the kids quizzes to help them with their math skills.</p>
<p><span id="more-4565"></span></p>
<p>This Xojo web app generates random math problems for addition, subtraction, multiplication and division and then displays the score. It demonstrates the use of a WebContainer for dynamically displaying content and encapsulating behavior. In this case MathProblem is a WebContainer that generates a random math problem and determines if the correct answer was entered.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4575" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-07-19_09-44-26.png" alt="" width="1324" height="856" /></p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4577" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-07-19_09-48-07.png" alt="" width="684" height="443" /></p>
<p><a href="http://files.xojo.com/JustCode/MathQuiz.xojo_binary_project.zip">Download the MathQuiz project</a> or <a href="https://gitlab.com/xojo/MathQuiz">check it out on GitLab</a>.</p>
<p>Add your project to the week 5 <a href="https://forum.xojo.com/48906-just-code-challenge-week-5-projects/0#p397103">forum thread</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 4: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 4 &#8211; Mini Golf ScoreKeeper</title>
		<link>https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 13 Jul 2018 08:05:11 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[Mobile]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4387</guid>

					<description><![CDATA[Sometimes the idea for a great little app comes down to solving a silly little problem. Last month, the family went mini-golfing for my son&#8217;s&#8230;]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 16px;">Sometimes the idea for a great little app comes down to solving a silly little problem.</span></p>
<p>Last month, the family went mini-golfing for my son&#8217;s birthday. It was a lovely course called Pirate&#8217;s Cove Adventure Golf right next to the ocean. But they didn&#8217;t have scoring stands and we had to use a tiny pencil on a little cardboard scorecard to keep score. So this week&#8217;s app is a simple iOS app track of mini-golf scores!</p>
<p>The iOS app has two screens. The main screen has a giant Table that lists all the 18 holes. You tab on the detail button for a row (it&#8217;s the &#8220;I&#8221; icon) to go to the scoring screen.</p>
<p><span id="more-4387"></span></p>
<p>The scoring screen has places to enter scores for up to four players. It also keeps a running score total for each player.</p>
<p>The scores are stored in a two-dimensional array that is 4 x 18. Keep in mind that Xojo arrays are 0-based so this array is declared, as a property on the App object, with these dimensions: 3 x 17.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4541" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-07-10_16-08-27.png" alt="" width="392" height="770" /><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4542" src="https://blog.xojo.com/wp-content/uploads/2018/07/2018-07-10_16-08-27-1.png" alt="" width="392" height="770" /></p>
<p><a href="http://files.xojo.com/JustCode/MiniGolf.xojo_binary_project.zip">Download the Mini Golf project</a>.</p>
<p>This app is pretty simple, so here are some ideas for enhancements:</p>
<ul>
<li>Enter and display player names</li>
<li>Allow for more than 4 people on a team</li>
<li>Allow entry for &#8220;par&#8221; for each hole</li>
<li>Give each hole a name and save it separately so you can reload it should you go there to play often</li>
</ul>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 3: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 3 &#8211; Dogs Up!</title>
		<link>https://blog.xojo.com/2018/07/06/just-code-challenge-week3/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 06 Jul 2018 10:00:23 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[HTTPSocket]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4373</guid>

					<description><![CDATA[After 2 desktop apps in week 1 and week 2 of the Just Code challenge, my project this week is an iOS app. It's very important job is to display dog pictures. I call it Dogs Up!]]></description>
										<content:encoded><![CDATA[<p><span style="font-size: 16px;">After 2 desktop apps in week 1 and week 2 of the <a href="https://blog.xojo.com/2018/06/18/jump-right-in-just-code-challenge/">Just Code challenge</a>, my project this week is an iOS app. Its very important job is to display dog pictures. I call it Dogs Up!</span></p>
<p><span id="more-4373"></span></p>
<p>If you were at XDC 2018 maybe you caught my iOS session where I showed how to send an update to the App Store. The app I updated was <a href="https://blog.xojo.com/2015/10/01/cats-up-using-httpsocket-with-the-cat-rest-api/">Cats Up!</a>, a simple iOS app that display cat pictures. Dogs Up! is the dog version and it uses the <a href="https://dog.ceo/dog-api/">Dog API</a>.</p>
<p><img loading="lazy" decoding="async" class="wp-image-4374 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/06/iOS55Screenshot.png" alt="" width="281" height="500" /></p>
<p>To make this app, I made a copy of the Cats Up! project and then started changing the parts necessary to hook it up to the Dog API. Changing existing projects is a great way to learn and one of the reasons we are doing the Just Code Challenge.</p>
<p>The Cats Up! project used a single HTTPSocket to connect to its web service for the cat pictures. The Dog API required two HTTPSockets: one to request a URL to a dog picture and another to download the picture itself.</p>
<p>Once these steps were done, I just needed to update the JSON file with dog facts (instead of cat facts), find something to use for the dog icon and get a recording of a dog bark to use when a new picture is displayed.</p>
<p><a href="http://files.xojo.com/JustCode/DogsUp.zip">Download the Dogs Up! project</a>.</p>
<p>Download and check out earlier projects:</p>
<ul>
<li>Week 2: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 2 &#8211; Password Generator</title>
		<link>https://blog.xojo.com/2018/06/29/just-code-challenge-week2/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 29 Jun 2018 01:00:53 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[Passwords]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4364</guid>

					<description><![CDATA[#JustCode Challenge Week 2! This week I took inspiration from a feature in 1Password that can generate a password suggestion. This desktop app allows you to specify a desired password length and the number of digits and symbols to include in it.]]></description>
										<content:encoded><![CDATA[<p>In week 2 of the <a href="https://blog.xojo.com/2018/06/18/jump-right-in-just-code-challenge/">Just Code challenge</a> I took inspiration from a feature in <a href="https://1password.com">1Password</a> that can generate a password suggestion. This desktop app allows you to specify a desired password length and the number of digits and symbols to include in it.</p>
<p><span id="more-4364"></span></p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4367 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_12-25-22.png" alt="" width="366" height="259" /></p>
<p>Here is the Window layout in the Xojo IDE:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4369" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_11-53-55.png" alt="" width="1159" height="694" /></p>
<p>I&#8217;m using a read-only <a href="http://developer.xojo.com/textfield">TextField</a> to display the generated password. There are a couple <a href="http://developer.xojo.com/pushbutton">PushButtons</a> for copying the password text to the clipboard and for generating a new password. I use Slider controls to set the length of the password and the number of digits and symbols to include, along with corresponding labels.</p>
<p>When the window opens, it populates some arrays with the acceptable characters that can be used for letters, digits and symbols. In particular, some characters are excluded such as &#8220;O&#8221;, &#8220;o&#8221;, &#8220;0&#8221; and quotes because those are difficult to distinguish. The code to do this is in the Open event:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4370" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_13-29-50.png" alt="" width="853" height="785" /></p>
<p>The last line calls the GeneratePassword method which uses the settings from the user interface to generate a password. This way you&#8217;ll have a password displayed immediately when the window appears.</p>
<p>The GeneratePassword method first determines how many digits are needed, making sure it does not exceed the requested password length. Then it adds any symbols, also ensuring it does not exceed the set length. Lastly, if more characters are needed it adds letters to reach the desired length.</p>
<p>The characters are added to a String array that is then shuffled to mix all the parts together. Try commenting the Shuffle line out and when you run the project you&#8217;ll see that numbers always appear first, followed by symbols and then the letters. Here is the GeneratePassword code:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4371" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_13-30-49.png" alt="" width="853" height="785" /></p>
<p>A similar technique is used by the RandomDigit, RandomLetter and RandomSymbol. It uses the Shuffle method to randomize the appropriate array and then returns the first item.</p>
<p><a href="http://files.xojo.com/JustCode/PasswordGenerator.zip">Download the Password Generator project file</a>.</p>
<p>Download and check out earlier projects:</p>
<p>Week 1: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker Desktop App</a></p>
<p>Discuss your Week 2 project in the Xojo forum:</p>
<p><a href="https://forum.xojo.com/48550-just-code-challenge-week-2-projects">Just Code Challenge Week 2 Projects</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>#JustCode Challenge Week 1 &#8211; Color Picker</title>
		<link>https://blog.xojo.com/2018/06/22/just-code-challenge-week1/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 22 Jun 2018 03:50:05 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[Challenge]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4358</guid>

					<description><![CDATA[It's the first week of the Just Code challenge so I'm starting with something pretty simple a Color Picker app. This is a desktop app that demonstrates the use of a PushButton, the SelectColor method, a simple Canvas and the Color data type. It has less than 30 lines of code.]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s the first week of the <a href="https://blog.xojo.com/2018/06/18/jump-right-in-just-code-challenge/">Just Code challenge</a> so I&#8217;m starting with something pretty simple. This app lets you choose a color using the system color picker and then shows you the color values in hexadecimal (useful for programming, HTML and CSS), RGB (red, green, blue), HSV (hue, saturation,value) and CMY (cyan, magenta, yellow).</p>
<p><span id="more-4358"></span>This is a desktop app that demonstrates the use of a <a href="http://documentation.xojo.com/api/deprecated/pushbutton.html">PushButton</a>, the <a href="http://documentation.xojo.com/api/deprecated/selectcolor.html">SelectColor</a> method, a simple <a href="http://documentation.xojo.com/api/deprecated/canvas.html">Canvas</a> and the Color data type. It has less than 30 lines of code.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4359 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_11-33-32.png" alt="" width="511" height="194" /></p>
<p>This is the layout of the Window user interface:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-4360 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_11-35-10.png" alt="" width="1138" height="689" /></p>
<p>Here you can see the source code that displays the selected color and the related values:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-4361" src="https://blog.xojo.com/wp-content/uploads/2018/06/2018-06-06_11-34-45.png" alt="" width="1138" height="689" /></p>
<p><a href="http://files.xojo.com/JustCode/ColorPicker.xojo_binary_project.zip">Download the Color Picker project source</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Jump Right In! Just Code Challenge</title>
		<link>https://blog.xojo.com/2018/06/18/jump-right-in-just-code-challenge/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 18 Jun 2018 22:37:56 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[#JustCode]]></category>
		<category><![CDATA[Challenge]]></category>
		<category><![CDATA[Citizen Developer]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4341</guid>

					<description><![CDATA[The Just Code Challenge starts on June 18 and ends on September 21. Develop a new program or app and share it each Friday. Complete 10 out of 14 projects and complete the challenge. If you complete the challenge you'll get one of our super soft, new Xojo shirts and you'll be entered to win a Xojo Pro license!]]></description>
										<content:encoded><![CDATA[<p>I’m often asked by kids and adults how they can start coding and learn to make apps? You <em>could</em> start with the usual <a href="http://www.xojo.com/learn">books</a> or <a href="http://www.youtube.com/goxojo">videos</a>.</p>
<p>But maybe you want to <strong>jump right in</strong>. When I started programming that is exactly how I learned. I tried things to see what worked and what didn’t work. I also looked at and modified other programs I found.</p>
<p>You can learn to code if you <strong>just code</strong>.</p>
<p><span id="more-4341"></span></p>
<p>So let’s kick off this summer&#8217;s Just Code challenge. The idea is that you try to make one app a week throughout the next 14 weeks of the summer. These apps don’t need to do anything fancy, although they should do <em>something</em>. Any type of Xojo-made app counts — desktop, iOS or web. No need to compile, you are only required to submit your project to complete the challenge.</p>
<p>This contest is a great way to show people new to coding what it takes to make an app, and to show how much fun coding is. Even if you already know how to code, you’ll find that this contest is a great way to bring some fun back to coding kinda like Gavin Smith did just last week in his personal <a href="https://www.libertyapp.com/blog/index.php/2018/06/14/ios-game-from-scratch-in-14-days-done/">14 day iOS app challenge</a>.</p>
<p>The Just Code challenge starts today, <strong>June 18</strong> and ends Friday, <strong>September 21</strong>. Submit a project on at least <strong>10 out of 14</strong> Fridays to complete the Just Code challenge! Complete the challenge and you&#8217;ll get one of our super soft, new Xojo shirts (while supplies last) and you&#8217;ll be entered to win a Xojo Pro license plus $100! <em><strong>UPDATE</strong>: Because of growing interest, we&#8217;ll also be giving away a limited number of Xojo Lite licenses!</em></p>
<p>I’ve started a <a href="https://forum.xojo.com/48375-just-code-challenge">forum conversation called Just Code challenge</a>. Go there for ideas, to ask questions and post your projects on Fridays. Of course, I’ll be doing the Just Code challenge too. Each week I will post my project to start the Friday forum thread.</p>
<p><strong>Each Friday</strong> add your new project to the forum thread I started with that week&#8217;s app. Share a description of your project, a screenshot and a download link. Talk about your app and how much fun it is to #JustCode!</p>
<p>So what are you waiting for? Go on, <strong>just code.</strong></p>
<ul>
<li>Week 1 project: <a href="https://blog.xojo.com/2018/06/22/just-code-challenge-week1/">Color Picker</a></li>
<li>Week 2 Project: <a href="https://blog.xojo.com/2018/06/29/just-code-challenge-week2/">Password Generator</a></li>
<li>Week 3 Project: <a href="https://blog.xojo.com/2018/07/06/just-code-challenge-week3/">Dogs Up!</a></li>
<li>Week 4 Project: <a href="https://blog.xojo.com/2018/07/13/justcode-challenge-week-4-mini-golf-scorekeeper/">Mini-Golf ScoreKeeper</a></li>
<li>Week 5 Project: <a href="https://blog.xojo.com/2018/07/20/justcode-challenge-week-5-math-quiz/">Math Quiz</a></li>
<li>Week 6 Project: <a href="https://blog.xojo.com/2018/07/27/justcode-challenge-week-6-bubble-popper/">Bubble Popper</a></li>
<li>Week 7 Project: <a href="https://blog.xojo.com/2018/08/03/justcode-challenge-week-7-pitch-tracker/">Pitch Tracker</a></li>
<li>Week 8 Project: <a href="https://blog.xojo.com/2018/08/10/justcode-challenge-week-8-jumpstart-app-launcher/">JumpStart App Launcher</a></li>
<li>Week 9 Project: <a href="https://blog.xojo.com/2018/08/17/justcode-challenge-week-9-quote-web-service/">Quote Web Service</a></li>
<li>Week 10 Project: <a href="https://blog.xojo.com/2018/08/24/justcode-challenge-week-10-nettank/">NetTank</a></li>
<li>Week 11 Project: <a href="https://blog.xojo.com/2018/08/31/justcode-challenge-week-11-xojo-dojo-for-pi/">Xojo Dojo</a></li>
<li>Week 12 Project: <a href="https://blog.xojo.com/2018/09/07/justcode-challenge-week-12-multitemp/">MultiTemp</a></li>
<li>Week 13 Project: <a href="https://blog.xojo.com/2018/09/14/justcode-challenge-week-13-xojo-speed/">Xojo Speed</a></li>
<li>Week 14 Project: <a href="https://blog.xojo.com/2018/09/21/justcode-challenge-week-14-marching-band-scorekeeper/">Marching Band ScoreKeeper</a></li>
</ul>
<p>Check out this forum post for a list of 100+ projects submitted by Xojo customers:</p>
<p><a href="https://forum.xojo.com/50254-just-code-challenge-submissions">Just Code Challenge Submissions</a></p>
<p>And find out the winners here:</p>
<p><a href="https://forum.xojo.com/50192-just-code-challenge-winners">Just Code Challenge Winners</a></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
