<?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>Reinvent The Wheel &#187; Delphi</title>
	<atom:link href="http://www.simonjstuart.com/category/development/delphi-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simonjstuart.com</link>
	<description>Round is nice, but we can do better!</description>
	<lastBuildDate>Tue, 15 May 2012 09:13:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>RADSplit Beta 2 &#8211; Coming this weekend (NEW FEATURES)</title>
		<link>http://www.simonjstuart.com/2012/05/15/radsplit-beta-2-coming-this-weekend-new-features/</link>
		<comments>http://www.simonjstuart.com/2012/05/15/radsplit-beta-2-coming-this-weekend-new-features/#comments</comments>
		<pubDate>Tue, 15 May 2012 09:13:49 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[2007]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[C++ Builder]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[FireMonkey]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[CBuilder]]></category>
		<category><![CDATA[Designer]]></category>
		<category><![CDATA[Dock]]></category>
		<category><![CDATA[Dockable]]></category>
		<category><![CDATA[Docking]]></category>
		<category><![CDATA[Edit]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[RADSplit]]></category>
		<category><![CDATA[Split]]></category>
		<category><![CDATA[Splitter]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Window]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1433</guid>
		<description><![CDATA[Having had some great feedback re the RADSplit Beta, I figured I&#8217;d share with you all what you can expect in Beta 2 (coming this weekend): Quite a few bug fixes (such as when dragging an Editor Tab from one &#8230; <a href="http://www.simonjstuart.com/2012/05/15/radsplit-beta-2-coming-this-weekend-new-features/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Having had some great feedback re the RADSplit Beta, I figured I&#8217;d share with you all what you can expect in Beta 2 (coming this weekend):</p>
<ul>
<li>Quite a few bug fixes (such as when dragging an Editor Tab from one Editor Window to another when there is only one Tab in the initial Editor. At present this destroys the contents of the Tab, this won&#8217;t be the case in Beta 2).</li>
<li>New Editor Windows will be dockable by default (with full-screen option next to the X on the Form&#8217;s Titlebar)</li>
<li>Unit Cloning will become a standard option along with &#8220;New Edit Window&#8221;</li>
<li>A &#8220;RADSplit&#8221; menu will be placed in the IDE</li>
<li>Unit Cloning will be added to the context menu of the Editor</li>
<li>(Possible) The dock&#8217;s Title Bar will be removed when an editor is docked, and you&#8217;ll be able to drag tabs or the editor itself to split them from their docked position.</li>
<li>(Possible) Side-by-Side (Vertical or Horizontal) Editing for Forms/DataModules and their Source will be added as an option. So the Form and its Source (for example) will appear next to each other in the same Editor</li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/05/15/radsplit-beta-2-coming-this-weekend-new-features/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Introducing RADSplit Beta (DOWNLOAD NOW!)</title>
		<link>http://www.simonjstuart.com/2012/05/13/introducing-radsplit-beta-download-now/</link>
		<comments>http://www.simonjstuart.com/2012/05/13/introducing-radsplit-beta-download-now/#comments</comments>
		<pubDate>Sun, 13 May 2012 10:50:00 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[2007]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[C++ Builder]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[FireMonkey]]></category>
		<category><![CDATA[Plugins]]></category>
		<category><![CDATA[RAD Studio]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[borland]]></category>
		<category><![CDATA[CBuilder]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Dock]]></category>
		<category><![CDATA[Dockable]]></category>
		<category><![CDATA[Docking]]></category>
		<category><![CDATA[Editor]]></category>
		<category><![CDATA[embarcadero]]></category>
		<category><![CDATA[Merge]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[RADSplit]]></category>
		<category><![CDATA[Screen]]></category>
		<category><![CDATA[Split]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Tool]]></category>
		<category><![CDATA[Window]]></category>
		<category><![CDATA[Wizard]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1429</guid>
		<description><![CDATA[Yesterday I announced on Google+ that I was working on a small (but very useful) RAD Studio (Delphi and C++ Builder) plugin I call &#8220;RADSplit&#8221;. Today I am happy to announce a full BETA release is available for RAD Studio &#8230; <a href="http://www.simonjstuart.com/2012/05/13/introducing-radsplit-beta-download-now/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yesterday I announced on Google+ that I was working on a small (<em>but very useful</em>) RAD Studio (<em>Delphi and C++ Builder</em>) plugin I call &#8220;RADSplit&#8221;.</p>
<p>Today I am happy to announce a full <strong>BETA</strong> release is available for RAD Studio 2007 to XE2!</p>
<p>Please head over to <a title="RADSplit" href="http://www.simonjstuart.com/delphi-stuff/radsplit/" target="_blank">the temporary RADSplit page</a> to watch a short demonstration video covering installation and various use-cases, as well as <strong>the installation download</strong> for the BETA.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/05/13/introducing-radsplit-beta-download-now/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TTwitter updated to fix &#8220;401&#8243; bug</title>
		<link>http://www.simonjstuart.com/2012/04/04/ttwitter-updated-to-fix-401-bug/</link>
		<comments>http://www.simonjstuart.com/2012/04/04/ttwitter-updated-to-fix-401-bug/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 15:25:31 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[2007]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[7]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[The Internet]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[XE3]]></category>
		<category><![CDATA[borland]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[embarcadero]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[OSN]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[TTwitter]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1410</guid>
		<description><![CDATA[I have just released an update for TTwitter (the original &#8220;deprecated&#8221; version currently available on this blog) to fix the &#8220;401&#8243; bug experienced by many of you. The update has been committed to the SVN repository, and an updated zip &#8230; <a href="http://www.simonjstuart.com/2012/04/04/ttwitter-updated-to-fix-401-bug/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just released an update for TTwitter (<em>the original &#8220;deprecated&#8221; version currently available on this blog</em>) to fix the &#8220;401&#8243; bug experienced by many of you.</p>
<p>The update has been committed to the SVN repository, and an <strong><em>updated zip file</em></strong> has been uploaded too!</p>
<p>You can find more information on TTwitter, as well as the necessary download information/link on <a title="TTwitter" href="http://www.simonjstuart.com/delphi-stuff/ttwitter/" target="_blank">the TTwitter page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/04/04/ttwitter-updated-to-fix-401-bug/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Lua4Delphi News: Massive Update, Webinars, Installer, Professional</title>
		<link>http://www.simonjstuart.com/2012/03/29/lua4delphi-news-massive-update-webinars-installer-professional/</link>
		<comments>http://www.simonjstuart.com/2012/03/29/lua4delphi-news-massive-update-webinars-installer-professional/#comments</comments>
		<pubDate>Thu, 29 Mar 2012 14:02:12 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[FireMonkey]]></category>
		<category><![CDATA[Lazarus]]></category>
		<category><![CDATA[LKSL]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Lua4Delphi]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[FPC]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Lua4Lazarus]]></category>
		<category><![CDATA[Pascal]]></category>
		<category><![CDATA[professional]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[xe]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1406</guid>
		<description><![CDATA[Sorry to redirect you to read this news, but please read this posting on the official Lua4Delphi page on Google+. Feel free to post comments here on this blog entry, or as comments on the Google+ entry (if you have &#8230; <a href="http://www.simonjstuart.com/2012/03/29/lua4delphi-news-massive-update-webinars-installer-professional/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sorry to redirect you to read this news, but please read <a title="Lua4Delphi News" href="https://plus.google.com/110671656687735218293/posts/7wrE8BxeMtr" target="_blank" onclick="pageTracker._trackPageview('/outgoing/plus.google.com/110671656687735218293/posts/7wrE8BxeMtr?referer=');">this posting on the official Lua4Delphi page on Google+</a>.</p>
<p>Feel free to post comments here on this blog entry, or as comments on the Google+ entry (<em>if you have a Google+ account</em>).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/03/29/lua4delphi-news-massive-update-webinars-installer-professional/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Major Lua4Delphi update released on SVN</title>
		<link>http://www.simonjstuart.com/2012/03/12/major-lua4delphi-update-released-on-svn/</link>
		<comments>http://www.simonjstuart.com/2012/03/12/major-lua4delphi-update-released-on-svn/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 12:57:18 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[2010]]></category>
		<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Examples]]></category>
		<category><![CDATA[FireMonkey]]></category>
		<category><![CDATA[LKSL]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Lua4Delphi]]></category>
		<category><![CDATA[XE]]></category>
		<category><![CDATA[XE2]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1397</guid>
		<description><![CDATA[I have just released a major update to Lua4Delphi. It&#8217;s available on the SVN, and makes many changes including: I have found and fixed multiple bugs, including one encountered by many of you which resulted in being unable to properly/accurately &#8230; <a href="http://www.simonjstuart.com/2012/03/12/major-lua4delphi-update-released-on-svn/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just released a <strong>major</strong> update to Lua4Delphi. It&#8217;s available on the SVN, and makes <strong>many</strong> changes including:</p>
<ul>
<li>I have found and fixed <strong>multiple</strong> bugs, including one encountered by many of you which resulted in being unable to properly/accurately read values returned by Lua functions invoked by your Delphi code.</li>
<li>Fixed a serious bug regarding Lua Stack Alignment (<em>all tests now indicate that the Stack is properly maintained in all areas of Lua4Delphi</em>).</li>
<li>Refactored <strong>everything</strong> to use Interfaces now, including Stack Managers!</li>
<li>You need to change all declarations of Delphi procedures to be registered with Lua. You need to change <strong>var AStack: TL4DMethodStack</strong> to <strong>var AStack: IL4DMethodStack</strong>, a minor change from your perspective, but makes a massive difference to the inner-workings.</li>
<li>You can now <strong>read and write Lua tables and metatables</strong>. This is the key piece of the puzzle to be used by the next update (<em>which will introduce all the Wrapper Units</em>).</li>
<li>The XE2 <strong>BasicLuaIntegration.exe</strong> demo has now been updated to demonstrate how to read and write Lua tables. Consider this code as a <em>rough example only</em>, as it adds no useful function to the demo at this time.</li>
</ul>
<p>This is a <strong>prepartory update</strong>, to address everything which prevents the Wrapper Type system from working properly. The next update will be the single largest update thus far, and (<em>assuming no major bug reports with this update</em>) should be available within a week.</p>
<p>I&#8217;m planning a some-what improptu webinar for around 1:30PM UTC (<em>London time</em>), and will update this post with the URL to join. No registration is required!</p>
<p>So, if you&#8217;re confident enough to update your copy of Lua4Delphi (<em>and make the necessary changes to your existing implementing code</em>), feel free to do so now. If you&#8217;d rather wait for a demonstration of these changes and additional features, 1:30 PM London time is when the webinar begins.</p>
<p>Please keep in mind I still have a fairly annoying cough, so I ask for forgiveness in advance should I struggle to speak at times.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/03/12/major-lua4delphi-update-released-on-svn/feed/</wfw:commentRss>
		<slash:comments>45</slash:comments>
		</item>
		<item>
		<title>&#8220;The PC will be dead by the end of the year&#8221;</title>
		<link>http://www.simonjstuart.com/2012/03/08/the-pc-will-be-dead-by-the-end-of-the-year/</link>
		<comments>http://www.simonjstuart.com/2012/03/08/the-pc-will-be-dead-by-the-end-of-the-year/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 19:30:57 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Laptops]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Smart Phones]]></category>
		<category><![CDATA[Social Networking]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[The Internet]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1391</guid>
		<description><![CDATA[You&#8217;ve probably read titles very-much like this one all over the Internet for the past 15-20 years. Indeed, it seems every year is the final year of the PC, so sayeth every technologically misinformed moron yet to be cut from &#8230; <a href="http://www.simonjstuart.com/2012/03/08/the-pc-will-be-dead-by-the-end-of-the-year/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You&#8217;ve probably read titles very-much like this one all over the Internet for the past 15-20 years. Indeed, it seems every year is the final year of the PC, so sayeth every technologically misinformed moron yet to be cut from the human gene pool by natural selection facilitated by their own stupid actions.</p>
<p>These are the very same idiots (<em>and their descendants</em>) whom whole-heartedly proclaimed at the rise of the Personal Computer that it spelt imminent doom for the common Calculator. Well, I&#8217;ve yet to encounter an office where every desk didn&#8217;t contain at least one common Calculator, alongside the Desktop Computer used to perform the more complex tasks.</p>
<p>Let us ignore the semantics of the term &#8220;PC&#8221; for a moment, and presume that they are using it to describe the traditional Desktop Computer, found in almost every home and office in the technological world.</p>
<p>Why is it that the birth of every new <em>gadget</em> simply <em>must</em> spell doom for whatever technology is at that time the most prevalent? I&#8217;ve genuinely been trying, and have yet to find a single example of a gadget&#8217;s birth leading imminantly to the death of other (<em>more widely adopted</em>) technologies&#8230; not a <em>single</em> example!</p>
<p>Indeed, it seems that the misguided fools who make such masochistic associations perceive that technology works in much the same way as America&#8217;s crusade (<em>whoops, I mean &#8220;war on terrorism&#8221;</em>): a ceaseless <em>battle</em>, which can never be won but always expands its reach to the next richest territory (<em>device</em>) to acquire its wealth (<em>users</em>) before it moves on to the next.</p>
<p>Technology simply does <em>not</em> work this way, never has worked this way, and never will work this way.</p>
<p>Gadgets exist to serve specific needs, in precise recognition that no one solution suits all. Your tablet device is useless as a phone, and your phone is useless when it comes to word processing, spreadsheets or database manipulation. Likewise, your Desktop Computer is useless in terms of portability.<br />
The point is that no one device meets every need, and so diversity is required.</p>
<p>You cannot use the iPad (<em>for example</em>) as the basis for your proclamation of the death of the Desktop Computer (<em>again, for example</em>). You cannot claim that the iPhone spells imminent doom for the iPad, or that some new type of gadget as-yet unimagined requires the death of any existing technology to reach its rightful place in the market.</p>
<p>When you buy a device, you&#8217;re buying a product to meet a need. You&#8217;re <em>not</em> buying into a <em>cult</em>, requiring that you announce your <em>absolute obedience</em> through the renouncement of all other devices.<br />
Your device does not come with a set of <em>commandments</em> featuring such biblical gems as &#8220;<em>thou shalt not worship any other devices</em>&#8220;, or &#8220;<em>burn the unbelievers for they impact on our profit margins</em>&#8220;.</p>
<p>This leads us neatly to another issue I want to mention:</p>
<h2>&#8220;<em>Native development will be dead within a year</em>&#8220;</h2>
<p>I read statements almost identical to the above when .NET was announced, with developers pledging their undying faith for Microsoft&#8217;s then-newest money spinner (<em>now largely rendered worthless by Windows 8, by the way</em>).</p>
<p>Indeed, similar statements were made with regard to almost all development frameworks, and yet native development still runs strong.</p>
<p>When performance and quality are primary considerations in a software product, native development is always chosen (<em>by any executive who either listens to his/her team, or has one iota of knowledge of software development</em>).</p>
<p>With Microsoft&#8217;s latest abomination (<em>namely Windows 8</em>) bringing a bastardized form of HTML5 and JavaScript to the desktop (<em>quite frankly the dumbest idea in the history of dumb ideas</em>), proclamations of the impending death of native development are once again running strong.</p>
<p>Of course, the type of thought-deprived fools making these inane statements haven&#8217;t considered that just because HTML5 and JavaScript work fine for the Web, it doesn&#8217;t mean they will work so well for other purposes. Indeed, this is why there has always been a clear division between technologies for the Desktop, and technologies for the Web (<em>the two are simply so different that a clear line must always divide them</em>).</p>
<p>I myself toyed with the idea of using JavaScript and HTML (<em>HTML5 didn&#8217;t exist at the time</em>) as a means of extending Desktop applications way back in 2008, only to abandon the idea in short-order when realizing the practical limitations of what I have since termed as &#8220;Frankensystems&#8221;.</p>
<p>A growing number of developers have begun to realize (<em>as a different many of us &#8211; myself included &#8211; had realized long ago</em>) that <em>any</em> form of runtime framework introduces critical limitations in the development of our software.<br />
All of these can be summed up by the simple truth that, <em>when you develop for a runtime framework, what you can produce is restricted only to what is made available by the runtime framework.</em></p>
<p>You will never, for example, encounter a Device Driver written in C#, or HTML5/JavaScript&#8230; it simply cannot be done, because the frameworks provide no means of accomplishing this.</p>
<p>So, while self-proclaimed &#8220;web developers&#8221; rejoice at this foolish belief that Windows 8 will make it easy for them to apply what they know of HTML and JavaScript to producing fully-functional Desktop applications, this simply isn&#8217;t true (<em>at least, not in the way they think</em>).<br />
I&#8217;ve actually had a conversation with a web developer who genuinely believed they&#8217;d be able to use Joomla as the foundation of a complete Desktop application for Windows 8. I&#8217;m not joking! I won&#8217;t mention their name here to spare them the embarrassment, but sufficed to say I haven&#8217;t laughed so hard in a long, long time.</p>
<p>Anyway, the point I&#8217;m trying to make is that the same masochistic desires for one technology to succeed through the death of its more commonly adopted forebears runs as strong in the software industry as it does in that of the gadget.</p>
<p>I can sum this rant up by simply pointing out the following:</p>
<ul>
<li>The PC didn&#8217;t kill the Calculator.</li>
<li>Mobile Gadgets haven&#8217;t killed the Desktop Computer.</li>
<li>.NET didn&#8217;t kill native development (<em>indeed, it has now begun to reinforce the market&#8217;s demand for native development</em>)</li>
<li>Windows 8 won&#8217;t transform web developers into software moguls, or advance software development in <em>any</em> positive way.</li>
<li>If you believe that one technology&#8217;s success requires another&#8217;s utter failure, you need your head examined.</li>
</ul>
<p>Despite the headline image (<em>the mock tombstone</em>), I shall not bid a peaceful rest to the Desktop Computer (<em>or native software development</em>)&#8230; not now, not ever. The simple truth is that there will <em>always</em> be a need for them, in whatever form into-which they evolve.</p>
<p>If you&#8217;ve properly read and understood this article, then I shall bid a peaceful rest to whatever misguided belief you may have held on this subject.</p>
<p><a href="http://www.simonjstuart.com/wp-content/uploads/2012/03/tombstone_ignorance.jpg"><img class="aligncenter size-full wp-image-1393" title="tombstone_ignorance" src="http://www.simonjstuart.com/wp-content/uploads/2012/03/tombstone_ignorance.jpg" alt="" width="500" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/03/08/the-pc-will-be-dead-by-the-end-of-the-year/feed/</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
		<item>
		<title>How much focus do you believe Embarcadero should apply to bug fixing versus new features in Delphi XE3?</title>
		<link>http://www.simonjstuart.com/2012/03/01/how-much-focus-do-you-believe-embarcadero-should-apply-to-bug-fixing-versus-new-features-in-delphi-xe3/</link>
		<comments>http://www.simonjstuart.com/2012/03/01/how-much-focus-do-you-believe-embarcadero-should-apply-to-bug-fixing-versus-new-features-in-delphi-xe3/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 07:51:58 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Polls]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[XE3]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[borland]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[codegear]]></category>
		<category><![CDATA[Developing]]></category>
		<category><![CDATA[Devleoper]]></category>
		<category><![CDATA[Effort]]></category>
		<category><![CDATA[embarcadero]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Fixes]]></category>
		<category><![CDATA[Focus]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[New]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[OSX32]]></category>
		<category><![CDATA[OSX64]]></category>
		<category><![CDATA[Platforms]]></category>
		<category><![CDATA[Poll]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[Updates]]></category>
		<category><![CDATA[Win32]]></category>
		<category><![CDATA[Win64]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1384</guid>
		<description><![CDATA[I&#8217;d like to thank everyone for helping to provide definitive data in my previous poll (If you could have one new platform in Delphi XE3, which would it be?). The information you all provided has been very useful already (and &#8230; <a href="http://www.simonjstuart.com/2012/03/01/how-much-focus-do-you-believe-embarcadero-should-apply-to-bug-fixing-versus-new-features-in-delphi-xe3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;d like to thank everyone for helping to provide definitive data in my previous poll (<a title="If you could have one new platform in Delphi XE3, which would it be?" href="http://www.simonjstuart.com/2012/02/27/if-you-could-have-one-new-platform-in-delphi-xe3-which-would-it-be/" target="_blank"><em>If you could have one new platform in Delphi XE3, which would it be?</em></a>).<br />
The information you all provided has been very useful already (<em>and will be useful for us all in the not-so-distant future</em>).</p>
<p>So, now here&#8217;s another poll I&#8217;d like to get your opinion on&#8230;</p>
<h2><em>How much focus do you believe Embarcadero should apply to bug fixing versus new features in Delphi XE3?</em></h2>
<p>I&#8217;m interested to see what the majority consensus is on this issue. As with the previous poll, there is a purpose to my asking this.</p>
<p><code>Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.</code></p>
<p>Thanks again!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/03/01/how-much-focus-do-you-believe-embarcadero-should-apply-to-bug-fixing-versus-new-features-in-delphi-xe3/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Designing Apps to properly accommodate the iOS,Android and Windows Phone markets</title>
		<link>http://www.simonjstuart.com/2012/02/28/designing-apps-properly-accommodate-ios-android-windows-phone-markets/</link>
		<comments>http://www.simonjstuart.com/2012/02/28/designing-apps-properly-accommodate-ios-android-windows-phone-markets/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 23:45:02 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[Computers]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Lazarus]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[PC]]></category>
		<category><![CDATA[Smart Phones]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Web Applications]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[XE2]]></category>
		<category><![CDATA[App]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[Experience]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[GUI]]></category>
		<category><![CDATA[Ice-cream]]></category>
		<category><![CDATA[ICS]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[iStore]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mango]]></category>
		<category><![CDATA[Marketplace]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Phone]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Sandwich]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[Style]]></category>
		<category><![CDATA[Tablet]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[User]]></category>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[WP7.5]]></category>
		<category><![CDATA[WP8]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1330</guid>
		<description><![CDATA[My well-known &#8220;anti-Apple&#8221; bias&#8230; I want to be completely transparent about this&#8230; it is no great secret that I have a very strong anti-Apple bias (for reasons not of interest to this article). My bias plays no part in this &#8230; <a href="http://www.simonjstuart.com/2012/02/28/designing-apps-properly-accommodate-ios-android-windows-phone-markets/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<h4><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/apple_ipad_logo.png"><img class="alignleft  wp-image-1370" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/apple_ipad_logo-256x300.png" alt="" width="154" height="180" /></a><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Windows-Phone-Logo.png"><img class="alignright  wp-image-1372" title="Windows Phone Logo" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Windows-Phone-Logo-300x293.png" alt="" width="180" height="176" /></a><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android-ICS-logo.png"><img class="aligncenter  wp-image-1371" title="Android ICS logo" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android-ICS-logo-300x215.png" alt="" width="270" height="194" /></a></h4>
<h4></h4>
<h4></h4>
<h4>My well-known &#8220;anti-Apple&#8221; bias&#8230;</h4>
<p>I want to be completely transparent about this&#8230; it is no great secret that I have a very strong anti-Apple bias (<em>for reasons not of interest to this article</em>). My bias plays no part in this article, nor are the pro&#8217;s and con&#8217;s of Android, Windows Phone or iOS, Google, Microsoft or Apple discussed here.</p>
<p>This article is intended to be fully objective, and serves merely to provide some fundamental understanding I believe is lacking at present.</p>
<h4>My background&#8230;</h4>
<p>Most of you only know me as a Windows developer using (<em>primarily</em>) Delphi and FreePascal/Lazarus.</p>
<p>What you may not know is that I do actually produce more than a few Android apps for clients (<em>to be used within their respective companies as a replacement for PCs in certain departments such as dispatch</em>).</p>
<p>I have subcontracted the development of the same apps for iOS devices where requested (<em>based entirely on my designs</em>), and I currently have two Android apps in development (<em>one of which I&#8217;m also developing for Windows Phone, and am contemplating releasing on iOS as well</em>).</p>
<p>The &#8220;mobile Apps&#8221; I have developed for clients had the requirement of being able to run on both Tablets and Phones.</p>
<div id="attachment_1357" class="wp-caption alignleft" style="width: 160px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Sunrise-With-the-Scobleizer.jpg"><img class="size-thumbnail wp-image-1357" title="© Robert Scoble" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Sunrise-With-the-Scobleizer-150x150.jpg" alt="© Robert Scoble" width="150" height="150" /></a><p class="wp-caption-text">© Robert Scoble</p></div>
<h4>Why this article?</h4>
<div id="attachment_1359" class="wp-caption alignright" style="width: 190px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/sam-logo-correct.jpg"><img class=" wp-image-1359 " title="© Samsung" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/sam-logo-correct-300x100.jpg" alt="© Samsung" width="180" height="60" /></a><p class="wp-caption-text">© Samsung</p></div>
<p>This article is born of a <a title="Android/iOS Google+ Post by Robert Scoble" href="https://plus.google.com/111091089527727420853/posts/Fx6Z8X1t6Ti" target="_blank" onclick="pageTracker._trackPageview('/outgoing/plus.google.com/111091089527727420853/posts/Fx6Z8X1t6Ti?referer=');">Google+ posting by Robert Scoble</a> (<em>a well-respected employee of Rackspace</em>), in which he casts his opinions on various <a title="CNET - Samsung were not doing very well in the tablet market" href="http://reviews.cnet.com/8301-13970_7-57385739-78/samsung-were-not-doing-very-well-in-the-tablet-market/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reviews.cnet.com/8301-13970_7-57385739-78/samsung-were-not-doing-very-well-in-the-tablet-market/?referer=');">statements made by the CEO of Samsung</a></p>
<p>regarding the supposed lack of success of Android (<em>more specifically: Samsung&#8217;s lack of success in the Tablet market</em>) from Samsung&#8217;s perspective. This article also addresses many other statements around the Internet where the user count of an App between different platforms is used to judge the popularity of one platform over another (<em>a naive practise at best, deliberately misleading at worst</em>).</p>
<p>With the above said, let&#8217;s get on with the subject at hand&#8230;</p>
<h2>The Device Divide</h2>
<p>Let&#8217;s begin by taking a look at the differences between phones and tablets, as this is a major consideration many developers are simply ignoring, and many others not properly handling.</p>
<div id="attachment_1344" class="wp-caption alignleft" style="width: 313px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android_Phones_and_Tablets_selected.jpg"><img class="size-full wp-image-1344" title="Android Tablet (Left), Phone (Right)" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android_Phones_and_Tablets_selected.jpg" alt="Android Tablet (Left), Phone (Right)" width="303" height="304" /></a><p class="wp-caption-text">Android Tablet (Left), Phone (Right)</p></div>
<h3>Physical Size</h3>
<p>This is the most obvious difference, but also one of the most significantly overlooked.</p>
<p>Mobile phones tend to have a much smaller display than tablets (<em>goes without saying</em>). This means that the amount of information you can display on a phone at any one time is substantially less than the amount you can display on a tablet (<em>stating the obvious again, I know</em>).<br />
The tendency of many developers (<em>as I have witnessed more often than I&#8217;m happy to admit</em>) is to essentially <em>squeeze</em> all of the information into the available display (<em>sometimes by simply making the text, images and controls smaller overall</em>). This kind of design is entirely ignorant of providing the best user experience for any given form-factor, and almost never works well.</p>
<p>With a phone, the limited real-estate afforded by the typical 3-4&#8243; display means that the user interface needs to be concise. Simplicity is paramount as the display simply isn&#8217;t large enough (<em>or even necessarily of high enough resolution</em>) to accommodate large numbers of controls or menus.</p>
<p>In contrast, tablets have much more screen real-estate (<em>7-10.1&#8243;</em>), so more consideration should be given to logically dividing groups of controls and menus. That&#8217;s not to say that tablet apps should be in any way convoluted or overcomplicated, but rather that the larger display simply means that our apps can do more easily, and display much more at any one time, thus making it logical to exploit the additional real-estate to the benefit of the user.</p>
<blockquote><p>Remember: Just because it is possible to produce a single app with a single GUI which will run on both phones <em>and</em> tablets, that <em>doesn&#8217;t</em> mean you should!</p></blockquote>
<h3>Connectivity</h3>
<div id="attachment_1349" class="wp-caption alignright" style="width: 310px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/connection-icon.png"><img class="size-medium wp-image-1349" title="Connectivity" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/connection-icon-300x240.png" alt="Connectivity" width="300" height="240" /></a><p class="wp-caption-text">Connectivity</p></div>
<p>Given that mobile phones are primarily communication devices, it is a fairly safe assumption that these devices will <em>almost always</em> be connected to the Internet by one means or another (<em>be that WiFi, 2G, 3G or 4G</em>). That&#8217;s not to suggest that &#8220;mobile phones are always connected&#8221;, just that they are <em>almost</em> always connected, therefore it is acceptable for an App to rely on an Internet connection being present as the chances are it always will be when the app is required by the user.</p>
<p>Unfortunately, the same is not always true of tablet devices. Indeed, while iPads all have a SIM slot and 2G/3G data (<em><strong>edit: </strong>I&#8217;m now informed that not all iPads have a SIM slot&#8230; I didn&#8217;t know this</em>), the same cannot always be said for Android tablet devices. A simple example is that I have the WiFi model of the Motorola Xoom tablet, which means it is only connected to the Internet when a WiFi network is present (<em>or when I choose to tether it to my phone to share its data connection, but not everyone has the ability to do this</em>).</p>
<p>Since not all Android tablets have a constant data connection, it is <em>not</em> a safe assumption that these devices will be connected to the Internet at any given moment. This means that your app should (<em>if at all possible</em>) be less dependant on Internet connectivity when running on a tablet device (<em>certainly in the context of Android, anyway</em>). Your app is no good on a tablet if it&#8217;s unable to function without an Internet connection when the tablet isn&#8217;t connected (<em>I said it, even though it need not have been said</em>).</p>
<blockquote><p>Remember: Your app should behave gracefully when in the absence of an Internet connection, especially when running on an Android tablet!</p></blockquote>
<div id="attachment_1347" class="wp-caption alignleft" style="width: 310px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Motorola-DEFY-Front-with-Virtual-Keyboard.jpg"><img class="size-medium wp-image-1347" title="Phone Virtual Keyboard" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Motorola-DEFY-Front-with-Virtual-Keyboard-300x168.jpg" alt="Phone Virtual Keyboard" width="300" height="168" /></a><p class="wp-caption-text">Phone Virtual Keyboard</p></div>
<h3>Ergonomics of input</h3>
<p>Technically this topic relates to the difference in physical size between phones and tablets, but is in some ways more complicated so I&#8217;m discussing it separately.</p>
<p>We carry our phones everywhere, and for the most part they serve their purpose just fine. A fairly major issue occurs, however, whenever it becomes necessary to type any significant amount.</p>
<p>Personally I find it almost impossible to type an e-mail on any smart-phone (<em>whether using a touchscreen, digit buttons or even a &#8220;full&#8221; QWERTY keyboard on the device itself</em>).</p>
<p>To address this, phone apps should require as little typed input from the user as possible. There are countless instances I&#8217;ve encountered where an app requires me to type when it would easily have been possible to have used some form of logical selector (<em>such as a &#8220;Progression Tree&#8221; or even a numeric slider</em>).</p>
<blockquote><p>Remember: When it comes to phone apps, the less typing involved the better!</p></blockquote>
<p>Tablet devices provide for a much better typing experience, as the display size allows for larger (<em>thus more accurate</em>) virtual keyboard keys, and even for a more ergonomic virtual keyboard layout. It is therefore acceptable to allow for your app to involve more typed input from the user on a tablet device.</p>
<blockquote><p>On a similar note: Tablet devices are being used more and more in offices now with a physical keyboard (<em>sometimes even a physical mouse</em>). This makes typing even easier as a physical keyboard provides instant tactile response both prior to and after pressing each key.</p></blockquote>
<h3>Differing performance<a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/ipad-performance.jpg"><img class="alignright size-medium wp-image-1351" title=" " src="http://www.simonjstuart.com/wp-content/uploads/2012/02/ipad-performance-278x300.jpg" alt="" width="278" height="300" /></a></h3>
<p>I believe it is fair to say that the majority of smart-phones on the market are of substantially lower performance than tablets. I of course acknowledge that there are <em>some</em> handsets currently &#8211; and soon to be &#8211; on the market which match or, in some cases, even exceed the performance of certain tablets, but these need to be considered as <em>niche</em> devices rather than common-place.</p>
<p>So, with the above in mind, and dependant on the features of your app, it may be necessary to scale for performance according to the most common hardware between phones and tablets.</p>
<p>For example: if you desire to include a fancy animated user interface, with lots of objects moving around or even high-detail animation in the background (<em>both of which can often be </em>tacky<em> and should be given a great deal of consideration before making your decision to include such things</em>), this may work great on most tablet devices, but could cause very low performance on phones.</p>
<blockquote><p>Remember: It is generally better to conform to the lowest common denominator when it comes to performance, as this will make the largest possible user-base available for your app.</p></blockquote>
<p>The tablet version of your user interface can include more performance-intensive elements than the phone counterpart, so you should accommodate this in your design (<em>where applicable</em>).</p>
<p>This consideration is not only limited to the user interface, of course, as, dependant on what your app is doing, it is possible that certain background processes could perform quite slowly.</p>
<p>If, for example, you are processing an XML dataset for display, it would be better to process less of it on a phone than on a tablet. This makes sense for two reasons, the first being that the phone will likely take longer to process the same portion of the XML dataset, and the second being that it gives you incentive to display less of the data on the screen at any one time (<em>which is better given the smaller display of a phone, too</em>)</p>
<blockquote><p>Remember: The amount of &#8220;work&#8221; you make the device perform should be relative to the typical purpose of the device (<em>less for a phone, slightly more for a tablet</em>)</p></blockquote>
<div id="attachment_1353" class="wp-caption alignleft" style="width: 310px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android-Spreadsheets.png"><img class="size-medium wp-image-1353" title="On a PHONE?" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/Android-Spreadsheets-300x200.png" alt="On a PHONE?" width="300" height="200" /></a><p class="wp-caption-text">On a phone?</p></div>
<h3>Different devices have different purposes</h3>
<p>You may think this is as plain as the nose on your face, but it is actually the most commonly overlooked issue when it comes to making mobile apps.</p>
<p>Using myself as an example, I don&#8217;t do everything with my phone what I do with my tablet, and vice-versa. This is because <strong>different devices have different purposes</strong> (<em>as almost anyone would agree without hesitation</em>).</p>
<p>When you are planning your app, one of the very first questions you need to be asking yourself (<em>and/or your team</em>) should be &#8220;<strong><em>is this app for the phone, the tablet, or </em>both<em>?</em></strong>&#8221;<br />
In many cases, your app will be best suited to either one type of device or the other, and acknowledging this early in the design process will not only spare you a lot of disappointment, but will save you a lot of design and development time too.</p>
<blockquote><p>Remember: There is no point in developing your app to support both phones and tablets when only one of these device types will generate any user interest.</p></blockquote>
<p>Whether your specific app is best suited to one, the other or both&#8230; that&#8217;s up to you to determine. Likewise, you should make your intended target device type clear in your app&#8217;s <em>product description</em>, to better guide prospective users as-to the best use of your app.</p>
<blockquote><p>Parallel: You wouldn&#8217;t use your phone to do word processing, spreadsheets or database management! You wouldn&#8217;t use your tablet to place telephone calls (<em>VOIP not-withstanding</em>). You wouldn&#8217;t use your desktop PC as a mobile phone.<strong> You use the right device for any given job!</strong></p></blockquote>
<h2>The Culture Clash</h2>
<p>Moving away from the differences between phones and tablets, there is another equally important consideration developers need to make when targeting different mobile platforms (<em>such as iOS, Android and Windows Phone</em>) with the same app.</p>
<p><strong><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/AppleStore.jpg"><img class="alignright size-medium wp-image-1364" title=" " src="http://www.simonjstuart.com/wp-content/uploads/2012/02/AppleStore-300x224.jpg" alt="" width="300" height="224" /></a>A person&#8217;s decision when choosing between devices is a direct expression of their culture.</strong></p>
<p>An iOS user, for example, is a very different animal to an Android or Windows Phone user. Likewise an Android user is a very different animal to a Windows Phone user. I mean this in a very serious (<em>non-insulting</em>) way, and I don&#8217;t say this lightly&#8230; it is a well-studied phenomenon.</p>
<p>A person&#8217;s choice between iOS, Android and Windows Phone is (<em>in almost all instances</em>) anything but <em>utilitarian</em>. Studies (<em>you can find them with a Google search</em>) have shown that each consumers&#8217; decision is <em>almost always</em> the result of their receptiveness to one marketing campaign over another. This bias of reception is in turn a result of who that individual is at a cultural level.</p>
<p>To put it quite bluntly: you&#8217;re either brainwashed by Apple, Google or Microsoft.</p>
<p>These studies typically involve teams of people at retailers asking a simple question to customers at the checkout paying for their iOS, Android or Windows Phone product: <em>&#8220;what made you choose this device over the others?&#8221;</em>. The results always clearly conclude that the overwhelming majority of customers based their decision entirely as a result of a particular advertising/marketing campaign, rather than a carefully considered weighing of each devices&#8217; pros and cons.</p>
<p>This isn&#8217;t at all surprising, and is why marketing firms are paid so much money to create the most compelling campaigns. This observation extends far beyond mobile devices, of course, and influences almost every purchase decision a person makes throughout their entire life. Nobody (<em>not even the marketers themselves</em>) is entirely immune to its influence.</p>
<blockquote><p>Why does this matter?</p></blockquote>
<p>Well, given that iOS, Android and Windows Phone users are all culturally and socially different in so many ways, it means that their expectations, requirements and tastes also differ. This creates something of a <em>&#8220;culture clash&#8221;</em> when it comes to apps transcending the different platforms.</p>
<p>These differences are often ignored entirely by app developers, many of whom I would suggest have never even given it a moment&#8217;s thought, and this has led to a lot of inaccurate conclusions when it comes to the comparative popularity of the various platforms.</p>
<p>When the producer of a highly popular app releases the same app on two rival platforms (<em>for example on both iOS and Android</em>), they almost always try to make the app look, feel and perform the same way.</p>
<p>At first glance, this may seem appropriate as it saves on design time, and without considering the cultural and social differences between the users of each platform, you would have no reason to predict that your app&#8217;s popularity would differ significantly between them.</p>
<p>Even if the &#8220;look and feel&#8221; aren&#8217;t designed to be identical between platforms, often apps are developed with one platform in mind, and the other platform is tagged on as almost an after-thought, resulting in an inappropriate user experience for that platforms&#8217; user-base. This also results in the satisfaction of users between platforms being disproportionate, and is still a failure to properly understand the platforms&#8217; users.</p>
<div id="attachment_1342" class="wp-caption alignleft" style="width: 310px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/flurry-ios-vs-android-money.png"><img class="size-medium wp-image-1342" title="Flurry &quot;Stats&quot;" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/flurry-ios-vs-android-money-300x173.png" alt="Flurry &quot;Stats&quot;" width="300" height="173" /></a><p class="wp-caption-text">Flurry &quot;Stats&quot;</p></div>
<p>So, when Mr. &#8220;I made a popular app, so listen to what I have to say&#8221; publishes an article condemning a platform as &#8220;less popular&#8221; based on nothing but the user count of their own product between two platforms, what they&#8217;re actually demonstrating is that <em>they have failed</em> to consider the cultural and social differences between the users of each platform, and therefore their product is simply not as popular on one platform as it is on the other.</p>
<h3>The solution is fairly simple&#8230;<em></em></h3>
<p>What I am suggesting (<em>with the exception of such things as Games which will obviously want to look, feel and play the same way no matter the platform</em>) is that you should have an <em>entirely separate</em> design and development process for each target platform.</p>
<p>You need to research the differing cultures of each target platforms&#8217; respective users, and your design needs to reflect those differences as best you possibly can.</p>
<p>Even before you get to that stage, you need to actually consider whether your app (<em>at its most fundamental level</em>) is even remotely appealing to the users of each particular platform in the first place. There are certain types of app which hold little-to-no interest with the users of one platform, while standing to be immensely popular on another.</p>
<p>It is up to you (<em>and/or your design team</em>) to determine whether it is even worth pursuing a platform with your particular app.</p>
<p>One way of garnering this kind of information is to create a poll, asking your prospective users what their platform is, and whether your app is of interest to them. You can also visit community forums centric to particular platforms, and essentially &#8220;test&#8221; the popularity of your app as a concept before you even begin the detailed planning phase.</p>
<p>The best way to determine whether your particular app will be popular on any given platform is to diversify your team (<em>to have an equal number of designers and developers from each target platform</em>&#8216;s user-base). Ask their opinion, and value their genuine responses.</p>
<p>Should it be apparent that your app <em>could</em> be well-received by a particular platforms&#8217; user-base, allow your team(s) to come up with designs specific to each of those platforms, and invest as much time as it takes to achieve the full satisfaction of your design/development team(s).</p>
<blockquote><p>Remember: Most mistakes in the success of an app occur before development even begins; with poor planning, a poor design, or a lack of adequate market research.</p></blockquote>
<h2>In conclusion&#8230;</h2>
<p>I genuinely believe that if you heed the advice I have provided in this article, you and (<em>where applicable</em>) your team(s) will be able to produce a successful mobile app.</p>
<p>Failure need not be an option if you understand the users, the diversity of those users, the devices and their diversity. An idea is only poor if it is developed inconsiderately.</p>
<p>All of the mistakes I&#8217;ve indicated in this article are easy to avoid if you&#8217;re willing to put in the effort, and there is no reason why you shouldn&#8217;t be able to reach at least one market&#8217;s audience (<em>perhaps even all of them</em>).</p>
<h2>A shameless &#8220;plug&#8221;&#8230;</h2>
<p>Should you feel that the insights I have shared here are beneficial to your work, I am available (<em>through my company LaKraven Studios Ltd</em>) to contract as a consultant (<em>as well as a developer on certain platforms</em>).</p>
<p>I have proven experience in many facets of the software design, development, branding and marketing industry, as well as a wealth of resources I can bring to to any team. Above all, I <em>understand</em> the users of software! I may be able to spare your company from disappointment, as well as save you money (<em>and time</em>) on your investment.</p>
<p>My anti-Apple bias (<em>should that be of concern to you</em>) is one of business ethics. I acknowledge the merits of Apple&#8217;s products, and am more than happy to assist in the design/development process of apps on Apple platforms.</p>
<p>If this offer is of interest, feel free to leave a comment or contact me by any of the means displayed on the &#8220;<em>Contact Me</em>&#8221; widget on the right-hand column.</p>
<div id="attachment_1366" class="wp-caption alignright" style="width: 150px"><a href="http://www.simonjstuart.com/wp-content/uploads/2012/02/blackberry-broken.jpg"><img class=" wp-image-1366 " title="Blackberry" src="http://www.simonjstuart.com/wp-content/uploads/2012/02/blackberry-broken-233x300.jpg" alt="Blackberry" width="140" height="180" /></a><p class="wp-caption-text">Blackberry</p></div>
<h2>Whoops, I almost forgot&#8230;</h2>
<p>Blackberry devices exist too. I&#8217;m told people still use these, but nobody I know (<em>thus why I almost forgot about them</em>).</p>
<p>Feel free to leave the humorous comments expressing your hatred of me for the picture of the broken Blackberry&#8230; it&#8217;s meant in good fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/02/28/designing-apps-properly-accommodate-ios-android-windows-phone-markets/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>If you could have one new platform in Delphi XE3, which would it be?</title>
		<link>http://www.simonjstuart.com/2012/02/27/if-you-could-have-one-new-platform-in-delphi-xe3-which-would-it-be/</link>
		<comments>http://www.simonjstuart.com/2012/02/27/if-you-could-have-one-new-platform-in-delphi-xe3-which-would-it-be/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 04:51:50 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Polls]]></category>
		<category><![CDATA[XE3]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Arch]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[ArchLinux]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[CBuilder]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mint]]></category>
		<category><![CDATA[Novell]]></category>
		<category><![CDATA[OpenSUSE]]></category>
		<category><![CDATA[OS]]></category>
		<category><![CDATA[OSX]]></category>
		<category><![CDATA[Pascal]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[Poll]]></category>
		<category><![CDATA[Programmer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[rad]]></category>
		<category><![CDATA[Studio]]></category>
		<category><![CDATA[SUSE]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Win8]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WinRT]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1324</guid>
		<description><![CDATA[This poll is more out of curiosity than anything, but will also be useful in determining (somewhat) my direction in certain upcoming projects. Please take a moment to answer, and if you choose &#8220;Other&#8221;, I&#8217;d very-much appreciate it if you &#8230; <a href="http://www.simonjstuart.com/2012/02/27/if-you-could-have-one-new-platform-in-delphi-xe3-which-would-it-be/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This poll is more out of curiosity than anything, but will also be useful in determining (<em>somewhat</em>) my direction in certain upcoming projects. Please take a moment to answer, and if you choose &#8220;Other&#8221;, I&#8217;d very-much appreciate it if you wouldn&#8217;t mind leaving a comment to let me know what specific platform you&#8217;re interested in.</p>
<p><code>Note: There is a poll embedded within this post, please visit the site to participate in this post's poll.</code></p>
<p>Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/02/27/if-you-could-have-one-new-platform-in-delphi-xe3-which-would-it-be/feed/</wfw:commentRss>
		<slash:comments>44</slash:comments>
		</item>
		<item>
		<title>TTwitter, GeNUI and Lua4Delphi &#8211; Dev Focus</title>
		<link>http://www.simonjstuart.com/2012/02/23/ttwitter-genui-and-lua4delphi-dev-focus/</link>
		<comments>http://www.simonjstuart.com/2012/02/23/ttwitter-genui-and-lua4delphi-dev-focus/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 22:19:49 +0000</pubDate>
		<dc:creator>Simon J Stuart</dc:creator>
				<category><![CDATA[Announcements]]></category>
		<category><![CDATA[Components]]></category>
		<category><![CDATA[Delphi]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Game Engine]]></category>
		<category><![CDATA[Lazarus]]></category>
		<category><![CDATA[LKSL]]></category>
		<category><![CDATA[Lua]]></category>
		<category><![CDATA[Lua4Delphi]]></category>
		<category><![CDATA[TKinect]]></category>

		<guid isPermaLink="false">http://www.simonjstuart.com/?p=1251</guid>
		<description><![CDATA[Hi everyone, Recently I&#8217;ve been getting questions regarding progress on certain projects, so I thought I&#8217;d make things clear for everyone and declare my intended development focus. Lua4Delphi Lua4Delphi remains at the top of the list as it is already &#8230; <a href="http://www.simonjstuart.com/2012/02/23/ttwitter-genui-and-lua4delphi-dev-focus/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hi everyone,</p>
<p>Recently I&#8217;ve been getting questions regarding progress on certain projects, so I thought I&#8217;d make things clear for everyone and declare my intended development focus.</p>
<h2>Lua4Delphi</h2>
<p>Lua4Delphi remains at the top of the list as it is already available, in use by myself and others, and is closest to its final phase of development (<em>the open source portion, I mean</em>). The very next update is huge, and introduces the most impressive features such as the Wrapper Type support (<em>which works in two directions: wrapping Delphi types for use from Lua, and wrapping Lua-defined &#8220;virtual classes&#8221; for easy use from Delphi</em>).</p>
<p>A major refactoring took place over the last 48 hours, which bases every class on a corresponding set of Interfaces. This has been done to address some memory management considerations, as well as to make expansion and derivation substancially easier (<em>without having to break the interface</em>).</p>
<p>This update is going to be released next week, and I will be running multiple webinar sessions at that time to demonstrate all the new features (<em>and changes</em>). This update was originally scheduled for Sunday Feb 19th, but was postponed due to my having flu (<em>pretty hard to spend a few hours, several times in a day, talking to an online audience when you literally cannot speak</em>). The extra time afforded by the delay has actually been very good, since I&#8217;ve found and resolved bugs nobody has actually noticed thus far, but would be very problematic for those using Lua&#8217;s &#8220;Coroutines&#8221;!</p>
<p>The Professional suite is of particularly high priority as the final features are released!</p>
<h2>GeNUI</h2>
<p>Those not subscribed to the <a title="Blaise Pascal Magazine" href="http://http://www.blaisepascal.eu/" onclick="pageTracker._trackPageview('/outgoing/http_//www.blaisepascal.eu/?referer=');">Blaise Pascal Magazine</a> (<em>thus unable to have read my article in this month&#8217;s issue</em>) will be wondering what the GeNUI project is, but don&#8217;t worry it&#8217;s actually quite strait-forward.</p>
<p>You will know this project by its original (<em>old</em>) name, <strong>TKinect</strong>. With Microsoft&#8217;s recent utter betrayal of those of us whom created the PC demand for official Kinect support, myself and a few of the others whom have contributed to the development of the TKinect project began to look at other similar motion-based input devices available on the market. We quickly discovered the ASUS Xtion PRO Live, a controller using the pure PrimeSense technology and SDK, proving to be vastly superior to the Kinect in every single way (<em>including price</em>). As such, the focus of what was then known as the TKinect project shifted to support all motion-based input devices in this category. With that in mind, the name &#8220;TKinect&#8221; no longer makes sense, and so a new name was concieved.</p>
<p>GeNUI stands for &#8220;General Natural User Interface&#8221;</p>
<p>This project also expands its reach to Lazarus and FreePascal as well as Delphi, and targets Win32, Win64, Linux32, Linux64, and Mac OS X (<em>awaiting support for the PrimeSense SDK on OS X</em>).</p>
<p>GeNUI isn&#8217;t exactly going to happen over night! Unilaterally supporting different kinds of hardware with the same top-level components/controls is architecturally complex (<em>though not impossible as I have done this before</em>). I dare not speculate at this point when we can expect a production-ready release of the GeNUI suite&#8230; but the idea is to get this project moving forward very quickly.</p>
<p>If you own a Kinect for Windows controller (<em>I don&#8217;t, and I refuse to pay for one given that it&#8217;s identical in every way to the Xbox controller, and twice the price&#8230; for <strong>absolutely no reason</strong></em>), your assistance in testing would be very helpful. It appears as though Microsoft have screwed us all by revoking support the original Xbox controller on the final release version of the SDK (<em>certainly I have been unable to get it to work</em>).</p>
<h2>TTwitter</h2>
<p>I&#8217;m going to stop using the name TTwitter, and instead start using the name of the Social Networking component suite <strong>Social Delphi</strong>, which incorporates more than just Twitter integration for Delphi and FreePascal/Lazarus&#8230;. including other Social Networks (<em>such as LinkedIn and Google+</em>), but also other web-based APIs of worth.</p>
<p>Having spent incalculable amounts of time trying to patch up the existing version to address certain known bugs with the OAuth library, only to continue having bugs reported&#8230; <strong>I&#8217;ve scrapped the entire existing codebase and started again</strong>! Everything, right down to the architecture is being rebuilt, including my own OAuth and OAuth 2.0 libraries (<em>to replace the third-party one I&#8217;ve been having problems with</em>).</p>
<p>The new design provides a series of pre-compiled DLLs you can use to avoid all issues between Delphi and Indy versions. This also means that each portion of the suite can be used from other programming languages provided a viable &#8220;Header&#8221; to import the methods from the various DLLs.<br />
The DLLs provide support for ANSI and Unicode in the same way as the WinAPI (<em><strong>MethodNameA</strong> for ANSI Strings, <strong>MethodNameW</strong> for WideString</em>), and the individual Delphi/Lazarus components (<em>such as TTwitter</em>) simply provide a Class Layer on top of the flat imported API.</p>
<p>This project is being consistently and aggressively developed&#8230; with a release very soon (<em>sooner than you may think</em>)!</p>
<h2>Moving forward&#8230;</h2>
<p>These projects (<em>along with the LaKraven Studios Standard Library on which they&#8217;re built</em>) constitute the last of my open source developments. Other small open source projects may be released over time, but nothing on the scale of these.</p>
<p>The following projects are on indefinite hold for the forseable future (<em>due to time and financial constraints</em>):</p>
<ul>
<li><strong>ADL SDK for Delphi</strong> &#8211; Hit a major road-block with this long ago due to the complete lack of header units for <em>any</em> language from which to translate into Pascal. This project is <em>scrapped</em>!</li>
<li><strong>AGE (Another Game Engine)</strong> &#8211; As fun as it is to develop game engines, this project is far too time-consuming (<em>particularly with my original co-developer having to pull out due to his new job in South Africa</em>). This project isn&#8217;t scrapped, but is on <em>indeifinite hold</em>.</li>
<li><strong>Emotiv EPOC SDK for Delphi</strong> &#8211; Rolled in to the <strong>GeNUI</strong> project!</li>
<li><strong>LakRemotes</strong> &#8211; Very small project, with minimal growth expected. Given how easy it is to map remote controls, this project is not a problem at all.</li>
<li><strong>Link-Grammar Parser for Delphi</strong> &#8211; Minimal support and updates required, this project will be maintained <em>passsively</em>, and updated by request to support any changes in newer versions of the LGP DLL.</li>
<li><strong>RADPlates</strong> &#8211; Rolled into the <strong>RAD Power Pack</strong> project, which is not open source, and not entirely free (<em>the base is free, as is the RADPlates module</em>).</li>
<li><strong>TDockPanel</strong> &#8211; It works as intended, so no updates required. It&#8217;s basically just a composite component to make it quicker and easier to set up edge-aligned docking&#8230; consider it <em>complete</em>.</li>
<li><strong>TKinect</strong> &#8211; Rolled into the <strong>GeNUI</strong> project!</li>
<li><strong>TRttiIterator</strong> &#8211; Indefinite hold on future updates, but what&#8217;s already available works very well!</li>
<li><strong>TTwitter</strong> &#8211; Rolled into <strong>Social Delphi</strong>.</li>
</ul>
<p>My LuaRAD project has now become a commercial project! Given the scope and scale of it, it&#8217;s the only way I&#8217;m going to raise enough investment to hire the necessary development and support staff.</p>
<p><strong>All project pages will be updated this Sunday</strong>. Consider this a major downsizing of my active developments, in order to focus more heavily on the important ones.</p>
<p>It&#8217;s also important to remember that I make my money by doing contract development work. Clients take priority over personal projects, always!</p>
<h2>Blog Housekeeping</h2>
<p>Starting today, I&#8217;m going to start removing old blog articles, especially those serving as information leading towards a release. I&#8217;ve noticed that many people have been commenting on very old articles asking for download details which were provided in a later post. I&#8217;m tired of having to constantly point people in the direction of the actual release posts, so it&#8217;s just easier to remove the irrelevant.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simonjstuart.com/2012/02/23/ttwitter-genui-and-lua4delphi-dev-focus/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

