citydna-app-townhall-map
This is the experience run on the large TV screens in the town hall commons space. It's final production build is a react component not a react app that is deployed and served.
Instead, the final build is a UMD package that's published to NPM. From there, the platform-host-app
consumes the package and side-loads the code in at runtime.
It's important to remember when developing this app that it's just loaded in like a component within the platform-host-app
, so any context, theming, etc will influence the final output. This is intentional and allows for rapidly building websocket enabled experiences.
Features
The user flow is almost identical to the citydna-app-townhall-experience
and really only differs in what's displayed on screen.
Development
The @citydna/platform
exposes a helper component called AppPreview
that helps you rapidly create apps for the platform. It's a development environment only and is not intended for production use. When you run yarn start
for development, the 'app' will load up an instance of this and mock the devices. Read more.
Common components/code between this experience and the citydna-app-townhall-map
have been abstracted out into a special @citydna/experience
package for code reusability.
Scripts
-
yarn start
- enter local development mode. -
yarn start:dev
- enter remote development mode. This will build your app usingwebpack
and serve the resulting package at a public URL. -
yarn build:app
- create a package via webpack ready for distribution to NPM -
yarn publish
- publish the app to NPM (after runningyarn build:app
).
Config
Config for the apps are stored in the citydna-configs-bucket. These control things such as;
- what data/resources are displayed and used
- copy & translations for the apps, as well as custom images
- how the app displays on the user's phone
A local copy of these is kept in /apps/citydna-app-townhall-public/public/config
.