<?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>Flogging English &#187; iPhone</title>
	<atom:link href="http://floggingenglish.com/tag/iphone/feed/" rel="self" type="application/rss+xml" />
	<link>http://floggingenglish.com</link>
	<description>Too close for missiles; switching to guns....</description>
	<lastBuildDate>Fri, 04 May 2012 04:30:25 +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>Big brands go mobile &#8211; even if they don&#8217;t know why</title>
		<link>http://floggingenglish.com/2011/06/21/big-brands-go-mobile-even-if-they-dont-know-why/</link>
		<comments>http://floggingenglish.com/2011/06/21/big-brands-go-mobile-even-if-they-dont-know-why/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 18:22:09 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Blatherings]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Mobile Dev]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[branding]]></category>
		<category><![CDATA[corporate]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1473</guid>
		<description><![CDATA[The list of brands out there with an app has a lot of girth to it, and is growing faster than a snotty little girl who just ate the 3 course dinner piece of gum. Unfortunately, not all of them are doing something unique, usable, or even all that interesting, and ends up being another [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-full wp-image-1537" title="Smart Phone" src="http://floggingenglish.com/media/contentMedia//2011/06/smart-phone_small.jpg" alt="smart phone" width="150" height="230" />The list of brands out there with an app has a lot of girth to it, and is growing faster than a snotty little girl who just ate the 3 course dinner piece of gum. Unfortunately, not all of them are doing something unique, usable, or even all that interesting, and ends up being another case of &#8220;just because you can, doesn&#8217;t mean you should.&#8221; The most successful apps serve a purpose, fill a void, are radically different than anything else (<strong><a title="Flipboard for iPad" href="http://flipboard.com/">Flipboard</a></strong>), or are successfully aimed at the community (<strong><a title="Alien Blue HD for iPad" href="http://itunes.apple.com/us/app/alien-blue-hd-reddit-client/id390863118?mt=8">Alien Blue</a></strong>)in which it was meant to serve. It&#8217;s a simple formula to imagine, but it&#8217;s incredibly difficult to hit center-mass, and most miss even the most carefully placed dog-targets.</p>
<p>It&#8217;s easy to look at huge numbers and say these are the brands that uncorked a whopper, I mean just take a gander at some of these numbers (which are likely out of date):</p>
<ul>
<li>Barclaycard - Waterslide - <strong>9,800,000</strong></li>
<li>Zippo &#8211; Virtual Lighter - <strong>6,000,000</strong></li>
<li>eBay - Marketplace - <strong>4,600,000</strong></li>
<li>Audi - A4 Driving Challenge  - <strong>3,500,000</strong></li>
<li>Bank of America - Mobile Banking - <strong>3,000,000</strong></li>
<li>Coca Cola - Spin the Bottle - <strong>870,000</strong></li>
<li>IBM/Amex - U.S. Open - <strong>450,000</strong></li>
<li>Stanley Works - Level - <strong>400,000</strong></li>
<li>North Face - Snow Report - <strong>300,000</strong></li>
<li>vitaminwater - Sound Lab - <strong>250,000</strong></li>
<li>Zipcar - Zipcar App - <strong>170,000</strong></li>
</ul>
<p>At first glance you would say these guys all got it right, but you have to look a little deeper, and relate those numbers to the size of the user base, and the size of that Brands community. Naturally those companies with huge communities and ubiquitous brand recognition are going to have massive downloads. How else can you explain all of the downloads Coke, <strong><a href="http://itunes.apple.com/us/app/spin-the-coke/id303018470?mt=8">Spin the Bottle</a> </strong>has received? That app is only slightly better than the <strong><a title="iGlowStick" href="http://itunes.apple.com/us/app/iglowstickpro/id336918946?mt=8">iGlow stick</a></strong> app.</p>
<p>Now look at the Kmart and <strong><a title="Sears2go app" href="http://itunes.apple.com/us/app/sears2go/id305449194?mt=8">Sears</a></strong> apps, which are nothing more than another way to shop on your iPhone. What value does an app that all but replicates the shopping experience in Safari add to that brands community? Not much, and their 2.5 star rating reflects that.</p>
<p>So who has gotten it right? <strong><a title="Virtual Zippo lighter" href="http://itunes.apple.com/us/app/virtual-zippo-lighter/id291622252?mt=8">Zippo</a></strong> is an easy target for a brand that hit the mark. They have more than 6 million downloads on an app that basically does nothing, and provides no real value other than entertainment novelty. I know that sounds like a slam, but it doesn&#8217;t really have to be. It was something that fit perfectly into their community, and what a lot of people were looking for as a fun way to show their attachment to the iconic pocket lighter. Gap is another example with their <strong><a title="1969 stream" href="http://itunes.apple.com/us/app/gap-1969-stream/id364203948?mt=8">1969 Stream iPad app</a></strong>. It&#8217;s a well designed, well functioning advertising piece that is just fun to look at and flip through, and has a <strong><a title="Gap 1969 stream" href="http://www.gap1969.com/#/WallView/Womens,Mens/5e8ceca5-b096-46e2-9ecc-e4ed5faeec17/">companion website</a></strong>; or the app is the companion to the website &#8211; either way, good jaeerb guys!</p>
<p>There are tons more, too many to list in fact, and a lot of them are really well designed and developed, and a lot of them are junk; but that&#8217;s okay. Even the failures are doing their job, and hopefully the brands are learning from them and working on doing a better job for the next rev. See, that&#8217;s the key here.</p>
<p>Everyone wants to be the next Angry Birds, or Victoria Secret Pink, but what they lose sight of is that they really need to just be themselves, and be true to the personality of their brand. Getting caught up in being the next &#8220;big thing&#8221; is only going to get you so far. Failure is always an option.</p>
<p>So what am I saying here? I&#8217;m saying do your homework, and eat your veggies. Do the research. Spend some money, and build something your kids would want to use. Find a void and fill it with your app. Do something ridiculous and borderline crazy just to see what happens. But know why you&#8217;re doing it, and it can&#8217;t be because your competitors are. If that&#8217;s the only reason, then you might as well just follow the rest of the Lemmings&#8230;&#8230;</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2011%2F06%2F21%2Fbig-brands-go-mobile-even-if-they-dont-know-why%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1473"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2011/06/21/big-brands-go-mobile-even-if-they-dont-know-why/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple could learn a thing or two from Microsoft</title>
		<link>http://floggingenglish.com/2010/04/14/apple-could-learn-a-thing-or-two-from-microsoft/</link>
		<comments>http://floggingenglish.com/2010/04/14/apple-could-learn-a-thing-or-two-from-microsoft/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 01:39:23 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[Blatherings]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Op/Ed]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[cross-compilers]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1333</guid>
		<description><![CDATA[Apple takes a lot of heat from it&#8217;s developers for its processes and rules regarding iPhone application development mainly because of poor decisions, lack of communication and the simple fact that they don&#8217;t embrace their developers. This is further emphasized in section 3.3.1 the new version of the iPhone Developer Program License Agreement which developers [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><div>Apple takes a lot of heat from it&#8217;s developers for its processes and rules regarding iPhone application development mainly because of poor decisions, lack of communication and the simple fact that they don&#8217;t embrace their developers. This is further emphasized in section 3.3.1 the new version of the iPhone Developer Program License Agreement which developers must agree to before downloading the 4.0 SDK beta:</div>
<div>
<div id="bodyText">
<blockquote><p>3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).</p></blockquote>
<p>What this means to me is that cross-compiling applications like Titanium, Unity3D, Ansca, MonoTouch and the one that I was really interested in, the Adobe Flash to iPhone compiler that is shipping in Flash CS5. I can certainly understand how they would want to be able to control the quality of the apps built to their devices, or emphasize building applications to the strengths of their device, but is the right way to go about really by isolating developers? There are a lot of brilliant programmers out there that could take advantage of any of these applications to build really cool, useful and top notch apps for the iPhone platform that may not really want to be constrained to use xcode on the mac.</p>
<p>Look at Microsoft for a minute, ignoring for a second the awesome <strong><a href="http://www.youtube.com/watch?v=KMU0tzLwhbE" target="_blank">video of Ballmer</a></strong> dancing around the stage screaming developers, developers, developers, developers, and see that they love their developers and treat them very well. Besides being everyones favorite whipping boy, Microsoft really has a good crew of developers. Some are MVPs, others have the blue badge, and there are lots of talented people that are fanatical about developing for them.</p>
<p>Apple has fanatical developers too, don&#8217;t get me wrong, and there are a lot of really talented ones too. But everyone recognizes that the system and policies behind the iPhone application development process and platform is insanely flawed and that Apple doesn&#8217;t care what the developers want in this regard.</p>
<p>Honestly, I was really looking forward to trying the new CS5 features, and this iPhone conversion tool was one of the things I was really excited about. Apple seems to have a thing for Adobe these days with refusing to get Flash on any of their mobile devices, and now this. It seems to me there should be a little more give in there somewhere, I mean, I&#8217;m pretty certain that without Adobe, Apple would have likely folded a long time ago.</p>
<p>This isn&#8217;t to say I&#8217;m going to stop developing for the iPhone, but it does give me something to think about every single time that something like this comes to light. Apple has one of the most closed systems around, but they also have the most reliable hardware that I have ever used. There&#8217;s no magic bullet on this one, and you can&#8217;t please everyone, but there has to be a better middle ground solution than what&#8217;s being presented to us so far.</p>
</div>
</div>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2010%2F04%2F14%2Fapple-could-learn-a-thing-or-two-from-microsoft%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1333"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2010/04/14/apple-could-learn-a-thing-or-two-from-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2D codes market gets crowded with proprietary marks</title>
		<link>http://floggingenglish.com/2010/02/21/2d-codes-market-gets-crowded-with-proprietary-marks/</link>
		<comments>http://floggingenglish.com/2010/02/21/2d-codes-market-gets-crowded-with-proprietary-marks/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 13:20:07 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[Blatherings]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mobile Dev]]></category>
		<category><![CDATA[2d code]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[jagtag]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[mobile content]]></category>
		<category><![CDATA[qr code]]></category>
		<category><![CDATA[scanlife]]></category>
		<category><![CDATA[semacode]]></category>
		<category><![CDATA[shotcode]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1306</guid>
		<description><![CDATA[2D codes are becoming more mainstream here in the US, and there are more and more instances of them popping in your daily life. The problem is, most people still have no idea what they are or how to read them, and having half a dozen or more different types isn&#8217;t helping. The newest code [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-full wp-image-1307" title="QR Code" src="http://floggingenglish.com/media/contentMedia//2010/02/qr-code-bag.jpg" alt="" width="260" height="350" />2D codes are becoming more mainstream here in the US, and there are more and more instances of them popping in your daily life. The problem is, most people still have no idea what they are or how to read them, and having half a dozen or more different types isn&#8217;t helping.</p>
<p>The newest code to hit the scene is <strong><a title="JAGATG" href="http://www.jagtag.com" target="_blank">JAGTAG</a></strong>, which I ran across for the first time in the latest <strong><a title="SI Swimsuit 2010" href="http://sportsillustrated.cnn.com/2010_swimsuit/" target="_blank">Swimsuit Edition of SI</a></strong>. Calling this one a 2D code is sort of a misnomer as I see it though. In order to get the content, you have to shoot a picture of the tag, then SMS it to a number, which unfortunately (for them) costs me money. This is a decent idea for when you don&#8217;t have signal to just automatically grab the featured content from the code, but it adds another step, and as well know, people are lazy. <strong><a title="Website Magazine" href="http://www.websitemagazine.com" target="_blank">Website Magazine</a></strong> uses yet another iteration from <strong><a title="ScanLife 2D codes" href="http://www.scanlife.com" target="_blank">ScanLife</a></strong> which is just close enough to fool the average user to thinking that their existing QR Code reader would read it &#8211; but it doesn&#8217;t. So even though I have a subscription to this magazine at work, I have never followed one of these codes, since my readers won&#8217;t san them. There are others too, like <strong><a title="ShotCode" href="http://www.shotcode.com" target="_blank">ShotCode</a></strong> and <strong><a title="Semacode" href="http://semacode.com" target="_blank">Semacode</a></strong>, both of which are different still from a standard <strong><a title="QR Codes" href="http://en.wikipedia.org/wiki/QR_Code" target="_blank">QR Code</a></strong> and proprietary.</p>
<p>The problem with these proprietary codes is that they are closed systems, and out of the 3 readers I have on my iPhone, none of them read any of these other codes. In fact, without licensing from all of these folks, I would have no way of making an app that would read them all, and even then there&#8217;s really no way I could make it available for free. And if it&#8217;s not free, at least for a 2D code reader, it won&#8217;t ever be ubiquitous. The marketing shlock behind all of these other codes is that theirs is better, unique and has some feature that makes it a good choice. They all tout their reach into the mobile market, and how they <strong><em>can</em></strong> be read by millions. Sure it&#8217;s possible, but not as likely as if they were simply using QR Codes. <strong><a href="http://en.wikipedia.org/wiki/QR_Code" target="_blank">QR Codes</a></strong> have been around for nearly 20 years now, have a much broader reach than all of these other codes combined, and are completely open and free to generate. Free is the key component here.</p>
<p>There are plenty of cool examples of QR Codes out in the wild, and I have quite a few listed in <strong><a title="Flogging English on QR Codes" href="http://floggingenglish.com/?s=qr+codes" target="_blank">these posts on my blog</a></strong>. Google, just a couple of months ago, created a new opportunity for popular business in the search results to display QR Code window stickers with their <strong><a title="Google Favorite Places" href="http://googleblog.blogspot.com/2009/12/explore-whole-new-way-to-window-shop.html" target="_blank">Favorite Places program</a></strong>. If I planning a campaign for my magazine, print advertising, or other promotion where a 2D code would be a viable component, there&#8217;s no way I would pay for a proprietary code on top of the advertising and development of the program. With marketing budgets being downsized on all fronts, why would anyone use a closed system that they can&#8217;t maintain themselves? Why should I pay someone else to create something I could create myself in less than 2 minutes, especially since no technical expertise is required to generate a QR Code. A great example is the generator at <strong><a title="QRStuff - QR Code generator" href="http://www.qrstuff.com/" target="_blank">QRStuff.com</a></strong> &#8211; online, simple and versatile.</p>
<p>I can&#8217;t really fault these companies for trying to create a new way of building a code, and trying to make money from it, but I would have used QR Codes as the basis of it. They&#8217;re simply more ubiquitous and at the end of the day, you want the greatest number of people to be able to access the content behind the code, and having a closed system isn&#8217;t going to get you there.</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2010%2F02%2F21%2F2d-codes-market-gets-crowded-with-proprietary-marks%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1306"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2010/02/21/2d-codes-market-gets-crowded-with-proprietary-marks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SQLite for iPhone apps</title>
		<link>http://floggingenglish.com/2010/02/06/sqlite-for-iphone-apps/</link>
		<comments>http://floggingenglish.com/2010/02/06/sqlite-for-iphone-apps/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 13:11:26 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[FIB-U-LATOR]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sqllite]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1292</guid>
		<description><![CDATA[I recently updated the FIB-U-LATOR app to have more excuses, and I&#8217;ve decided to add another update, only this time I am going to add support for expanded features that require the use of the SQLite Database available to the app in the SDK. Getting data out of the database is pretty easy actually, and [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://floggingenglish.com/media/contentMedia/2010/02/sqllite-1.png" rel="lightbox[1292]"><img class="alignright size-full wp-image-1293" title="MikeTs SQLite manager" src="http://floggingenglish.com/media/contentMedia//2010/02/sqlite-1-small.png" alt="" width="240" height="166" /></a>I recently updated <strong><a title="FIB-U-LATOR" href="http://perubique.com/apps/app-portfolio.php" target="_blank">the FIB-U-LATOR app</a></strong> to have more excuses, and I&#8217;ve decided to add another update, only this time I am going to add support for expanded features that require the use of the SQLite Database available to the app in the SDK. Getting data out of the database is pretty easy actually, and it really doesn&#8217;t take much code to connect to, then retrieve data. Here&#8217;s a <strong><a title="dBlog - SQLite tutorial for iPhone dev" href="http://dblog.com.au/iphone-development-tutorials/iphone-sdk-tutorial-reading-data-from-a-sqlite-database/" target="_blank">quick tutorial over at dBlog</a></strong>, but I&#8217;m getting ahead of myself.</p>
<p>Since I work with MSSQL all the time at the day job, I&#8217;m really accustomed to having a nice GUI to do all the work of creating and managing my databases, and I really have no inclination whatsoever to do any of those tasks at the command line. None at all, no thanks. It didn&#8217;t take me long to find this simple, easy to use GUI called <strong><a title="MikeT's Database App" href="http://www.saxmike.com/MySoftware/MySoftware.asp?Menu=MYSOFTWARE" target="_blank">MikeT&#8217;s SQLite Database Management Application</a></strong>. It is very basic, and simple, but you really don&#8217;t need anything more than that. It&#8217;s fast, simple to figure out, and <a href="http://floggingenglish.com/media/contentMedia//2010/02/sqlite-2.png" rel="lightbox[1292]"><img class="alignright size-full wp-image-1294" title="sqlite-2-small" src="http://floggingenglish.com/media/contentMedia//2010/02/sqlite-2-small.png" alt="" width="240" height="166" /></a>jammed with a bunch of options. You can add encryption when you create the database, and has a dropdown to select the column data type while adding new rows to the table, you can even import data from a tab delimited file to create a new database.</p>
<p>I have some work ahead of me to get my current data into the new database yet, and ideally what I would like to be able to do is convert the plist file to a tab delimited file and just import it. Right now, I&#8217;m not sure how to do that. <strong><a title="EditiX XML editor" href="http://www.apple.com/downloads/macosx/development_tools/editixxmleditor.html" target="_blank">EditiX</a></strong> seems like it&#8217;s a good option, but I haven&#8217;t tried it. There&#8217;s also a big <strong><a title="XmacL XML editors for OS X" href="http://xmacl.com/" target="_blank">list of XML editors for OS X at XMacL</a></strong>. <strong><a title="Oxygen XML Editor" href="http://www.oxygenxml.com/xml_editor.html" target="_blank">Oxygen XML Editor</a></strong> seems like a really powerful option, but it&#8217;s a bit pricey at $350.00 for a single license. I&#8217;d rather hand-jam all of the entries than spend that kind of scratch for an app to do it, I only have a few hundred entries anyway, so it wouldn&#8217;t be a horrible march of death to get it done the hard way.</p>
<p>More to come as I get further into this.</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2010%2F02%2F06%2Fsqlite-for-iphone-apps%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1292"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2010/02/06/sqlite-for-iphone-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recording, editing and optimizing audio for iPhone development</title>
		<link>http://floggingenglish.com/2010/01/25/recording-editing-and-optimizing-audio-for-iphone-development/</link>
		<comments>http://floggingenglish.com/2010/01/25/recording-editing-and-optimizing-audio-for-iphone-development/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 03:22:50 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[AVAudioPlayer]]></category>
		<category><![CDATA[channels]]></category>
		<category><![CDATA[compression]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mono]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[sound effects]]></category>
		<category><![CDATA[sounds]]></category>
		<category><![CDATA[stereo]]></category>
		<category><![CDATA[wav]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1285</guid>
		<description><![CDATA[It&#8217;s no secret that I have another iPhone app in the works, and that it will be available soon. Although, I have been reluctant to give out a lot of detail simply because, well, I&#8217;m a bit paranoid. I will say that it involves Brent and I recording audio for playback in the app, and [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-full wp-image-1288" title="mic" src="http://floggingenglish.com/media/contentMedia//2010/01/mic.jpg" alt="" width="180" height="240" />It&#8217;s no secret that I have another iPhone app in the works, and that it will be available soon. Although, I have been reluctant to give out a lot of detail simply because, well, I&#8217;m a bit paranoid. I will say that it involves Brent and I recording audio for playback in the app, and that it has been interesting working with audio on the iPhone.</p>
<p>The first thing I noticed straight away is that it&#8217;s easy to use files that are far too large for the iPhone to playback properly while working with .wav files. I started working with .wav files for two reasons. The first being that I have a ton of them, and that made it easy to drop files in to test with. Second, compressed audio files cannot be overlapped on the iPhone, so if you want them to play simultaneously, .wav files are your Huckleberry.</p>
<p>First, I needed a microphone that wasn&#8217;t going to sound like an AM Radio, so I went out (dispatched the wife actually &#8211; thanks dear) and picked up a <a href="http://www.amazon.com/gp/product/B000EOPQ7E?ie=UTF8&amp;tag=floggengli-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=B000EOPQ7E"><strong>Blue Snowball</strong></a><img style="border: none !important; margin: 0px !important;" src="http://www.assoc-amazon.com/e/ir?t=floggengli-20&amp;l=as2&amp;o=1&amp;a=B000EOPQ7E" border="0" alt="" width="1" height="1" />. As it turns out, the Snowball is every bit as good as the reviews says it is, and I would highly recommend it. With the Snowball plugged in, SoundBooth open, we were all set and the recording commenced. Recording the audio was easy the most enjoyable part of the project so far, once the app comes out, you&#8217;ll see why.</p>
<p>When we were finished, I ended up with about two dozen CD quality .wav files, which still needed to be trimmed down. The files ranged in file size from 300k up to about 1.2mb. I trimmed the up, but left them as dual-channel files and tried to get them to run in my app. Needless to say the files choked both my iPod and iPhone and needed to be optimized for them to work. I tried a few things, and didn&#8217;t get very far in SoundBooth, so I opened them up in Audacity and removed one of the channels and converted them to mono. I also took the time to trim the ends so there wasn&#8217;t a lot of unneeded dead-space. The files are all now between 20k and 120k in size, and still sound as well as they play.</p>
<p>I have two different players in action on a couple of views in the app, and one has a single track playing at a time using AVAudioPlayer. Through digging around in some of Apple&#8217;s sample code, and online info (particularly from <strong><a title="iPhone DEV SDK" href="http://www.iphonedevsdk.com" target="_blank">iPhone Dev SDK</a></strong>) I was able to get it work.</p>
<p>Here&#8217;s the .h code:</p>
<pre class="brush: c#">

#define kAccelerationThreshold	1.8
#define kUpdateInterval			(1.0/10.f)

#import &lt;UIKit/UIKit.h&gt;
#import &lt;AVFoundation/AVFoundation.h&gt;
#include &lt;AudioToolbox/AudioToolbox.h&gt;

@interface TauntViewController : UIViewController &lt;UIAccelerometerDelegate, AVAudioPlayerDelegate&gt; {

AVAudioPlayer		*_player;

NSArray				*soundArray;

BOOL				soundEnded;

}

@property (nonatomic, assign) AVAudioPlayer*	_player;
@property (nonatomic, retain) NSArray *soundArray;

@property (nonatomic, assign) BOOL soundEnded;

- (IBAction)playTheSound;
- (IBAction)resetSound;

@end</pre>
<p>And the .m file code:</p>
<pre class="brush: c#">

#import &quot;SoundViewController.h&quot;

#import &lt;AudioToolbox/AudioToolbox.h&gt;

@implementation SoundViewController

@synthesize _player;

@synthesize soundArray;

@synthesize soundEnded;

- (void)viewWillAppear:(BOOL)animated{

UIAccelerometer *appAccel = [UIAccelerometer sharedAccelerometer];

appAccel.delegate = self;

appAccel.updateInterval = kUpdateInterval;

soundEnded = YES;

// Load the array with the sample file

soundArray = [[NSArray alloc] initWithObjects:@&quot;sound1&quot;, @&quot;sound2&quot;, @&quot;sound3&quot;, @&quot;sound4&quot;, @&quot;sound5&quot;, @&quot;sound6&quot;, nil];

}

- (void)viewDidLoad {

[super viewDidLoad];

}

- (void)startPlayback{

if ([self._player play]){

self._player.delegate = self;

}

else

NSLog(@&quot;Could not play %@\n&quot;, self._player.url);

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

}

- (void)viewDidUnload {

[_player release];

}

- (void)dealloc {

[super dealloc];

}

#pragma mark -

- (void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration{

if (sqrt(acceleration.x * acceleration.x) &gt; kAccelerationThreshold || sqrt(acceleration.y * acceleration.y) &gt; kAccelerationThreshold || sqrt(acceleration.z * acceleration.z) &gt; kAccelerationThreshold) {

[self playTheSound];

}

}

- (void)playTheSound{

// play the sound file

if (soundEnded) {

soundEnded = NO;

int soundId = random() % soundArray.count;

NSString *newSound = [soundArray objectAtIndex:soundId];

NSURL *sound1URL = [[NSURL alloc] initFileURLWithPath: [[NSBundle mainBundle] pathForResource:newSound ofType:@&quot;wav&quot;]];

self._player = [[AVAudioPlayer alloc] initWithContentsOfURL:sound1URL error:nil];

[self startPlayback];

}

}

- (void)resetSound{

soundEnded = YES;

}

#pragma mark AVAudioPlayer delegate methods

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{

[self resetSound];

[player setCurrentTime:0.];

}

@end</pre>
<p>This selects a random sound from the soundArray into the player every time you shake the device, so long as there is not a sound currently playing. A couple of things I had to do which I am not sure if it&#8217;s the best way to handle it or not is adding the initialization of AppAccel for the Accelerometer in the ViewWillAppear function so that it loads the correct sounds for the view being currently used.</p>
<p>With the optimized sounds, the code works great. I thought about trying the sounds at a higher quality, in stereo, and using MP3s, but I haven&#8217;t tried it yet. Honestly I&#8217;m not sure I will since the files are so small, they sound quite good, and I&#8217;m not sure if there would be anything to gain by using MP3s over the .wav files.</p>
<p>Like I said the app will be out soon, so I hope everyone will like it as much as I do.</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2010%2F01%2F25%2Frecording-editing-and-optimizing-audio-for-iphone-development%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1285"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2010/01/25/recording-editing-and-optimizing-audio-for-iphone-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Someone at Geico is using their noodle</title>
		<link>http://floggingenglish.com/2010/01/13/someone-at-geico-is-using-their-noodle/</link>
		<comments>http://floggingenglish.com/2010/01/13/someone-at-geico-is-using-their-noodle/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 22:27:30 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[Blatherings]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[bad]]></category>
		<category><![CDATA[brilliant]]></category>
		<category><![CDATA[commercial]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[Geico]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[ringtone]]></category>
		<category><![CDATA[social]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1275</guid>
		<description><![CDATA[http://www.youtube.com/watch?v=jNvo3dR3RIA I saw this commercial for the first time last night, and the first thing I did was stop it, and tell the little lady that I damn well better be able to go to Geico.com and download that ringtone. I&#8217;m sure there was trailing&#8217;s off as I finished watching it and rewound it to [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://www.youtube.com/watch?v=jNvo3dR3RIA">http://www.youtube.com/watch?v=jNvo3dR3RIA</a></p>
<p>I saw this commercial for the first time last night, and the first thing I did was stop it, and tell the little lady that I damn well better be able to go to <a title="Geico.com" href="http://www.geico.com" target="_blank"><strong>Geico.com</strong></a> and <a title="Bosses ringtone - Geico" href="http://www.geico.com/about/commercials/music/ringtones/" target="_blank"><strong>download that ringtone</strong></a>. I&#8217;m sure there was trailing&#8217;s off as I finished watching it and rewound it to listen to the ringtone again, but the gist is just that.</p>
<p>Since I had some free time today sitting and waiting around for an appointment, I decided to head out the on my venerable iPhone, and see if I could get it. And you know what? You can. Honestly, I am kind of shocked. Shocked in the way that I can actually go and do something so makes so much perfect sense that most people wouldn&#8217;t even think twice about it being available. Unfortunately, too often companies miss the boat, and someone along the way makes a bad decision to not do finish the implementation. That&#8217;s what this is too, it&#8217;s just another step in the whole campaign, not another extra, or silly download that most people don&#8217;t care about. Fact is, most people don&#8217;t care until you don&#8217;t give them the option that they expect to have &#8211; then they get all seven kinds of bent.</p>
<p>+1 internets to Geico. Great JJEEEOOORRRGGGHHHBBB!!!!</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2010%2F01%2F13%2Fsomeone-at-geico-is-using-their-noodle%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1275"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2010/01/13/someone-at-geico-is-using-their-noodle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Designing mobile websites for the iPhone</title>
		<link>http://floggingenglish.com/2009/10/24/designing-mobile-websites-for-the-iphone/</link>
		<comments>http://floggingenglish.com/2009/10/24/designing-mobile-websites-for-the-iphone/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 14:32:27 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mobile Dev]]></category>
		<category><![CDATA[detect mobile]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[mobile design]]></category>
		<category><![CDATA[mobile devices]]></category>
		<category><![CDATA[mobile web site]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1227</guid>
		<description><![CDATA[Even before I finally had an iPhone magically bestowed upon me (thanks to the fam!), I had a HP iPaq mobile player &#8211; and have been fascinated with designing and building sites for the mobile web. I&#8217;ve been designing and developing websites for more than a decade now, and while I wouldn&#8217;t say it&#8217;s old [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Even before I finally had an iPhone magically bestowed upon me (thanks to the fam!), I had a HP iPaq mobile player &#8211; and have been fascinated with designing and building sites for the mobile web. I&#8217;ve been designing and developing websites for more than a decade now, and while I wouldn&#8217;t say it&#8217;s old hat just yet, I do get into a routine often enough that it gets to be &#8220;been there, done that&#8221;, and can get a little tedious.</p>
<p>Mobile browsers have their own set of problems, and if you thought you had it rough with IE, Opera, Firefox, and Safari, then you&#8217;ve got another think coming my friend. There are so many variables with mobile devices that it is a real challenge to get it right, and it would be damned near impossible to do it across all devices. That being said, if you have a solid understanding of standards oriented design, then you have an excellent start.</p>
<p>Before you start building, the first thing you should do is examine your site analytics to determine who is on your site, what content they are accessing, and with what mobile OS and browsers. If 98% of your site&#8217;s visitors are using Safari on the iPhone/iPod, then why spend a lot of time getting it to look perfect on another device or devices? I&#8217;m not saying ignoring those other devices, but they would not be the primary viewer, so the bulk of the time should be spent developing for the primary target. Analyzing the site&#8217;s statistics will also tell you what content to focus on for the mobile site. Since bandwidth, screen resolution and speed are important on mobile devices, you should trim the fat of your site, and not delivering everything but the kitchen sink; that&#8217;s what your regular site is built for.</p>
<p><a href="http://floggingenglish.com/media/contentMedia//2009/10/iPhone_facebook_notifications.jpg" rel="lightbox[1227]"><img class="alignright size-medium wp-image-1229" title="Facebook app notifications screen" src="http://floggingenglish.com/media/contentMedia//2009/10/iPhone_facebook_notifications-210x300.jpg" alt="Facebook app notifications screen" width="147" height="210" /></a>Once you have determined what platform(s) you are developing for, then you can start in on the design and build.  For the sake of argument, I am going to focus on the iPhone. Keeping in mind that the screen size of the iPhone is 320 x 480 (pixel size), work through the design and make choices based on those dimensions. Be sure to plan for large buttons too, I can&#8217;t tell you how much of a pain it is to hit some of the little text buttons on some sites, and even some iPhone apps. Take for instance this screen shot of the Facebook app, and the little text link you have to hit to view your post when someone comments on it from the update screen &#8211; that&#8217;s something you want to avoid. If you are in need of some inspiration check out <a title="Smashing Magazine" href="http://www.smashingmagazine.com" target="_blank"><strong>Smashing Magazine</strong></a>, they have a truck-load of great information compiled. In specific I recommend these two articles; <a title="Mobile Web Design Trends for 2009" href="http://www.smashingmagazine.com/2009/01/13/mobile-web-design-trends-2009/" target="_blank"><strong>Mobile Web Design Trends for 2009</strong></a> and <a title="Showcase of Designs Optimized for iPhone" href="http://www.smashingmagazine.com/2009/09/27/showcase-of-designs-optimized-for-iphone/" target="_blank"><strong>Showcase of Designs Optimized for iPhone</strong></a>. Now is also the time to decide if you want to support both landscape and portrait modes in your layout.</p>
<p>Let&#8217;s assume you have your layout planned out now, and are ready to start coding.The first thing you should code and implement is a way to determine if your visitor is on a desktop or mobile device, and I have some code that works quite well. In a post from earlier this month, I showed off some code I have been working for <a title="Mobile device detection with .NET C#" href="http://floggingenglish.com/2009/10/03/mobile-device-detection-with-net-c/" target="_blank"><strong>mobile device detection in .net.</strong></a> Of course not everyone is a slave to Microsoft, and I really don&#8217;t use much of it outside of my day job, so having something for a PHP solution would be handy as well. I found some <a href="http://floggingenglish.com/2009/06/18/mobile-device-support-through-javascript-and-css/" target="_blank"><strong>useful PHP and JavaScript code</strong></a> earlier this year as well.</p>
<p>Of course, there are also specific elements you need to add to the head of the page(s) to ensure that your site fits properly within the viewport of the iPhone, otherwise your site will scale by default in Safari, and not look or work as intended. The first meta tag viewport, does just that and ensure a proper fit, while the second simply includes an image for bookmarking.</p>
<pre class="brush: html">&lt;head&gt;
&lt;title&gt;iPhone site | hooray!&lt;/title&gt;
&lt;meta name=&quot;viewport&quot; content=&quot;width=device-width; initial-scale=1.0; maximum-scale=1.0;&quot; /&gt;
&lt;link rel=&quot;apple-touch-icon&quot; href=&quot;/media/images/site-logo-icon.png&quot;/&gt;
&lt;/head&gt;</pre>
<p>This is the bare minimum, mind you, and there is more that you can code in page if you want deal with orientation as well. Here&#8217;s another great post <a title="How to build a website for iPhone" href="http://www.engageinteractive.co.uk/blog/2008/06/19/tutorial-building-a-website-for-the-iphone/" target="_blank"><strong>from Engage Interactive on building a website for the iPhone.</strong></a> The majority of the site should just be well written, valid code and you will be able to support the iPhone and beyond.</p>
<p>For you WordPress folks out there, <a title="WPTouch" href="http://wordpress.org/extend/plugins/wptouch/" target="_blank"><strong>WPTouch</strong></a>. It&#8217;s a great plugin that transforms your blog into an iPhone application styled site. I&#8217;ve had it running on Flogging English for a few weeks now, and while there are some plugin incompatibilities, it handles that well and I haven&#8217;t had any issues with WPTouch not working.</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2009%2F10%2F24%2Fdesigning-mobile-websites-for-the-iphone%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1227"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2009/10/24/designing-mobile-websites-for-the-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile device detection with .NET C#</title>
		<link>http://floggingenglish.com/2009/10/03/mobile-device-detection-with-net-c/</link>
		<comments>http://floggingenglish.com/2009/10/03/mobile-device-detection-with-net-c/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 12:41:03 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Mobile Dev]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[detection]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[phone]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1219</guid>
		<description><![CDATA[Back in June I wrote about supporting mobile devices with JavasScript and CSS, and at my day job we have been tracking a very significant growth pattern of mobile devices accessing our core domain, so it&#8217;s time to take some real action and work towards much better, more streamlined support of these platforms. I&#8217;ve worked [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Back in June I wrote about <a href="http://floggingenglish.com/2009/06/18/mobile-device-support-through-javascript-and-css/" target="_blank"><strong>supporting mobile devices with JavasScript and CSS</strong></a>, and at my day job we have been tracking a very significant growth pattern of mobile devices accessing our core domain, so it&#8217;s time to take some real action and work towards much better, more streamlined support of these platforms.</p>
<p>I&#8217;ve worked with a variety of tool sets recently to accomplish too, on <a title="Post anonymously to twitter" href="http://twanonymously.com" target="_blank"><strong>twanonymously.com</strong></a> I integrated PHP mobile device detection to redirect to <a title="Post anonymously to twitter" href="http://m.twanonymously.com/" target="_blank"><strong>m.twanonymously.com</strong></a> for a mobile device. What I haven&#8217;t finished there yet though, is the design. It&#8217;s basically the same thing with some CSS alterations to maintain consistency. But that will come later. At my day job, we are a .NET shop, so I have to find a better solution, one robust enough to handle the 1.2 million daily pageviews we serve up.</p>
<p>The code I am working, <a href="http://blog.abwebsitedesign.com/post/2009/07/25/updated-mobile-web-browser-detection-redirection-c-sharp-aspnet.aspx" target="_blank"><strong>started from code</strong></a> I found over here at Web Design Blog, and I have been modifying it to cover a few more devices, specifically ones that are in our top 10. iPod and iPhone are the top two, in that order, followed by T-Mobile Sidekick, and then Android, and after that&#8230;. the Sony PSP. Go figure on the PSP. So these are the devices in need of immediate support, and luckily they are all similar in screen dimensions, so no drastic changes for each platform need to be made.</p>
<p>What I&#8217;m still working on is trying to figure which devices actually identify themselves as a mobile device when you use <strong>IsMobileDevice</strong>. So far, iPod, iPhone, BlackBerry do not. My Windows Mobile does though, and I don&#8217;t know about the PSP or Android as I have neither. Here&#8217;s <a href="http://www.zippo.com/mobile_test_2.aspx" target="_blank"><strong>a link to a test page</strong></a> I have set up so you can see the output. If you feel like testing a device, feel free to post the results in the comments.</p>
<p>Here&#8217;s the code I have so far:</p>
<pre class="brush: html">

&lt;%@ Page Language=&quot;C#&quot; ContentType=&quot;text/html&quot; ResponseEncoding=&quot;utf-8&quot; %&gt;

&lt;script language=&quot;c#&quot; runat=&quot;server&quot;&gt;
protected void Page_Load(Object Src, EventArgs E){
if (Request.Headers[&quot;User-Agent&quot;] != null){
if (Request.Browser[&quot;IsMobileDevice&quot;] != null &amp;amp;amp;&amp;amp;amp; Request.Browser[&quot;IsMobileDevice&quot;] == &quot;true&quot;){
// MOBILE DEVICE DETECTED --------------------------------------
DeviceType.Text = &quot;Mobile Device&quot;;

// CHECK USER AGENTS STRINGS FIRST --------------------------------

if (Request.UserAgent.ToLower().Contains(&quot;windows&quot;)){
DeviceName.Text = &quot;Windows Mobile&quot;;
} else  if (Request.UserAgent.ToUpper().Contains(&quot;MIDP&quot;) || Request.UserAgent.ToUpper().Contains(&quot;CLDC&quot;)){
DeviceName.Text = &quot;Other&quot;;
} else  if (Request.UserAgent.ToLower().Contains(&quot;psp&quot;) || Request.UserAgent.ToLower().Contains(&quot;playstation portable&quot;)){
DeviceName.Text = &quot;Sony PSP&quot;;
}

} else if (Request.UserAgent.ToLower().Contains(&quot;blackberry&quot;)){
// DOES NOT IDENTIFY ITSELF AS A MOBILE DEVICE
// RIM DEVICES (BlackBerry) -------------
DeviceType.Text = &quot;Mobile Device&quot;;
DeviceName.Text = &quot;BlackBerry&quot;;

} else if (Request.UserAgent.ToLower().Contains(&quot;iphone&quot;)){
// DOES NOT IDENTIFY ITSELF AS A MOBILE DEVICE

// IPHONE/IPOD DEVICES ------------------
DeviceType.Text = &quot;Mobile Device&quot;;
DeviceName.Text = &quot;iphone&quot;;

} else {

// NOT A MOBILE DEVICE
DeviceType.Text = &quot;NOT a Mobile Device&quot;;

}
}

// SPIT OUT A BUNCH OF STUFF -----------------------------------------
System.Web.HttpBrowserCapabilities browser = Request.Browser;
string s = &quot;&lt;strong&gt;Browser Capabilities&lt;/strong&gt;&lt;br /&gt;&quot;
+ &quot;Type = &quot;                    + browser.Type + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Name = &quot;                    + browser.Browser + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Version = &quot;                 + browser.Version + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Major Version = &quot;           + browser.MajorVersion + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Minor Version = &quot;           + browser.MinorVersion + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Platform = &quot;                + browser.Platform + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Is Beta = &quot;                 + browser.Beta + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Is Crawler = &quot;              + browser.Crawler + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Is AOL = &quot;                  + browser.AOL + &quot;&amp;amp;lt;br /&amp;amp;gt;&quot;
+ &quot;Is Win16 = &quot;                + browser.Win16 + &quot;&lt;br /&gt;&quot;
+ &quot;Is Win32 = &quot;                + browser.Win32 + &quot;&lt;br /&gt;&quot;
+ &quot;Supports Frames = &quot;         + browser.Frames + &quot;&lt;br /&gt;&quot;
+ &quot;Supports Tables = &quot;         + browser.Tables + &quot;&amp;&lt;br /&gt;&quot;
+ &quot;Supports Cookies = &quot;        + browser.Cookies + &quot;&lt;br /&gt;&quot;
+ &quot;Supports VBScript = &quot;       + browser.VBScript + &quot;&lt;br /&gt;&quot;
+ &quot;Supports JavaScript = &quot;     +
browser.EcmaScriptVersion.ToString() + &quot;&lt;br /&gt;&quot;
+ &quot;Supports Java Applets = &quot;   + browser.JavaApplets + &quot;&lt;br /&gt;&quot;
+ &quot;Supports ActiveX Controls = &quot; + browser.ActiveXControls
+ &quot;&lt;br /&gt;&quot;;

DeviceStats.Text = s;

// SPIT OUT THE WHOLE USER AGENT --------------------------------------------
DeviceAgent.Text = Request.UserAgent;

}

&lt;/script&gt;

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;Mobile Device detection&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&amp;&gt;
body{color:#666;font:76% Tahoma, Geneva, sans-serif;}
strong{color:#000;}
#mobile{margin:10px; width:365px;border:1px solid #060;padding:5px}
#stats{margin:10px; width:365px;border:1px solid #CCC;padding:5px}
#agent{margin:10px; width:365px;border:1px solid #000;padding:5px}
#device{margin:10px; width:365px;padding:5px;color:#000;font-weight:bold;font-size:1.5em;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;h1 id=&quot;device&quot;&gt;&lt;asp:Label ID=&quot;DeviceType&quot; runat=&quot;server&quot; /&gt;&lt;/h1&gt;
&lt;div id=&quot;mobile&quot;&gt;&lt;asp:Label ID=&quot;DeviceName&quot; runat=&quot;server&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;stats&quot;&gt;&lt;;asp:Label ID=&quot;DeviceStats&quot; runat=&quot;server&quot; /&gt;&lt;/div&gt;
&lt;div id=&quot;agent&quot;&gt;&lt;asp:Label ID=&quot;DeviceAgent&quot; runat=&quot;server&quot; /&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2009%2F10%2F03%2Fmobile-device-detection-with-net-c%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1219"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2009/10/03/mobile-device-detection-with-net-c/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>FITC Mobile 2009 &#124; totally awesome in Toronto</title>
		<link>http://floggingenglish.com/2009/09/16/fitc-mobile-2009-totally-awesome-in-toronto/</link>
		<comments>http://floggingenglish.com/2009/09/16/fitc-mobile-2009-totally-awesome-in-toronto/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 02:54:23 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Gaming]]></category>
		<category><![CDATA[Geeking Out]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[social networking]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Blackberry]]></category>
		<category><![CDATA[FITC]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Motorolla]]></category>
		<category><![CDATA[RIM]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1213</guid>
		<description><![CDATA[I just returned home yesterday from the first ever FITC Mobile up in Toronto, and if I was still of the drinking persuasion, I would raise a pint to Shawn and all of the other amazing FITC staff and volunteers who makes these events so bloody awesome! Every one of the events I have attended [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I just returned home yesterday from the first ever <a href="http://www.fitc.ca/events/about/?event=92" target="_blank"><strong>FITC Mobile</strong></a> up in Toronto, and if I was still of the drinking persuasion, I would raise a pint to Shawn and all of the other amazing <a href="http://www.fitc.ca" target="_blank"><strong>FITC</strong></a> staff and volunteers who makes these events so bloody awesome! Every one of the events I have attended from them is amazing. Flash in the Can is always my favorite, but they are all top notch. The David Carson workshop a couple years ago was brilliant.</p>
<p>I always come back from these things energized and ready to take on the world again with new ideas and exposure to all sorts of tools, designs, people, and technology that I hadn&#8217;t heard of knew little about. FITC Mobile was no exception. The top 3 for me were sitting in with <a href="http://www.dollarapp.com" target="_blank"><strong>Dom Sagolla</strong></a>, <a href="http://www.bradygilchrist.com" target="_blank"><strong>Brady Gilchrist</strong></a>, and of course, <a href="http://www.moock.org" target="_blank"><strong>Colin Moock</strong></a>. The only real down side is figuring out how to make all (hell, I&#8217;d settle with one or two) of the things swimming around in my cranium become some semblance of a reality.</p>
<p>The coolest thing I learned about was <a href="http://www.playmegaphone.com" target="_blank"><strong>MegaPhone</strong></a>. So basically, it&#8217;s a Flash built gaming engine that allows players to call in using a mobile or standard phone and play games against multiple players from any location. They have some great things going on, have some cool games and more information on their site. I would love to get something like this going at work.</p>
<p>Being a mobile conference, there were a lot of sessions on iPhone dev and marketing, but they ran the gamut from Blackberry, to Windows Mobile. One things that I will be using on my next app will be <a href="http://www.appcelerator.com/products/titanium-mobile/" target="_blank"><strong>Titanium Mobile</strong></a> from appcelerator. Titanium Mobile allows you to build native iPhone and Android apps using HTML and JavaScript, and it looks really cool. Just the other day, a friend of mine <a href="http://crunchlife.com" target="_blank"><strong>Ryan</strong></a>, sent me a link to <a href="http://infoworld.com/d/developer-world/iphone-gets-net-app-development-194" target="_blank"><strong>an article about using .NET to build iPhone apps</strong></a>.</p>
<p>So now I want to be able to build simultaneously to iPhone and Android, so I will need an Android phone. I also have ideas for about 6 more iPhone apps, a couple of web sites, and some other things as well. Great. Last time I checked I&#8217;m just one dude who already has a full-time gig. I guess I&#8217;m going to have to prioritize a few things.</p>
<p>Now if only I can figure out how to squirrel away another extra 3 or 4 hours in the day, I&#8217;ll be all set to make millions&#8230;..</p>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2009%2F09%2F16%2Ffitc-mobile-2009-totally-awesome-in-toronto%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1213"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2009/09/16/fitc-mobile-2009-totally-awesome-in-toronto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Great Googily Moogily! FIB-U-LATOR goes live!</title>
		<link>http://floggingenglish.com/2009/08/18/great-googily-moogily-fib-u-lator-goes-live/</link>
		<comments>http://floggingenglish.com/2009/08/18/great-googily-moogily-fib-u-lator-goes-live/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 01:00:41 +0000</pubDate>
		<dc:creator>retsoced</dc:creator>
				<category><![CDATA[App Development]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Geeking Out]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[excuses]]></category>
		<category><![CDATA[FIB-U-LATOR]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[iPod]]></category>
		<category><![CDATA[itunes]]></category>

		<guid isPermaLink="false">http://floggingenglish.com/?p=1187</guid>
		<description><![CDATA[A picture is worth a thousand words, or maybe just 99 cents! As of just a few minutes ago, FIB-U-LATOR went live in the app store. Thanks to everyone for help, encouragement, sarcasm and most of all&#8230;. excuses! DOn&#8217;t forget to sign up on the Facebook fans page too, it&#8217;s been a lot of fun [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://floggingenglish.com/media/contentMedia//2009/08/appStore_fibulator.png" rel="lightbox[1187]"><img class="alignright size-medium wp-image-1188" title="appStore_fibulator" src="http://floggingenglish.com/media/contentMedia//2009/08/appStore_fibulator-300x196.png" alt="appStore_fibulator" width="189" height="123" /></a>A picture is worth a thousand words, or maybe just 99 cents! As of just a few minutes ago, FIB-U-LATOR went live in the app store.</p>
<p>Thanks to everyone for help, encouragement, sarcasm and most of all&#8230;. excuses! DOn&#8217;t forget to sign up on the <a href="http://www.facebook.com/pages/FIB-U-LATOR/119723581371?ref=ts" target="_blank"><strong>Facebook fans page</strong></a> too, it&#8217;s been a lot of fun (and work) to get here, and I&#8217;m really excited. If you couldn&#8217;t tell&#8230;.</p>
<p>Check it out, buy it, and give awesome ratings!</p>
<h3><a href="itms://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=326102167&amp;mt=8&amp;s=143441" target="_blank"><strong>Get FIB-U-LATOR from the App Store.</strong></a></h3>
<div id="facebook_like"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Ffloggingenglish.com%2F2009%2F08%2F18%2Fgreat-googily-moogily-fib-u-lator-goes-live%2F&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:80px;" allowTransparency="true"></iframe></div><div class="shr-publisher-1187"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://floggingenglish.com/2009/08/18/great-googily-moogily-fib-u-lator-goes-live/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

