<?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>Dart | Learn C Games Programming Blog</title>
	<atom:link href="https://learncgames.com/tag/dart/feed/" rel="self" type="application/rss+xml" />
	<link>https://learncgames.com</link>
	<description>A blog about C, programming games and my ebook(s).</description>
	<lastBuildDate>Mon, 15 Dec 2025 11:13:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://learncgames.com/wp-content/uploads/2020/03/cropped-favicon-32x32.png</url>
	<title>Dart | Learn C Games Programming Blog</title>
	<link>https://learncgames.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">181446779</site>	<item>
		<title>Linux challenges with the Flutter game</title>
		<link>https://learncgames.com/linux-challenges-with-the-flutter-game/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=linux-challenges-with-the-flutter-game</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Mon, 15 Dec 2025 11:11:59 +0000</pubDate>
				<category><![CDATA[Flutter]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Dart]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=3482</guid>

					<description><![CDATA[<p>The architecture of this is all Flutter and Dart running on a Ubuntu Linux box. There are two pure Dart programs- one to create the game setup and one to do the processing. The first is run manually, the second by crontab. Then there&#8217;s the Flutter web app. The Flutter web app has to read [&#8230;]</p>
The post <a href="https://learncgames.com/linux-challenges-with-the-flutter-game/">Linux challenges with the Flutter game</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<figure id="attachment_3483" aria-describedby="caption-attachment-3483" style="width: 500px" class="wp-caption alignleft"><img fetchpriority="high" decoding="async" class="wp-image-3483 size-full" src="https://learncgames.com/wp-content/uploads/2025/12/tuxandFlutter.png" alt="Tux and Flutter having a tussle" width="500" height="273" srcset="https://learncgames.com/wp-content/uploads/2025/12/tuxandFlutter.png 500w, https://learncgames.com/wp-content/uploads/2025/12/tuxandFlutter-300x164.png 300w" sizes="(max-width: 500px) 100vw, 500px" /><figcaption id="caption-attachment-3483" class="wp-caption-text">Generated by Gemini</figcaption></figure>
<p>The architecture of this is all Flutter and Dart running on a Ubuntu Linux box. There are two pure Dart programs- one to create the game setup and one to do the processing. The first is run manually, the second by crontab. Then there&#8217;s the Flutter web app.</p>
<p>The Flutter web app has to read and write files from the file system which of course it can&#8217;t do directly. I&#8217;ve created a backend of sorts using PHP.  There&#8217;s an API; it works but not without issues. If you&#8217;re calling a PHP script from a Flutter app, what is the URL?  It depends.</p>
<p>Say the URL is /file?params where I&#8217;ve modified .htaccess to pass /file urls onto a PHP script.</p>
<p>If I want to test this on the box in a browser I have to call <em>localhost/file?params</em> but in a Dart program running on the box it just calls<em> /file?params</em>.</p>
<p>The next problem is where are the game files stored. The setup program doesn&#8217;t really care. Any location will do so long as it doesn&#8217;t need to run elevated.  But the web app is limited to /var/www/html &#8211; it&#8217;s running under Apache on a linux box. In the end I created a folder under /var/www/game and each game is stored under there. PHP can read mostly anywhere, not just in /var/www/html and this provide a little extra security.</p>
<p>However there&#8217;s the not-so slight issue of permissions. The setup program runs under my login &#8211; call it <em>user</em>. So files are created owned by <em>user</em> <em>user</em>. The web app runs under <em>www-data</em> so to keep things simple, I&#8217;ve set permissions to <em>user:www-data</em> so both can access it. It&#8217;s a bit of a faff.</p>
<p>Here&#8217;s a tip. If you are developing a Flutter web app, develop it on Linux and do development as a Linux app. It&#8217;s far quicker building and launching a Linux app than it is the web app.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/linux-challenges-with-the-flutter-game/">Linux challenges with the Flutter game</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">3482</post-id>	</item>
		<item>
		<title>NoSQl or SQL?</title>
		<link>https://learncgames.com/nosql-or-sql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nosql-or-sql</link>
		
		<dc:creator><![CDATA[David]]></dc:creator>
		<pubDate>Thu, 27 Aug 2020 11:10:42 +0000</pubDate>
				<category><![CDATA[mobile]]></category>
		<category><![CDATA[Dart]]></category>
		<category><![CDATA[Flutter]]></category>
		<guid isPermaLink="false">https://learncgames.com/?p=1264</guid>

					<description><![CDATA[<p>I&#8217;m still continuing C# development but no longer on MonoGame. My needs have now switched to Flutter. If you haven&#8217;t come across it, it&#8217;s a cross-platform mobile development system from Google and uses their Dart language.  This is a modern language originally created back in 2011 as a potential replacement for JavaScript. That didn&#8217;t work [&#8230;]</p>
The post <a href="https://learncgames.com/nosql-or-sql/">NoSQl or SQL?</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></description>
										<content:encoded><![CDATA[<div class='__iawmlf-post-loop-links' style='display:none;' data-iawmlf-post-links='[{&quot;id&quot;:547,&quot;href&quot;:&quot;https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105&quot;,&quot;archived_href&quot;:&quot;http:\/\/web-wp.archive.org\/web\/20260128125116\/https:\/\/pixabay.com\/users\/geralt-9301\/?utm_source=link-attribution&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[{&quot;date&quot;:&quot;2026-02-06 16:07:12&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-22 10:29:57&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-02-26 11:03:48&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-05 09:23:23&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-03-10 15:30:20&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-05 12:01:46&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-09 00:40:52&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-12 21:22:22&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-16 23:23:31&quot;,&quot;http_code&quot;:403},{&quot;date&quot;:&quot;2026-04-21 01:38:39&quot;,&quot;http_code&quot;:403}],&quot;broken&quot;:true,&quot;last_checked&quot;:{&quot;date&quot;:&quot;2026-04-21 01:38:39&quot;,&quot;http_code&quot;:403},&quot;process&quot;:&quot;done&quot;},{&quot;id&quot;:548,&quot;href&quot;:&quot;https:\/\/pixabay.com\/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105&quot;,&quot;archived_href&quot;:&quot;&quot;,&quot;redirect_href&quot;:&quot;&quot;,&quot;checks&quot;:[],&quot;broken&quot;:false,&quot;last_checked&quot;:null,&quot;process&quot;:&quot;done&quot;}]'></div>
<figure id="attachment_1266" aria-describedby="caption-attachment-1266" style="width: 300px" class="wp-caption alignleft"><img decoding="async" class="size-medium wp-image-1266" src="https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640-300x200.jpg" alt="Da" width="300" height="200" srcset="https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640-300x200.jpg 300w, https://learncgames.com/wp-content/uploads/2020/08/data-2723105_640.jpg 640w" sizes="(max-width: 300px) 100vw, 300px" /><figcaption id="caption-attachment-1266" class="wp-caption-text">Image by <a href="https://pixabay.com/users/geralt-9301/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105">Gerd Altmann</a> from <a href="https://pixabay.com/?utm_source=link-attribution&amp;utm_medium=referral&amp;utm_campaign=image&amp;utm_content=2723105">Pixabay</a></figcaption></figure>
<p>I&#8217;m still continuing C# development but no longer on MonoGame. My needs have now switched to Flutter. If you haven&#8217;t come across it, it&#8217;s a cross-platform mobile development system from Google and uses their Dart language.  This is a modern language originally created back in 2011 as a potential replacement for JavaScript. That didn&#8217;t work out as other browser creators (Microsoft, Apple and Opera) didn&#8217;t go for it.</p>
<p>So Dart sort of languished until three years ago when Flutter emerged as an alternative to POA (Plain old Android development in Java/Kotlin). Flutter is the UI technology- interestingly it redraws the screen controls at 60 times per second, a bit like MonoGame. But this is no game.</p>
<p>The UI is programmed in Dart and it has one unique feature: You can make a change and see it live in one second. It&#8217;s called Hot Reload and compared to the old Compile, redeploy and run cycle is quite amazing., Also Flutter is cross-platform and has controls for iOS that look like Apple native controls.</p>
<p>Now my big decision is whether to use SQL or NoSQL to store data. The data isn&#8217;t exactly ordered like a schema, more like each database record has a variable number of name=value pairs. Which certainly suggests something NoSQLish.</p>
<p>&nbsp;</p>The post <a href="https://learncgames.com/nosql-or-sql/">NoSQl or SQL?</a> first appeared on <a href="https://learncgames.com">Learn C Games Programming Blog</a>.]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1264</post-id>	</item>
	</channel>
</rss>
