- Notifications
You must be signed in to change notification settings - Fork15
Art Institute of Chicago Official Mobile App - Android
License
art-institute-of-chicago/aic-mobile-android
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A digital guide to the Art Institute of Chicago. Built with Kotlin 1.xfor Android.
Please seethis pagefor the iOS counterpart.
The Art Institute of Chicago app is your personal, pocket-sized guide toour collection. The mobile experience offers high-quality audiostorytelling, letting the art speak to you. The Art Institute offersnearly a million square feet to explore—the Official Mobile App will beyour guide.
Note that the codebase is young, and under heavy development. It mightchange significantly before the first official release. Nevertheless, wewelcome suggestions and contributions from outside parties.
This codebase is licensed under the GNU Affero General Public License v3as defined in thetop-level LICENSE file. We make heavy useof the Android support libraries and the Kotlin programming language -our modifications to those, if any, are also licensed under the AGPL,unless otherwise indicated.
The following modules use proprietary APIs:
- The
map
module includes Google's "GoogleMap
" and "LatLng
"classes. - The
analytics
module connects to Google Analytics
The source code is organized into multipleGradle modules, each of which is containedwithin a top-level directory. A full list of such modules can be foundinthesettings.gradle
config file.
The project maintains an overview of the more interesting modules inMODULES.md.
This project should build perfectly as is using the standard buildcommands, but is unlikely to function properly without key attributesdefined in the build process.
Details below:
In .circleci/ you will find aconfig.yml
which controls our circle cibuild process.
./gradlewassembleDebugassembleRelease
There is one hidden aspect of the build process not available for publicconsumption which is the keystore and keys used in the app. Due toinfrastructure difference between our public build server and release ofthe app we handle injecting these variables into our build process byusing the methodenvVariable(key, isRelease)
within the gradle files.
This function loads all the appropriate values for the keys from one ofthree places depending on where you define them. You can see the fullset of values needed inenv.sample
.
These values are loaded from one of the following sources, listed herein decreasing order of priority:
- release.env or debug.env (Deployments use this model)
- local.properties (Development uses this model primarily)
- environment variables (Circle CI, uses this model)
Sample (added for reference as well)
blob_url=default_buy_url=member_validation_url=member_validation_token=fb_project_id=fb_application_id=fb_api_key=fb_storage_bucket=ga_tracking_id=gcm_sender_id=google_maps_api_key=keystore=keystore_password=keystore_alias=keystore_alias_password=
As a special case, ifblob_url
is not defined or is not a stringstarting withhttps://
, the app can run in a reduced capacity. Thisfeature is intended fordebug
configurations only and thus doesnothing in release builds.
If a JSON file
- was present in either
db/src/main/assets/
ordb/src/debug/assets/
at build time - had the name
app-data-v3.json
and - conforms to the expected format of
ArticAppData
then the content of that JSON file will overwrite whatever content iscurrently in the database.
About
Art Institute of Chicago Official Mobile App - Android
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors12
Uh oh!
There was an error while loading.Please reload this page.