Ngaji gurrijin! [Hello Everyone!]
In late 2014, our Perth team delivered a mobile language app called Yawuru Ngan-ga for the Yawuru indigenous community from Broome in Western Australia. We open sourced the framework so other indigenous communities can develop similar apps of their own more easily.
We were approached by Mabu Yawuru Ngan-ga, the language centre for the Yawuru community, who have native title over the Broome area of Western Australia. They were exploring new ways to preserve their culture in the digital age.
The premise of their first proposal was "shake the phone, get a new word”. Working from that initial idea, here's what we came up with.
The team had good experiences with apps like Duolingo, but unfortunately it doesn't scale down well to languages where the number of fluent speakers could be counted on your hands. Yawuru was nearly lost at the hands of Christian missionaries, and is in the process of being revived, so it wasn't an option for us.
After a two day workshop in Broome (warm weather, crystal blue water and snow white beaches...yep, it's a hard life), we decided that a visual dictionary and some word/audio/picture games inspired by that experience would be a great first step and marry well with existing activities taught in schools.
Good start, but what did you actually build?
We began with the two key pieces of the app:
- A dictionary formed the core of the app and was the basis for all interactions.
- A syncing mechanism meant that all the content was available offline. One of the biggest failings of solutions like Duolingo is they don’t work in situations with limited or no internet connectivity.
With these pieces complete we were able to spider out into the wider dictionary exploration experience, exploring by category, word of the day, common phrases for tourists, and lastly, as many different games as we could play with, using the combination of words/audio/pictures at our disposal.
All of this content needed to come from somewhere, and we needed to make it simple enough for the language team to be able to manage without any help from the development team. We also had another requirement to make cloud-friendly choices so the language centre didn’t have to manage infrastructure. To satisfy these problem, we created a very simple web-based content management system tailored around the requirements of the app.
Alright, tell me about the greasy bits
The backend was largely a means to an end, so to save time we went straight to our playbook and made choices based on things we’ve had great success with previously:
This turned out really well, and enabled us to quickly spin up testing and demo environments. The only work required by the language centre was to setup accounts for Heroku, AWS and Google Analytics.
On the client side we also reached for the playbook, but we were doing a few things we hadn’t tried, so we added a few pages:
- Apache Cordova - The artist formerly known as Phonegap turned out to be a great choice. By adhering to web standards and using tips and tricks from regular mobile web development we were able to create compelling user experiences and use native APIs for both iOS and Android with very few platform-specific issues. Its command line tooling made it simple to automate too.
- AngularJS - AngularJS provided a great skeleton to base an app around, its structure fitted well with the screen-centric nature of both platforms.
- Zurb Foundation - Zurb Foundation was mostly used for its grid system, but its sensible defaults meant the open-source version of the app required minimal styling.
- Lawnchair - Lawnchair abstracted Local Storage, allowing us to interact with the offline content without playing around with low level concerns.
- Angulartics - Angulartics gave us for free an idea of what our users were doing. We hooked in custom events for failed searches or incorrect words in games, so we can tweak future dictionary additions or supporting info in the dictionary. Given the app can be used offline, its use is best effort.
- Middleman - Middleman is our goto static site generator, bundling the Rails asset pipeline with a bunch of useful plugins.
Our web-based approach also provided a couple of unexpected benefits:
- It made sharing with the team much easier given we were working remotely. A link to a static site on S3 is much easier to share than producing a new build of a packaged app for both platforms.
- The groups we demoed it to saw opportunities to reuse the application code in different contexts, in particular the smart boards used in classrooms.
Sweet! What does it look like?
That backend is a vanilla active admin experience tailored around their process, so not much to look at. It looks a little like this:
The front-end is designed to be simple and playful, using work from local artists. We tried to pay careful attention to little details which makes the apps feel more native for things like title and tab placement, screen transitions and scrolling behaviour. The front-end looks like this:
Can I try it?
You mentioned open-source?
We asked the client to let us make the framework open-source if we contributed some of our own time. We wanted to lower the barrier of entry for the 150 or so indigenous languages left in Australia to a couple of local web developers who can follow the setup instructions and style the app for the community.
The framework is called Jila. No, not the mints. Jila means “waterhole” in Yawuru. Why "waterhole"? Waterholes are places people come together, and we wanted this to be a tool the various communities could get behind, rather than everyone re-inventing the wheel as our discussions informed was happening.
Can I contribute?
Soon! The framework has a home on Github. In the next few weeks all the code should be ported across from the Yawuru-specific version. You two Windows Phone users can use this time to work out what would need to happen to support your devices.
After presenting it at the WANALA conference, we've been approached by a few other communities in Western Australia and the Northern Territory about using it. We've also just been put in touch with someone doing research on endangered languages near the India-Myanmar border.
Galiya mabu! [Goodbye and thank you!]