Entries Tagged as Mobile
September 28, 2011 · 1 Comment
Amazon has entered the tablet market. The Kindle Fire, however is not an "iPad killer".
[Read more →]
Tags:
Adobe · AIR · Amazon · Android · Apple · Flex · General · Mobile · User Experience
January 11, 2011 · 1 Comment
It's metadata processor time again! I love the Swiz Framework because it's so powerful, yet simple when you need it to be simple. That being said, it's also got the ability to be easily extended in the form of custom metadata processors. codeviously, I've worked with creating a [Scheduled("5000")] metadata processor, but this time decided to take a mobile twist. AIR for Android gives us some new functionality with relation to reading the GPS unit of the device. There's a new Geolocation class within the AIR API that gives you access to the data coming from the GPS. It can be a bit gnarly to work with and it's not necessarily the easiest thing to understand.
The [Geolocation] metadata processor seeks to simplify this usage as much as possible. To use it, you have to declare it in your Swiz configuration just as you would any other metadata processor:
<fx:Declarations>
<geolocation:GeolocationSetup id="geoSetup" stopOnDeactivate="true" updateInterval="30000"/>
<swiz:Swiz>
<swiz:beanProviders>
<config:Beans/>
</swiz:beanProviders>
<swiz:config>
<swiz:SwizConfig
setUpEventType="{ Event.ADDED_TO_STAGE }"
setUpEventPhase="{ EventPhase.CAPTURING_PHASE }"
setUpEventPriority="50"
tearDownEventType="{ Event.REMOVED_FROM_STAGE }"
tearDownEventPhase="{ EventPhase.CAPTURING_PHASE }"
tearDownEventPriority="50"
eventPackages="org.andypowell.examples.events"
viewPackages="org.andypowell.examples.views"
defaultFaultHandler="genericFaultHandler"
defaultDispatcher="global"/>
</swiz:config>
<swiz:customProcessors>
<processors:GeolocationProcessor config="{geoSetup}"/>
</swiz:customProcessors>
</swiz:Swiz>
</fx:Declarations>
This is pretty straightforward, however, you'll see another tag up there too: GeolocationSetup. This tag allows you to specify the updateInterval, or how long the app will wait until it tries to grab a new reading from the GPS, and the stopOnDeactivate variable. StopOnDeactivate will shutdown the GPS listeners when the application is moved to the background. There is generally not a reason why you'd set this to false since it has the possibility to kill your device's battery by constantly polling the GPS.
Usage of the Geolocation metadata tag is pretty straightforward, as well.
...
[Geolocation]
public function updateLocation(latitude:Number,longitude:Number):void{
...
}
...
The method updateLocation will automatically be called at the updateInterval's next run.
What does this mean for the developer who wants to use this? It means you don't have to mess with setting up listeners with NativeApplication or listeners for Geolocation when it updates the lat/lon. It really simplifies the whole process for you. Head over to my github page and download the metadata processor and examples for yourself. Remember, it requires the Flex 4.5 SDK so make sure you grab that first.
Tags:
Adobe · AIR · Android · Flex · General · Mobile · Swiz · Universal Mind
2007. That's the last time we saw any true innovation in mobile hardware. That's the year that the first iPhone was introduced. Here, we are now, three years and three versions of the iPhone later and we've seen no significant innovations in mobile hardware. Sure, we've seen cameras with better resolution and faster processors, but those are just natural evolutions of technology that would be happening anyway. There has been no innovative development of hardware (or it's interactions) since that first iPhone set the new standard for mobile devices and how we use them.
If there's no innovation happening in the hardware world at this time, then where does it happen? It happens the only other place it can: software. Android devices are no more innovative, from a hardware standpoint, than the iPhone. The thing that differentiates them is the software, the content available. It does us well to remember, also, when the iPhone first came out, it was closed to developers. Only when third-party developers started building applications did it truly become a "must-have" device. One look at Apple's advertising validates this. Most of their advertising, these days, centers around applications that run on the device, not the device itself. Software developers are now responsible for creating content that is making these devices indispensable. Once again, content is king.
Innovation is coming by leveraging the platform that is provided to us as developers. We can use the cameras on these devices to create cutting edge augmented reality (AR) applications or whatever our imaginations can come up with to build. As developers, we have the platforms, the canvases, laid before us. It's up to us to work within those platforms to create the content that compels people towards the devices. That's why you see Apple touting and enabling (if not subsidizing) big-ticket apps like Netflix and Farmville. They want that content on their devices. Content is king.
Consider the case of Farmville. Android is on the brink of the 2.2 (Froyo) update. This will bring Flash to the Android platform in a viable way. With that addition of Flash, comes one of the most popular applications on Facebook right now, Farmville (built in Flash). Well, Apple being Apple, recognizes how popular that content is and wants it on their device. So it makes sense for them to do all they can to make sure that content is on their device first. Content compels the consumer.
It's not just about creating the software, though. As with everything else, the experience is what compels us to use these devices, for developers and consumers. There are really two major choices of platform when it comes to the discussion on differing mobile experience: iOS and Android. These two experiences, for developers, couldn't be more different, either. One is a closed, controlled, borderline totalitarian environment, whereas the other is more akin to a wild-west free for all with zero moderation. Neither can survive in their present form. There has to be a balance between control and openness in the content that is made available to these platforms. Getting quality content that consumers want to the consumers is absolutely crucial.
That balance between closed and open is very important because, once struck, it will compel more developers to build across platforms and create consistent experiences across all platforms. An experience must be consistent with the host platform as well as other implementations of the application. If an application has differing aesthetics across platforms, then the brand value is lost. If it doesn't interact as a native application should, on a given platform, then usability and user trust is lost. It's a tricky balance that must be struck to have a successful multi-platform effort. If the content is inconsistent and unusable it will not compel people to the target platform. Usable content compels the users to a given platform.
Real innovation in the mobile space is happening in software now. The time for hardware innovation has passed for the time being, now it's time for developers to continue to take these platforms and provide the next wave of innovation. It's time to deliver that compelling content that drives the mobile space to the next level. It's time for developers to step up and embrace the challenge of innovation. It's time for us to deliver compelling, usable content and continue the innovation in the mobile space.
If we do this, then we push the platforms we use as our canvases to innovate and, in turn, the hardware to innovate. It's a circle of innovation that we are all responsible for maintaining. As long as that cycle of innovation continues, we will continue to be amazed and inspired by what our peers are building as well as the platforms on which we build our inspiring and compelling content.
Tags:
Adobe · AIR · AJAX · Apple · ColdFusion · Flex · General · Google · Java · Mobile · Silverlight · Universal Mind · User Experience · WAP