...
The Server
I started with the Server side first, because this is the
area I’m most comfortable with. I decided to use Google App Engine as the
server platform. This is a cloud service which takes care of all the gory
technical details of setting up a server environment such as installation,
operation, high availability, scalability, etc. All we need to do is develop
the logic. For that, GAE support 3 different languages: Python, Java, & Go.
I definitely chose Java, as it is my native language (I was born, raised and
live in the island of Java).
The best part of GAE is that it is free for low traffic.
This means that you can develop the server app without paying a dime to Google.
In fact, you can deploy it for production use and still not paying anything as
long as the traffic is still below certain limit. Just pay as you grow.
The Client
Lucky for me, Android app development is also based on Java.
Thus learning the Software Development Kit (SDK) is not the most difficult part
for me. The difficult part is designing
the GUI. I’m not at all experienced in designed a software with GUI. Whereas in
server development you usually deal with performance, memory efficiency, scalability
and the likes, here you need to put more emphasis on intuitiveness and handling
for unpredicted user behavior.
Another challenge is the fact that Android devices comes in
various sized from tiny handset to wide screen tablets. Android SDK provides
the framework to work with multiple screen sizes, but the developer still needs
to spend some effort ensure that the GUI looks good in all screen sizes. For my
particular game, I ended up with two different layouts: one for small to medium
screen and another for larger screens.
Even for simple game that does not rely on graphics,
designing a visually pleasing GUI can still be time consuming. I rely on beautiful and free icons from http://icons.mysitemyway.com/ to help
spice up the app. Even then, I still need to spend a significant part of
development time Photoshopping (I used GIMP actually).
Thus, I decided to look for an alternative. For English, I
found English Open Word List (EOWL) which is compiled by Ken Loge (http://dreamsteep.com/projects/the-english-open-word-list.html)
for the exact purpose of providing free alternative word list for word games or
spell checkers. It’s not perfect – many valid words such as plural forms, past forms
are missing. But it’s the best option there is.
With Bahasa Indonesia, things got a bit more difficult. I
couldn’t find a single comprehensive word list. I had to resort to Wiktionary (http://id.wiktionary.org). It’s quite
comprehensive although still far from complete. The problem is it doesn’t
provide the word list in an easily downloadable format. I had to write a script
to crawl the site to extract the word list.
Publishing the App
After everything is ready, it’s time to publish the App via
Google Play. Registering is almost as easy as it gets. You need to pay 25 USD to Google to get
yourself registered as Developer. I’m not 100% sure, but I think it’s a
one-time payment and you don’t need to pay more for uploading more apps.
Definitely cheaper from registering an app to Apple’s iTune (which costs 100
USD, CMIIMW ). Google also does not require any certification process for your
app. This means your app is ready to be downloaded almost immediately (read:
few hours).
So it goes, after 2 months of part time development (I still need to do my day job, which pays the
bill) and several liters of lattes, “Words
against the World” is finally available for download.
No comments:
Post a Comment