trying to learn Android and missing webOS
Mood: angry
Posted on 2011-08-22 21:53:00
Tags: rant essay programming android
Words: 596
So, here's my plan: try to port FlightPredictor to Android and Windows Phone 7. Hopefully this will lead me toward which platform I'd rather own. Note: I am definitely not abandoning webOS, but I need a new phone and since the Pre3 is only being released in Europe and the European Pre3's will work on AT&T or T-Mobile but won't get 3G service, that's not gonna work.
So! First up is Android, mostly because I can develop for it on Linux. But it's not off to a good start. I'm reading through the mounds of documentation and not getting much of anywhere.
The very first screen in FlightPredictor shows a list of flights with their status and such. So I need to define a list in the UI and each list item I want to display certain properties of the Flight object.
In Enyo (the newest webOS framework), this is pretty easy. My list item code looks like:
and so on, and the code to display it looks something like:{kind: 'HFlexBox', name: 'downTarget', components: [
{kind: 'VFlexBox', components: [
{kind: 'HFlexBox', className: 'flightsList info', components: [
{name: 'flightAirlineNameAndNum', allowHtml: true, content: ''},
{name: 'flightSummary', allowHtml: true, className: 'summary', content: ''},
]},
{kind: 'HFlexBox', name: 'cities', className: 'flightsList cities', components: [
{name: 'flightOriginCity', allowHtml: true, content: ''},
{allowHtml: true, content: ' to '},
{name: 'flightDestinationCity', allowHtml: true, content: ''},
]},
{kind: 'HFlexBox', name: 'times', className: 'flightsList cities', components: [
{name: 'departureTime', allowHtml: true, content: ''},
{allowHtml: true, content: ' - '},
{name: 'arrivalTime', allowHtml: true, content: ''},
]},
]},
...
and so forth.this.$.flightAirlineNameAndNum.setContent(flight.airline.name + ' ' + flight.num + ' ');
if (flight.category == FlightPredictor.FlightCategories.Current) {
this.$.flightSummary.setContent(flight.summary);
this.$.flightSummary.setClassName('summary ' + flight.summaryClass);
}
if (this.showCities && flight.category == FlightPredictor.FlightCategories.Current) {
this.$.cities.setShowing(true);
this.$.flightOriginCity.setContent(flight.originAirport.city);
this.$.flightDestinationCity.setContent(flight.destinationAirport.city);
} else {
this.$.cities.setShowing(false);
}
...
4 comments
Comment from spchampion:
2011-08-22T22:30:43+00:00
Are you definitely a "no" on iOS?
Comment from gregstoll:
2011-08-22T22:33:55+00:00
Not definitely, but probably. Partially because the opportunity for developing iOS apps is much less exciting (I specialize in apps that interact with a service, and any service worth anything already has an iOS app), partially because I don't have a Mac anymore, and partially because in a perverse way I like supporting competition and rooting for the underdog.
Is iOS what you're using these days?
Comment from spchampion:
2011-08-22T22:37:39+00:00
Crazy alternate idea: since you like the Javascript approach so much, skip the whole native app thing and develop for mobile web instead. It changes how you monetize, but you could either do advertisements or subscriptions. The big advantage is that you can target every mobile platform instead of just one - which means a much bigger potential audience.
Plus, tools like jQuery Mobile are dead simple. And you can do some incredible stuff with HTML5.
Comment from gregstoll:
2011-08-23T10:15:20+00:00
Ooh, I do like me some Javascript :-) But I think there are two big problems:
- Being in various app catalogs gives me major discoverability. If you have an existing brand then you have a decent shot of people coming to your website naturally, but I have no brand :-)
- A lot of the features that I think add a lot of value require using an API. The biggest example is notifications, or getting the app to wake up at a specific time - pretty sure there's no way to do this with just a web app.
That's an interesting idea though...
This backup was done by LJBackup.