This is part one of a new series on monorepos. By the end of the series, you’ll have the tools you need to adopt monorepo setups in your organization.
Building and maintaining multiple development projects comes with a unique set of problems teams need to solve. How do you share common bits of code between projects? How do you sync dependencies across projects? How do you optimize collaboration between projects?
With solutions to those problems, it’s not shocking to see that monorepos are rapidly growing in popularity. In fact, we use monorepos here at Ionic! Several monorepo tools are available to development teams: Nx, Yarn workspaces, npm workspaces, Lerna, Turborepo…and I’m sure more that I’m not even aware of.
In this blog post we’ll be building out a monorepo using Lerna. I personally like how lightweight it is, and it works well with Ionic Framework React projects and Ionic Appflow.
Our monorepo will consist of three packages (monorepo speak for subprojects); two Ionic Framework React applications, and a shared React library that will supply a React context each application will use.
Since the beginning, Ionic’s focus has been empowering web developers to build powerful mobile apps with their web skills. To date, we’ve helped millions of devs build mobile apps with web tech, collectively powering more than 15% of the public app stores.
Many web development teams have been successful with this approach. But, with a new project we’re working on, we think there’s a way to bring the best aspects of web development to existing native apps as well.
Today I’m happy to share that Ionic’s starter projects now ship with modern linting, powered by ESLint. This gives us a consistent linting tool across all project types, but also removes a deprecated dependency. Let’s dive in and rewind the clock to 2018.
Now in 2021, the TSLint repo has been archived and the TypeScript-ESLint team, headed up by James Henry and others, have been working to support developers.
When we think about building apps, we’re typically talking about one app, one git repo, and one build output. However, this one-app-one-repo setup is not always reflective of the real world experience of developers. Oftentimes, organizations will make use of a single repository with every app, component, library that could be used being developed there. This is a monorepo, and they’re starting to become very popular.
So what makes a monorepo so interesting for organizations? Why would they want to put all their code in one place and maintain what could be a massive git repo instead of having many small and separate repositories? Well we at Ionic have a lot of experience with monorepos and wanted to provide some guidance for how Ionic users could implement a monorepo setup for their teams. Let’s dive in.
I’m excited to announce the first release of Ionic Secure Storage, the latest from our growing suite of enterprise-ready native solutions. Ionic Secure Storage is a high-performance, secure data store that lets you encrypt, access, and manage your data locally across iOS and Android (and web, see later) with zero hassle. Build secure, reliable, high-performance apps quickly without being a mobile security expert.
If your team is building Ionic apps that need to safeguard sensitive data, ensure security compliance and adhere to regulations such as HIPAA, or would like to deliver highly performant data-driven experiences that work on and offline, then this solution is for you. With Secure Storage, you can shave off weeks or months of development time, and rest easy knowing Ionic’s team of native experts will handle long-term maintenance and stability.
Today I’m thrilled to announce the release of Ionic Storage v3, an open-source library that offers an easy way to store simple data in Ionic apps. Ionic Storage is useful for building single code-base apps on iOS, Android, and the Web, while automatically using the best storage engine available on the platform the app is running on.
Introduced several years ago, Ionic Storage was originally built with only Angular support in mind. However, given its popularity with the Ionic community, we knew it was time for an update and to bring it to the rest of the Ionic ecosystem.
Read on to learn what’s new in v3 and how to migrate if you’re using Ionic Storage 2.x today.
As of December 2020, Apple has required all apps in the App Store to report their data collection practices. Once added by developers, users can view the app’s product page to see which data is linked to them or used to track them.
A recent report from the secure storage service pCloud highlighted the “most invasive apps”—the apps that are most likely to share your personal data with third parties. We were thrilled to learn that Amtrak, one of our customers, made the list of safest apps to use to protect your personal data.
Today we hosted our first launch event of 2021. During the event, we heard from core Ionic team members about some exciting new updates and recent releases across our open source and commercial products.
Missed the live event? No problem. Continue reading for all the details, or watch the recording on YouTube here.
This is a guest post from Simon Grimm, Ionic Developer Expert and educator at the Ionic Academy. Simon also created the Practical Ionic book, a guide to building real world Ionic applications with Capacitor and Firebase.
In this tutorial we will build a simple Capacitor PWA with Ionic and Angular. We will integrate functionality to capture an image and share our current position using Capacitor plugins which work inside both native apps and PWAs!
Finally we will bring our PWA to the outside world by hosting it on Netlify, so we got a full trip from start to hosted PWA in one go.
Every app at some point will need to tackle one of the most contentious subjects in front end development: State Management. If you ask ten different developers how to manage state in an app, you’ll most likely get ten different answers, as everyone can have a slightly different approach if they were to build their own system. Thankfully, most frameworks provide some opinionated solutions for managing state in an app. For Vue, developers make use of the library Vuex, which provides common patterns that makes managing state predictable and consistent across the entire app. Let’s look at how we can manage a simple TODO app using Vuex and as an added benefit, we’ll make it type safe using TypeScript.