
Learn to work with engine rigs in angular network script and build a mobile crypto app similar to Binance using the coingecko API, featuring two coins and their market positions.
The search coins page passes data to the coins list component via inputs, which renders each coin item. The list emits outputs to the parent to handle favorites.
Explore how the component state updates dynamically as users search for coins, and how side effects call external APIs to load new coin lists, then trigger state changes.
demonstrates applying the single responsibility principle in an NgRx Angular app by keeping the search coins page focused on data flow, side effects, and state updates.
Use a single state with actions to express changes. Reducers perform state transitions without side effects, while selectors optimize slice retrieval and effects handle external interactions via services.
Learn how to work with Angular and NativeScript by following official documentation and examples to create and run an Angular NativeScript app on Android and iOS.
Learn to implement a coins component in an ngrx angular NativeScript app by wiring currency selectors, handling search with debounce, and composing list and detail components.
Implement a currency service and an ngrx store reducer to fetch all coins from the CoinGecko API, manage loading, and support search with market capitalization fallback.
This course is about how to work with ngrx angular nativescript. I will create a simple crypto mobile application with ngrx angular nativescript. You can find all code inside of course with github link.
What is NgRx?
NgRx is a framework for building reactive applications in Angular. NgRx provides libraries for:
Managing global and local state.
Isolation of side effects to promote a cleaner component architecture.
Entity collection management.
Integration with the Angular Router.
Developer tooling that enhances developer experience when building many different types of applications.
NgRx packages are divided into a few main categories
State
Store - RxJS powered global state management for Angular apps, inspired by Redux.
Effects - Side effect model for @ngrx/store.
Router Store - Bindings to connect the Angular Router to @ngrx/store.
Entity - Entity State adapter for managing record collections.
ComponentStore - Standalone library for managing local/component state.
Data
Data - Extension for simplified entity data management.
View
Component - Extension for building reactive Angular templates.
Developer Tools
Store Devtools - Instrumentation for @ngrx/store that enables visual tracking of state and time-travel debugging.
Schematics - Scaffolding library for Angular applications using NgRx libraries.
ESLint Plugin - ESLint rules to warn against bad practices. It also contains a few automatic fixes to enforce a consistent style, and to promote best practice.
NgRx Store provides state management for creating maintainable, explicit applications through the use of single state and actions in order to express state changes. In cases where you don't need a global, application-wide solution to manage state, consider using NgRx ComponentStore which provides a solution for local state management.
When Should I Use NgRx Store for State Management?
In particular, you might use NgRx when you build an application with a lot of user interactions and multiple data sources, or when managing state in services are no longer sufficient.
A good guideline that might help answer the question, "Do I need NgRx Store?" is the SHARI principle:
Shared: state that is accessed by many components and services.
Hydrated: state that is persisted and rehydrated from external storage.
Available: state that needs to be available when re-entering routes.
Retrieved: state that must be retrieved with a side-effect.
Impacted: state that is impacted by actions from other sources.
However, realizing that using NgRx Store comes with some tradeoffs is also crucial. It is not meant to be the shortest or quickest way to write code. It also encourages the usage of many files.
It's also important to consider the patterns implemented with NgRx Store. A solid understanding of RxJS and Redux will be very beneficial before learning to use NgRx Store and the other state management libraries.