Lattice

The premium Ionic 5 and Google Cloud/Firebase starter

Spend more time building customer and business value. Waste less time on technical issues and infrastructure.

Save yourself months of effort by leveraging our years of experience building Ionic and Google Cloud based apps.

You need more than a code template...

A successful software project is much more than code for a few screens and plugins. High performance software teams use modern, essential software engineering practices such as DevOps, automated testing and continuous integration.

Greetings! Let me quickly introduce myself... I'm a software engineer/architect with 15 years of commercial experience. In that time I've worked on multi-million dollar projects for the largest investment and retail banks, insurance, defence and telecommunication companies in Australia.

For the last 4 years I've developed Ionic apps, from version 1 beta up to the new version 5, on the Google Cloud. Some of the apps I've help co-found, such as Verona and Just A Baby have even been featured in the mainstream media.

Lattice distills all that experience into a starter project which will save you countless hours and dollars developing and running your app. While you might not have the $10,000 spare to hire me for a month to build a solid foundation for your app project, this gives you the actual code I build my own apps on at a tiny fraction of the price of building it from scratch.

Lattice is the only Ionic starter project which integrates everything you need for the whole 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 first-class support for running the Node.js server application 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 if desired. project using the 10 standard environment, providing 28 free hours/month. and common route functionality

Cloud functions

Firebase functions provide integrations to Auth, Firestore and HTTP functions for the admin functionality. Multi-environment support and support for local HTTP 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 intially supported, with phone and more coming soon.

Cloud SQL

Cloud SQL integration using PostgreSql 11.


High Quality TypeScript

Don't waste your time with low-quality starter code!
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 AppEngine, Firebase and app projects are configured to share the same TypeScript data model interfaces. So you can ensure strong typing throughout your projects, minimizing type errors.



Supported Open Source - Coming soon on GitLab.com

https://gitlab.com/apporchestra/lattice