Professional Documents
Culture Documents
LOMI School Android Application Guide: 1. Launcher
LOMI School Android Application Guide: 1. Launcher
1. Launcher
2. Lock Screen
3. Library
4. Book Viewer
Book viewer app, which reads aloud most of books. The app will also read each word when one
is touched.
5. Main App
6. Blackboard
7. Drawing
8. Drum
9. Marimba
13. Gallery
Most of the apps above share code from LOMI school logger
14. LOMI School Logger
Not a stand-alone app, but the code is shared among other apps
Book Viewer and Main App are made upon cocos2d-x engine, while others are native Android apps
written in Java
#Build Environment#
Android studio will also ask to install the relevant SDKs and build tools that are missing - please install
them along the way.
https://developer.android.com/studio/archive
Install Android Studio
2. Download Android NDK (r14b, except for voice-engine which uses r16b)
https://developer.android.com/ndk/downloads/older_releases.html
https://dl.google.com/android/repository/android-ndk-r14b-darwin-x86_64.zip
https://dl.google.com/android/repository/android-ndk-r16b-darwin-x86_64.zip
unzip the NDK, and set the NDK path in the relavent projects (mainapp, seaworld, bookviewer)
Download the relevant resources/3rd party files from the release assets (v1.3)
to build "mainapp", place the resources/3rd party files in the following folders
cocos2d ROOT/mainapp/cocos2d
common resources (mainapp_resources)
ROOT/mainapp/Resources
ROOT/mainapp/Resources/localized/en-us
ROOT/mainapp/Resources/localized/sw-tz
ROOT/seaworld/cocos2d
to build "bookviewer", place the cocos files in the following folder
cocos2d
ROOT/bookviewer/cocos2d
to build "library", pick (only) one of the language specific resource files in the following folder
library_en_us (for English)
ROOT/library/localized/en-us
ROOT/library/localized/sw-tz
Install all the APKs, then start the LOMI Launcher to explorer.
# Trademarks
LOMI School, name and logo, and LOMI are trademarks of LOMI, Inc. The Apache License 2.0 under
which LOMI School software is released does not grant any license or right to use the trademarks. Please
see [Guidelines for Trademarks](http://LOMIschool.com/legal-LOMI/) to learn more about the terms.
LOMI and LOMI are trademarks of LOMI, Inc., registered in the U.S. and other countries.
# Questions?
Licensed under the Apache License 2.0 and the Creative Commons Attribution International 4.0 License
(the “Licenses”); you may not use these files except in compliance with the Licenses.
3. Replace _cocos2d_ folder present in the _mainapp_, _bookviewer_ and _seaworld_ projects with the
one present in the downloaded _assets_ folder.
5. Replace the _Resources_ folder in the _assets_ with the one present in _mainapp_ project. Ensure
that only one locale specific folder is present in the _localize_ folder i.e., keep either en-us_ folder and
the related files.
6. Open the application that you are trying to build in Android Studio. Select the build option under Build
menu.
7. The build process may prompt you to install various dependencies related to the Android SDK and
Build Tool. Make sure to install them.
8. If the application prompts you to update the _Gradle_ version used in the project, <ins>do not</ins>
update it.
9. Install the applications from Android Studio using the _Run app_ option from the _Run menu_ or
using the APK generated in _app/build/outputs/apk_ folder.
#### Note:
1. If any of the applications throw APK signing error then either comment the signing configuration from
the app's gradle file or create your own _keystore_ file following the steps mentioned
[here](https://developer.android.com/studio/publish/app-signing#generate-key).
3. Set the build variant to __debug__ for all project apps except for the _mainapp_ which is described in
the fourth FAQ below.
## FAQs
1. There is a cross mark on the app cofiguration button. How do I fix that?
If there is a cross mark, the default/main activity of the application is not set for the project.
Either go to _app/build/outputs/apk_ folder and install the APK which is generated right after
the build process or set the start activity in the app configuration settings of the project.
2. How do I enable the _Build variant_ option in the _Build_ menu?
The _Build variant_ option is enabled only when the module-level gradle file is opened.
3. The application throws _keystore_ file not found error. How do I fix this?
A _keystore_ file is used to digitally sign an Android application, hence, it is not provided with
the project. You must create your own _keystore_ file using the [Android
keytool](https://developer.android.com/studio/publish/app-signing) that comes with the
Android Studio in order to sign the APK.
4. How do I fix the mainapp application when it gives a runtime error related to the package name _?
The runtime error related to the __ package is caused by an incorrect build variant setting for
the application. Refer to the table below for the build variant settings.
|<center>App name</center>| <center>Build variant<center>|
> |--------|--------------|
> |LOMISchool|generalDebug-armeabi|
> |LOMIlogger|release|
> |libcocos2dx|debug|
> models|debug|
> 2. Rename the unzipped folder to "ndk-bundle" and place it in the Android SDK root directory.
> 3. Ensure the _ndk-bundle_ folder contains the children files and folders.
## Overview
LOMI School consists of several apps that work together to have kids learn basic literacy and numeracy
skills.
Currently LOMI School supports English which can be extended to support more.
However, it is worth noting that simply translating the contents will not be enough.
It will require substantial effort and content modification to adapt to different language systems and
cultures.
## Launcher
1. The Launcher application is used for launching applications in LOMI School world.
2. It also sets the default language (locale) that other apps will be using, defined as "default Language" in
"configuration.xml" of each build variant.
To add language build variant, modify /launcher/app/build.gradle and create a matching folder under
/launcher/app/src/
(And with all the apps, use "hi-IN" in place of "sw-TZ", "hi-in" for "sw-tz", and "hi" for "sw" respectively)
Change the value for each element in strings.xml file or add a new strings.xml file in the additional
language folder
___
## Main App
1. The Main App is the primary learning application in LOMI School with a tailored curriculum. This
application consists of content for literacy and numeracy training.
2. Each section of the application consists of section-specific audios, videos, and images. These assets
can be localized as follows:
___
## Bookviewer
The Bookviewer refers to the resources in the main app folder (/mainapp/Resources/bookviewer and
/mainapp/Resources/localized/[locale]/games/books)
Thus, localization is not needed for this application as long as the Main App is set up accordingly.
## Library
3. The thumbnail images of the storybooks and the vidoes are located at
[library/localized/[locale]/assets/[locale]]
___
## Writing Board
The Writing Board application uses images containing alphabets and words. Users trace the images to
learn to write. To localize this application, the images containing alphabets and words must be replaced
with locale-specific images as follows:
For example, create a folder named _"hi-in"_ for the Hindi language.
___
## Drawing
Drawing is an app where a child can draw on a digital paper using crayons.
The strings used in the Drawing app (mainly the names of colors) are defined in
launcher/app/src/main/res/values[-language]/strings.xml
Change the value for each element in strings.xml file or add a new strings.xml file in the additional
language folder
___
## Lock Screen
The Lock Screen app appears when the device wakes up. The device will be unlocked by touching the
LOMISchool icon.
The strings used in the Lock Screen app are defined in launcher/app/src/main/res/values[-
language]/strings.xml
Change the value for each element in strings.xml file or add a new strings.xml file in the additional
language folder
___
Drum is an app where a child can tap on the screen to hear a drum sound. Localization is not needed for
this application.
___
Blackboard is an app where the child can draw or write on a blackboard using a chalk. Localization is not
needed for this application.
___
Marimba is an app where the child can tap on the screen to hear a marimba sound. Localization is not
needed for this application.
___
Seaworld is an app where various fish appear on the screen. Localization is not needed for this
application.
___
LOMISchoolLogger is not a stand-alone app, but the code shared among all the applications to log
details and handle shared data. Localization is not needed for this application.
___
Voice Engine is used by "Word Note" activity in the Main App. This app does not support localization.