Sample iOS App: internationalization (i18n), language learning & uiKitPosted: December 31, 2013
I was pleased to see the ClustrMap graphic for this blog showing such a diverse geographic audience, which started me thinking about the importance, in many (but not all) cases of internationalizing device-based Apps to maximize the potential audience.
As this blog has featured various bits related to iOS development, I thought I’d remind readers that I have posted in my public git repository the source code for a fully internationalized language learning app for iPad (cn4l2 in the repo).
This is a fairly straightforward and structurally simple “view” App: a “game board” type primary window with a display area (set of tiles) and the usual score counter, timer and control buttons to operate the “game”. Chinese 4 Beginners is a game designed primarily to help for speakers of Indo-European languages (specifically French, German, Spanish, Italian and English) learn to recognize Hanzi, or Chinese Characters. In particular it was to help me practice Hanzi recognition, and to help we work through important sub-elements of how characters are formed, and how components can provide clues to sound and meaning. As I worked through ways to remember various characters or elements, I compiled a short book of these basic and important words and word elements (based on my experience trying to learn Chinese, and then moving to live and work in China for three years — entirely in Hangzhou and initially to work for Hundsun Technologies, a Shanghai-listed software firm, in 2007). I organized the basic elements I was trying to learn into sixteen sets of 18 words, created a “book” to describe the mnemonics I had found useful, and then made the book available both as a free PDF (see link at bottom of page) and in a the Lulu book store.
The App shows one particular set of design trade-offs for internationalization — in particular, rather than resizing labels or adjusting fonts dynamically as the UI adjusts to particular user languages, from German to Korean — I created language specific versions of the main “board” and four or so pop-over / modal screens (about, settings, instruction, username and high scorers), so that I could examine / QA the appearance of all the various game elements in the most efficient manner. Of course, everything could have been set dynamically based on the UI language choice, but the complexity and amount of code required, even to support 8 languages, still seemed to give the advantage to this approach. Had I been shooting for 12 languages form the beginning, or certainly 20, I’d have probably gone the fully dynamic, program-based approach.
A more sophisticated program could also dynamically create the “word tiles” from a database at the device-specific maximized resolution; a more ambitious one would have included “sound files” — or found, as is available native for most of these 8 languages in Android, text-to-speech APIs to use / include).
But this program helped teach me iOS, Xcode, and many other basic aspects of writing an app for customer use.
It has been interesting to see and compare how iPhone and iPad apps (they are basically the same but optimized for the specific device, with a couple extra features in the iPad version) sell — at what price points and to whom. There are eight titles — one each for learning to recognize words in English, Chinese, Korean, Japanese, Spanish, German, French and Italian — for speakers of these same 8 languages. So while I can tell from the title which language is being learned, the speakers language can at best be inferred from the store in which the product was purchases (since all 8 programs for iPhone and iPad have all 8 language UIs). Some English and French speakers clearly buy the “Wordz for Beginners” in their own language to teach youngsters just learning to read; but most sales are for second language learners, and the clusters of L1 and L2 language pairs is interesting and fairly constant over four years — with Koreans as Language Learners at the top of the list, and more intra-asian language learners than westerners learning C/K/J and visa-versa. That said, the sales by language to learn generally follow the proportion of speakers in the OECD countries, but the ranking of countries as “language learning” buyers is both a function of history, culture, iOS prevalence, and economic development and size. So I am expecting a surge of Chinese buyers (Welcome, China Mobile!) on the one hand, and, i suspect, learning of Italian to remain near the bottom of the list). Just for fun I will get the latest sales and downloads by product info from App Annie and post a graphic below. (n.b. PE aka Pocket Edition denotes iPhone app; otherwise they are iPad apps) And perhaps next year i will try to Data Analytics and Visualization to derive and show the sales of language learning products by language of the learner.