|
Mobile Development
|
|
Sunday, 25 July 2010 14:43 |
|
My wife and I recently got new smart phones. We are joined at the hip with AT&T so our phone choices were dictated by that. My wife ended up with the iPhone 4 and I chose the HTC Aria, which runs Android (version 2.1 at the moment). Since we have been excited about and learning our phones together, I feel like I've got a pretty good, unbiased view of why you might prefer one over the other.
Why you will love iPhone 4
- Fast & Responsive - Android devices are catching up, but no Android I have tried is quite as fast and responsive as an iPhone
- Excellent Hardware (screen, camera, etc) - The camera on the iPhone 4 takes much better pictures than the HTC Aria. However, there are plenty of other Androids out there with amazing hardware.
- FaceTime - I have not found any software comparable to iPhone 4's FaceTime for the Android, nor does my Aria have a camera on the front to make it possible. This is lame that it is only available through Apple though. You should be able to accomplish this with Skype. I have to think that in the not too distant future there will be Android devices available with a camera on the front and with Skype to use this camera. However, AT&T seems to like blocking out cool apps, so even if that does become available, AT&T might block me from using it unless I root my device.
- Easy to learn and use
- No backups necessary - On my Aria, I'm starting to get quite a few pictures, videos, purchased apps and purchased music. I need to backup all of this stuff. I also need to copy files the other way such as new music from my PC. I need some kind of two-way sync application and I haven't found a decent one just yet. With iPhone 4 (or any of Apple's products) you don't have to worry about this. iTunes takes care of it all for you. I have to admit that is pretty nice.
- Apps in App Store are higher quality on average - Sure the Android App Marketplace is catching up in terms of number of apps, but a lot of them are crap quality. I even found a "Hello World" app. Seriously? It seems to me that it is easier to get an app into the Android Marketplace than into Apple's. This has an upside in that Google doesn't try to control everything. But the downside is that there really is a lot more junk to sift through.
- Better speaker in a better place - The speaker on the iPhone4 is fantastic for such a small device. The speaker on my Aria is pretty good, but not quite as good. The real problem is that it is on the back of the device and is VERY muffled when the phone is set on it's back, which is how you'll always want to set it. And if you're watching a You Tube video, the people around you will hear the audio better than you will.
- Netflix - There is now a Netflix app for iPhone and I'm soooo jealous of my wife over this one since there is no such app for Android. Maybe you don't care about Netflix, but the broader point here is that major apps tend to come out on the iPhone first because it has a larger user base.
Why you will love HTC Aria (& other Android devices)
- Open - Not tied to Apple or Google or anybody - I hate the fact that I own a ton of music that can only be played on iTunes. Amazon has a nice app for this now.
- More flexible system components (e.g. keyboard) - Pretty much everything in the system can be replaced, such as the keyboard. Don't like the keyboard? No problem. Try another. Don't like the keyboard on your iPhone 4? Too bad, you're stuck with it.
- Stock keyboard has mic option - That's right, you can just click the little mic button and say what you're thinking instead of typing it. I have found it to be pretty darn accurate too.
- Smaller - This applies specifically to my Aria. Since I carry my phone around in my pocket a lot, this is pretty nice.
- Less fragile, case is not a must - The iPhone 4 is glass and very breakable. The Aria is lighter and has a mostly plastic exterior and seems less likely to break if you drop it. I'll still use a case with mine, but it's not nearly as crucial as with the iPhone 4.
- Develop apps on any platform - If you want to develop apps for the iPhone, you need a Mac.
- Easily replace or upgrade parts - Want more memory? Just buy a new Micro SD card (I just bought a 16 GB one from Amazon for $27) and put it in. Want more memory for your iPhone 4? Well, first of all and iPhone with more memory will cost you an arm an a leg. Second, it is not upgradeable. You're stuck with your choice.
- Less intrusive notifications - Every notification on the iPhone has it's own popup and chime. If you have a lot on your schedule and you go on vacation, upon your return, you'll get chimed over and over for each event before you will be allowed to use your phone. On Android devices, the alerts are displayed all at once (not just calendar alerts, all alerts) and you can choose to ignore them and look at them later or just dismiss them all at once.
|
|
Mobile Development
|
|
Wednesday, 16 June 2010 07:53 |
|

There's about a million different ways to embed flash. It's not as simple as just embedding it like you would an image. You need to deal with browser compatibility problems, the fact that active content won't run automatically on IE without some help, how to degrade gracefully on devices that don't support flash (e.g. iPad), and more.
I found an article on A List Apart called Flash Embedding Cage Match by Bobby Van Der Sluis which explains the whole situation very well. If you want to really understand what's going on, read that article. Don't worry, it's a quick read. In the article, he doesn't really claim which option is best, but in my opinion, SWFObject either wins or is at least a tie. Note that the article is a tad old and SWFObject 2 has since been released.
So, if you just need to embed some flash quickly, just check out swfobject on Google Code. This library offers two means of embedding flash (static and dynamic), depending on your preferences. I suggest using the dynamic method because it offers superior degradation and is more simple. The downside is that your flash content will only show if flash and JavaScript are both supported. That is acceptable in most circumstances.
Here's how it works:
- Create some static (non-flash) content to show in case flash is not available
- Include swfobject.js
- Call swfobject.embedSWF() with a few simple parameters
Here's some actual code:
<div id="my_flash_content">
<p>Flash is not available, here's a cool image instead...</p>
<img src="waycoolimage.jpg" />
</div>
Generally you can just do this manually (it's really easy). However, if you want to get a little deeper into what options are available for configuring flash, swfobject_examples.zip contains an application (in Adobe AIR and HTML formats) that guides you through all of the various configuration options. Read more about this on the SWFObject 2 beginner's guide.
|
|
Mobile Development
|
|
Saturday, 27 March 2010 00:46 |
|
Mobile development traditionally requires that you develop custom applications for each device that you want to support. For many apps, there is now a better way. You can develop your apps just once, and do so in plain old HTML, CSS and JavaScript. This means huge development cost savings and fast development time. I'll share some links to get you started and a few thoughts of my own.
What makes all of this possible?
- The latest smart phones have excellent built-in browsers. So, step 1 is just making a website that looks good at smaller resolutions (such as 320x460 for the iPhone).
- HTML5, which is supported by most smart phones (such as iPhone, Android and Blackberry), allows your website to work offline, as well as providing an improved rich user experience.
- PhoneGap allows you to wrap it all up in native applications for many devices. This allows you distribute your app in various application stores. PhoneGap also provides JavaScript access to some native device capabilities such as GPS.
To get started, I recommend How to Make an HTML5 iPhone App from Six Revisions. I was able to read this tutorial and implement a proof of concept application in about 20 minutes.
Considerations
- You can only access native device features that are exposed via PhoneGap. Therefore, it is possible that you won't be able to access a feature that you need.
- High-performance apps are probably not good candidates for an HTML5 app. Although you can do some cool stuff with HTML5 Canvas, the performance is not good enough for anything serious, especially 3D gaming.
- I can't find anything on PhoneGap's website explaining how you could restrict use of your app to paying customers. Your app will essentially be a public website wrapped in a native application, so who's to stop someone from just navigating to the website directly? You might require a login to use your app or perhaps there is a solution for this that I'm not aware of. So, if requiring payment to use your app is important, you'll need to research into this before considering an HTML5 app.
|
|