Google Android

mikelove

皇帝
Staff member
But we're also talking about learning Chinese on devices people want to carry around anyway, for which games are very much a big deal. If we just wanted to make the ultimate Chinese dictionary we'd take our (hopefully-forthcoming) profits from iPhone and invest them in developing a dedicated standalone Pleco hardware gadget (based on some Windows CE reference design), but I doubt we'd sell 1% as many of those as we'll sell copies of our iPhone software.

Also, that "rollout of application stores from both smartphone vendors and network operators" line has me very very worried - the second worst thing that can happen to Android is for developers to be forced to juggle 20 different app submission processes just to get their app onto everyone's phones, and since Android's open-source there's unfortunately not even that much Google can do to stop it. Sideloading might be a partial workaround, but there'll be a plethora of no-sideloading-allowed phones soon if they aren't out already - carriers want control and have the means to get it, at least here in the US.

(the worst thing that can happen to Android is for Google to screw their hardware partners by releasing a Google-branded phone and beating them out on price / visibility / features, but it looks like they might actually be threatening to do that)
 

gato

状元
Right, it seems that Google seems to be having second thoughts about the "let one hundred flowers bloom" strategy and is trying to seize more control of the platform.

It's not whether one of us care about games or not. I haven't played since the 1990s myself, but games are a good proxy for
system capability and performance. Just as game developers are flocking to the iPhone, so are developers of other applications that require native-level performance.

As a consumer, I want there to be competition and would like both Android and Palm Pre to keep the pressure on Apple. But it seems that Google's attention is too divided. I don't know what it's trying to accomplish with putting out two OS'es, both Android and Chrome, for instance. Palm, on the other hand, seems to be stuck in the PDA age and thinks that people will be happy with HTML + javascript apps. They don't seem to recognize that because of the iPhone, the smartphone is the new laptop, and people are demanding laptop-level performance on their smartphones. The iPhone is offering that, and if the others can't, they will not be able to catch up.
 
So the Nexus One (a.k.a. the Google Phone) has been announced. Read more about it here.

One nice feature is that EVERY text field is voice enabled. So any text field (whether in an app or a system screen) you can just say something and it magically becomes text. That would be pretty cool for a dictionary, don't you think?

BTW - this shows that user satisfaction for Android devices (72%) is almost as high as iPhone (77%) and much much higher than Windows Mobile (25%), Palm (33%) and Blackberry (41%).
 

mikelove

皇帝
Staff member
Might be, but I'm not sold on mobile voice recognition yet - the Nuance stuff on iPhone is very spotty, anyway - on top of which it's kind of awkward to be yelling random words you want to look up into your cell phone's mic. Personally I'm hoping the Ballmer keynote will include an extended preview of WM7 and a Motorola executive coming on stage to announce a Windows-Mobile-powered Droid (in a not-so-subtle This-Is-What-You-Get-For-Releasing-An-Official-Google-Phone-To-Compete-With-Your-So-Called-Partners move).
 
Voice recognition is improving all the time. I've seen several video reviews of it working with Google turn-by-turn navigation app and it gives impressive results. My main point is that its available for EVERY text field in every app - I think this would be true for not just new apps but existing apps too so apps do not need to be rebuilt to take advantage of this (though I could be wrong). I suppose iPhone could provide this too, but that wouldn't work with custom-built text fields (which I think Pleco uses right?).

Really? Do you think talking to a phone (note - you don't have to bring it up to your mouth) is more awkward than using a keyboard (soft or hard)?
 

mikelove

皇帝
Staff member
That's voice recognition in a specialized context, though - there's a big difference between that and using it for general-purpose text input. Just as, for example, a Chinese handwriting recognizer would be astonishingly accurate if it was only designed to recognize radicals and nothing else. Whereas a dictionary is exceedingly non-specialized; getting a voice recognizer to accurately transcribe tens of thousands of context-free words (by themselves, not even part of sentences where you can get some cues about whether they're verbs / nouns / etc) is still a long way away, even humans are often borderline at that.

But I wasn't suggesting that talking would be an awkward interface physically, rather socially - there are a lot of situations where one might want to look up a word on one's cell phone where talking wouldn't be OK. And I don't imagine voice recognition would work with custom-built text fields on Android either - it's pretty much implicit about a custom-built text field that the operating system won't recognize it as a text field. (unless it's a subclass, but that can be dicey in practice)
 

character

状元
mikelove said:
My Android hatred isn't irrational - Google has come along and created an OS which is specifically very difficult for us to develop for, requiring not only extensive rewrites but a forking of our code base that would mean a whole lot of extra work every time we want to add a new feature in the future.
I don't know what your code is like, but perhaps it isn't very object-oriented. If you move to a more MVC-based design, you might be able to isolate the changes required by each platform. For ex, keep your model in C on all platforms.

There's also my hatred of ports in general - I really really really don't want to have to spend yet another long stretch of time / shell out yet another large batch of license fees just to once again get the exact same app working on yet another platform which will inevitably become obsolete in a couple of years. We're not making better software that way, we're just making the same software over and over and over again.
You're meeting people's needs and keeping competitors from building a beachhead in your niche. Also, there are companies who will port software to different mobile platforms. Obviously there are many pitfalls with that approach too.

And at that point I'd rather just give up on native development altogether and start doing everything online, at least that way we'd only have to implement each new feature once.
I hate to tell you this Mike, but there is more than one kind of browser. :wink:
 

mikelove

皇帝
Staff member
Our code already nicely isolates the cross-platform bits, but the problem is that calling into C from Java on Android is just too complicated - the amount of packaging / unpackaging required on each end of those calls and the near impossibility of debugging them (or of debugging non-Java code in a Java program on Android in general) means that we'd be spending almost as much time on that as we would on simply rewriting everything in Java.

And I'd contend that adding new features both meets people's needs and fends off competitors better than porting to another platform does - there are a lot of cool improvements we'd like to make, all of which could make our software better for people who already own it and many of which haven't even been conceived of by our competitors yet.

And yes, there's more than one kind of browser, but for smartphones you can pretty much just develop for WebKit and ignore everybody else - the only interesting mobile platform that doesn't have WebKit built-in is Windows Mobile and I have to think there'll be a free one for it soon. (quite possibly Google Chrome, actually)
 

mfcb

状元
mikelove said:
And I'd contend that adding new features both meets people's needs and fends off competitors better than porting to another platform does

100% your opinion, hehe.

being a software developer myself for more than 25 years, i never heard of an implementation of a certain application in 2 different (even similar) programming languages (except the "hello world" thingy :lol: ). there might be reasons to switch the language, but in all cases i know, the previous implementation was doomed...
 

character

状元
mikelove said:
Our code already nicely isolates the cross-platform bits, but the problem is that calling into C from Java on Android is just too complicated - the amount of packaging / unpackaging required on each end of those calls and the near impossibility of debugging them[...]
My experience with something somewhat similar (SOAP marshalling/unmarshalling) is that there are a few gotchas, but once you know those you're able to code new interfaces with ease -- a lot of it can become copy/paste/edit programming if you choose. Maybe these fine folks could help you get started: http://www.meetup.com/androidnyc/

I imagine at one extreme you could just have an api which in java set a pixel color on the screen and sent back touch values, and you could do all the screen drawing/touch interpretation in C. :wink:

And I'd contend that adding new features both meets people's needs and fends off competitors better than porting to another platform does [...]
And yet you ported to the iPhone, which involved an creating redesigned, finger-friendly Objective-C UI. :D

And yes, there's more than one kind of browser, but for smartphones you can pretty much just develop for WebKit and ignore everybody else[...]
I've found variations in how web apps behave between the WebKit browser on the iPod Touch and on Android 1.6.

@mfcb, it happens, esp. recently where lots of games were ported to the iPhone from Java ME/Flash.
 

mikelove

皇帝
Staff member
Well I suppose we could do a few tests, but my own experience with that type of programming (for ARM code on Palm) was that it was a colossal nightmare - data structures are a big problem, even if you're disciplined about doing basically everything through accessor functions (as we are) rather than reading out values directly you still run into a ton of hassles with them. And at least there we were working in the same programming language, whereas a lot of the things we do in our C code (pointer arithmetic, e.g.) aren't even allowed in Java. (well I guess technically pointer arithmetic is, but not in a way that you would want to regularly use it)

With the PDK on webOS there's actually an increasingly strong case for actually doing a version of Pleco with an entirely self-developed user interface, though that'd only make sense if Android supported that exact same sort of development; i.e., giving us direct access in native code to touch events / screen updates rather than having to do a whole lot of performance-sapping screen buffering. An OpenGL Chinese dictionary (rendering fonts with hardware-accelerated polygons) could be a beautiful thing...

We ported to iPhone more because Windows Mobile had become a liability than because we were eager to jump over to a new platform; the gap between WM and iPhone had gotten so large that people were no longer willing to put up with it just to be able to use our software. But nobody's suggesting there's that kind of a gap between Android and iPhone, nor does it seem likely that one will appear anytime soon. It's a personal preference, and just as we went with WM over the technically-comparable Symbian back in the early-to-mid 2000s, I think we can pick one current mobile platform over another one now without losing too much; we'll just focus on making our software good enough to constitute a strong argument for picking that platform for one's next phone.

I wasn't aware that there was that much of a difference between WebKit implementations - I'd have to think those differences will get smaller with time, though, at some point they're going to start seeing diminishing returns from the various sorts of JavaScript / rendering engine performance optimizations they're all cramming in there now.

Game porting is very different beast than app porting, BTW, since so much of the cost of developing a game is in artwork and level design; with Pleco, on the other hand, most of the cost is in things we'd have to mostly or completely re-do on Android.
 

character

状元
mikelove said:
An OpenGL Chinese dictionary (rendering fonts with hardware-accelerated polygons) could be a beautiful thing...
The Android native dev kit has OpenGL support, and lists one of the example programs as: "san-angeles — A simple application that renders 3D graphics through the native OpenGL ES APIs, while managing activity lifecycle with a GLSurfaceView object."

---

If it would help get you playing with Android, I can send you the code for my crap CE dictionary I put together in a weekend. No native code in it, and it has a number of bugs, but perhaps it would be something you could relate to better than complete toy sample apps.
 

mikelove

皇帝
Staff member
It sounds from that like there's still a Java object needed to actually present the rendered OpenGL, which might complicate matters a little bit. And thanks for the offer, but it's not so much about seeing how one would implement a dictionary on Android as it is about seeing how easy it is to get things up and running with native code - that's the only realistic way we could even consider an Android port anytime soon.

I suppose in spite of my anti-Android feelings it deserves at least a brief try, but absent Google sending me a free Nexus One and a friendly note I don't think there'll be time for that anytime soon, at least not until after the iPhone version is fully fleshed out with flashcards and WM's gotten its long-awaited 2.0.(4?) update.
 
Not a bad review either.

I'm a little suspicious of reviews that come out so early because how much time did they really have to use the device? The phone hadn't even been announced when that review was published. If they preferred the Droid to the N1 then it must be because they want a hardware keyboard because just about everything else is better on the N1. Great the consumer has a choice in the matter :)

One thing about Android is you only really appreciate the advantages once you use it for some days/weeks. It doesn't have the initial polish/slickness of the iPhone and so doesn't have the same initial wow factor. Having used the iPod Touch for some time now, it seems to be the reverse. When I first used it, it felt very impressive. Very slick, very easy to use. Only having used it, can I see the severe limitations where Android clearly wins. For example, is it really true you can't stream music (for example, Last.fm) and do other stuff at the same time? If so, that's ridiculous!

What did you think of the video in that engadget review showing the voice recognition? Pretty cool I think...
 

gato

状元
Only having used it, can I see the severe limitations where Android clearly wins. For example, is it really true you can't stream music (for example, Last.fm) and do other stuff at the same time? If so, that's ridiculous!
Yeah, the limitation on multitasking needs to be lifted somewhat. Right now, only the Apple default applications (like iPod and Mail) can multitask with other applications.
 

mikelove

皇帝
Staff member
Looks from the video like it must be server-based / network-dependent voice recognition (presumably hooking into whatever they use for Google Voice emails), which limits its utility a bit. But I remain unimpressed by mobile voice recognition in general anyway.

Apple's got some spectacular programmers working for them, and I have a hard time believing they aren't way ahead of Android features-wise by now in their internal builds; they've just been hurt by a combination of iSlate-related secrecy (some have suggested that's the reason for a lack of recent OS updates, and I completely agree with that) and some business distractions - the China launch, finally getting their house in order with app approvals (which I'd now say they pretty definitely have; our 2.0.6 update was approved by midday on the first business day after we submitted it, took them maybe all of 4 hours, and in spite of all of the unorthodox things we do with UI and distribution we've never once been rejected or told to change anything), and those things have prevented them from sharing what they're working on before now. I'm also inclined to attribute last summer's ho-hum iPhone OS 3.0 launch to too many people working on iSlate, though 3.0 was actually great for Pleco since we ended up leaning heavily on the in-app purchase and pasteboard features.

Also, while not expressing any personal opinions on the rather sensitive subject of Google's decision to pull out of China, I don't think people quite appreciate the potential ramifications of that for Android - worst-case it could result in Android's use being strongly discouraged if not outright banned among Chinese mobile manufacturers, in favor of some domestically-developed alternative Linux OS. And I don't know if gray-market imports could sustain Android use in China as they did with iPhone during the long period it wasn't officially available there.
 

gato

状元
The Chinese government really wants to keep Google in China, particularly as most Chinese leaders have an engineering background and are techies at heart. But having the censorship in place exceeds everything else in priority. So long as Android doesn't provide a way to circumvent the censorship rules, the government's not going to kick Android out.
 
mikelove said:
Also, while not expressing any personal opinions on the rather sensitive subject of Google's decision to pull out of China, I don't think people quite appreciate the potential ramifications of that for Android - worst-case it could result in Android's use being strongly discouraged if not outright banned among Chinese mobile manufacturers, in favor of some domestically-developed alternative Linux OS. And I don't know if gray-market imports could sustain Android use in China as they did with iPhone during the long period it wasn't officially available there.

Here are some points about the impact on other Google products: http://www.kai-mai.com/node/181

I don't think its worth comparing grey-market imports of the iPhone because the different way in which Android devices are sold (i.e. multiple device manufacturers some of which already have sales channels within China).

Also, I think its exceedingly unlikely that Android devices would be discouraged. Its free and doesn't result in any profits to Google. At worst, all Google sites would be blocked making things like GMail, Maps, Search etc inaccessible without VPN (which is supported in Android 2.0+ and iPhone OS I believe). But I suspect all that's going to happen is google.cn gets taken offline. Everything else stays as it is.

The Android Market could be an issue though. Thankfully, Android allows apps to be installed from anywhere. If it had followed the iPhone model of only allowing apps to be installed from a single AppStore, then it may indeed be screwed in China. But instead, this is a good example where a little openness keeps things looking healthy.

Will be interesting to see what happens to the iPhone in China as iPhones start to get hacked or Apple refuses to play ball regarding "bad" apps in the AppStore. Wouldn't want to get the AppStore blocked...
 
Top