Lattice |
The professional Ionic 5 and Google Cloud/Firebase starter
Lattice is a starter project which integrates everything you need for the entire software development lifecycle. From continuous integration builds to production monitoring through integrations with GitLab and the Google Cloud Platform.
And all the essential plugins/libraries/SDKs are integrated in a way that supports multiple project/environment configurations, along with essential screens such as admin pages, profile page, etc
Secure by design
Enterprise mobile security firm Appthority released a report in 2018 that thousands of mobile apps have exposed over 113 gigabytes of data from 2,300 unsecured Firebase databases.
Security can't be an after thought in your app. Best practices are baked into the project setup, configuration and tests from the beginning to minimize the risk of a data or account breach.
Continuous Integration
Lattice comes with the scripts to run a continuous integration (CI) build pipeline using GitLab CI, running unit and integration tests.
Consistent builds and the automated test execution minimizes the risk of bugs being introduced to your production system from regression bugs and manual procedures. It also saves you time and money from automating essential test, build and deployment tasks.
Infrastructure-As-Code
Cloud native development uses infrastructure-as-code for auditable, repeatable changes to provisioning and configuring your cloud resources.
Using Pulumi's TypeScript SDK allows a single language from front-end code to cloud infrastructure configuration.
GitOps
GitOps takes CI builds to the next level with specific branches handling deploying the code and configuration to App Engine, Cloud Functions, Cloud Run and Firebase, and deploying your Android build to the Play store.
Most importantly it handles multiple environments. Commits to regular branches will be built and testing using a CI project, while merges to the QA or production branch will build and deploy to those environments.
This gives you more certainty and traceability to whats in your production and other environments. And makes rolling back a change as easy as reversing a commit in Git.
Monorepo tooling
Lattice is built with the Nrwl Nx monorepo tooling.
Monorepos with the appropriate tooling allow a modular design and shared libraries with the ability to only build and test the changes to dependant modules.
Performance analytics
Integration with the Google Cloud Stackdriver Trace service gives you insight into how your app is performing
Trace makes it easy to check how new versions of your server software are performing, and identify slow API calls so you can easily improve the experience for your customers.
Error reporting
How do you monitor errors in the native or web apps? The integrated Angular error reporting service in the app sends any client errors to the server so you can view them in the logs.
Integration with the Google Cloud Stackdriver Error Reporting service gives you actionable insight into any application errors.
The Error Reporting service groups the same errors together, and can notify you about new errors so you can quickly take action when application or service errors occur.
Automation
- Advanced, but simple to use, project setup supports multiple environments eg, dev, QA, continuous integration and production.
- NPM scripts refined over the years make routine tasks, such as deploying to the app stores, a single time saving command.
- Integration with GitLab and Google Cloud to provide the full software development lifecyle of continuous integration, performance analytics, consolidated logging and error reporting in production.
Ionic Framework
Lattice is built using the Ionic version 5 with the Angular module, which powers about 10% of the apps on iOS and almost 20% of apps on Android. Integrated are all the nice-to-haves such as lazy loaded sub-modules, PWA support, and our utils and services refined over the last few years such login sequence management, unit test support, user/profile management and more.
Google Cloud Platform Support
Lattice comes with support for running the Node.js API servers on the Google App Engine Flex, Cloud Run, GKE or Cloud Functions.
App Engine
NestJS Node.js server application Optimized docker build which can be deployed to App Engine Flex, or Cloud Run or GKE.
Cloud functions
Firebase functions provide integrations to Auth, Firestore and HTTP functions for the admin functionality. Multi-environment support and support for local emulation functions in development.
Firestore
Access to Firestore is
FCM (Push)
Firebase Cloud Messaging integration for both native and web/PWA, with multi-environment support.
Authentication
Email and Facebook authentication initially supported, with phone and more coming soon.
Cloud SQL
Cloud SQL integration using PostgreSql 13.
High Quality TypeScript
Lattice uses the strictest Typescript compiler settings to minimize potential bugs.
Language features such as partial types used where possible to enable more static type checking, minimizing bugs and increasing your confidence to refactor.
The frameworks, file structure and design has all been thought out to make the code base as clean as possible.
Centralised data model typings
The UI and API server projects are configured to share the same TypeScript data model interfaces. So you can ensure strong typing throughout your projects, minimizing type errors.