Amazing group of people to be with. All my amazing friends in a single picture @laforge_toma @prodromouf maina and @wayne_gakuo #googleconnectberlin
Amazing group of people to be with. All my amazing friends in a single picture
@laforge_toma @prodromouf maina and @wayne_gakuo
#googleconnectberlin
26.06.2025 07:42
π 4
π 2
π¬ 1
π 0
ποΈ The #IntelliJIDEAConf 2025 agenda is here! Explore sessions on Java, Kotlin, AI, Spring Boot, Gradle, and more. Get ready to learn from the best!
Register now and plan your experience π jb.gg/t5ytt9
23.04.2025 08:01
π 17
π 10
π¬ 0
π 0
π’ In a few hours Iβll be speaking at the @angular-community.bsky.social Meetup series on testing β and yes, the official theme is Turtle Power!
Iβm covering:
βοΈ Basics
βοΈ Async
βοΈ Mocks & fakes
π₯ Cover by ChatGPT might be overkill, but I stand by the tests π
π angularcommunity.net/events
21.04.2025 13:24
π 4
π 1
π¬ 0
π 0
Seamless data fetching with httpResource
Fantastic new APIs are coming to Angular. Two years ago, we proposed making Angular a reactive web framework powered by signals. Sinceβ¦
The new experimental httpResource API is here and ready for you to check out.
Big thanks to @jeanmeche.com for his contributions to this feature.
Learn more here π blog.angular.dev/seamless-dat...
07.03.2025 16:02
π 24
π 5
π¬ 0
π 1
Seamless data fetching with httpResource
Photo by Jamie Street on Unsplash Fantastic new APIs are coming to Angular. Two years ago, we proposed making Angular a reactive web framework powered by signals. Since then, the team has shipped a number of signal-based features in the framework: reactive primitives like signal & computed, reactive inputs including model, signal queries, bidirectional RxJS conversion utilities, and migration tooling. We have a solid foundation for reactivity in Angular. Now, weβre ready to begin the next phase of the reactivity journey: the world of asynchronous state. In v19 we shipped the experimental resource() API for developers to try out in advance of the dedicated RFC. The resource API makes it possible to expose results of asynchronous operations as signals. For most applications, developers make HTTP requests for the data their applications need. We recognize this and have built a new API to help facilitate this primary use case β introducing httpResource π.HttpResource httpResource is built on top of the resource primitive and uses HttpClient as loader. It acts as a frontend for @angular/common/http. It makes HTTP requests through the Angular HTTP stack, including interceptors. As the underlying stack remains the same, testing will rely on the same tools. Here we are defining an httpResource with currentUserId as a reactive parameter.currentUserId = getCurrentUserId(); // returns a signal user = httpResource(() => `/api/user/${currentUserId()}`); // A reactive function as argument By default, an httpResource will perform a GET request and return an unknown typed JSON response. It is important to note that httpResource differs from the HttpClient as it initiates the request eagerly (unlike the HttpClient Observable-based requests which must be subscribed). Like resource, it configures a reactive request. If any of the source signals in the request computation change, a new HTTP request will be made. For more advanced requests, it is possible to define a request object similar to HttpClientβs request.user = httpResource(() => ({ url: '/api/user/${currentUserId()', method: 'GET', headers: { 'X-Special': 'true', }, params: { 'fast': 'yes', }, reportProgress: true, withCredentials: true, transferCache: true, })); While the resource pattern is meant only for retrieving asynchronous data, httpResource will allow any request method (like POST in the previous example). This still doesnβt mean that you should be using httpResource to change data on the server. For instance, if you need to submit form data, use the HttpClient methods. An httpResource will return and parse the response as JSON but it is possible to use it for other return types. The API has multiple dedicated methods available for other response types:httpResource.text(() => ({ β¦ })); // returns a text in value() httpResource.blob(() => ({ β¦ })); // returns a Blob object in value() httpResource.arrayBuffer(() => ({ β¦ })); // returns an ArrayBuffer in value()Shape of an HttpResource An httpResource , similar to other `resource`, exposes several signals:value() β which contains the result of the http request (when successful) and is programmatically overwritablestatus() β with the status of the resource (idle, loading, error etc)error() β with the request error / parsing errorisLoading() β which is true while the request is pending It also includes dedicated signals for metadata about the response:ββheaders() β with the responseβs headersstatusCode() β with the responseβs status codeprogress() β with the progress of the request (if required in the request object) These new signals streamline the writing of requests by exposing this useful information without requiring a specific argument like for the HttpClient to request the HttpResponse.Embracing the Ecosystem for Type Safety When performing http requests we often want to ensure that the data we receive conforms the shape that we expect. This is commonly known as schema validation. In the JavaScript ecosystem we often reach out for battle-tested libraries like Zod or Valibot for schema validation. The httpResource offers direct integration for those libraries by using the parse parameter. The returned type of this parse function will provide the type to the resource itself, ensuring type safety alongside the schema validation. The following example uses Zod to parse and validate the response from the StarWars API. The resource is then typed the same as the output type of the Zodβs parsing.export class AppComponent { id = signal(1); swPersonResource = httpResource( () => `https://swapi.dev/api/people/${this.id()}`, { parse: starWarsPersonSchema.parse } ); } const starWarsPersonSchema = z.object({ name: z.string(), height: z.number({ coerce: true }), edited: z.string().datetime(), films: z.array(z.string()), }); Demo on StackblitzExperimental API The httpResource is available as a part of the Angular v19.2 release. This is an experimental API and is not ready for production because the shape of this API can still change before it is promoted to stable. With that in mind, we would love for you to try out the API and let us know what you think. You can learn more about this API, resource and more in the RFC on GitHub. Thank you for being a part of the Angular community and we look forward to continuing the reactivity journey together. Happy coding! Seamless data fetching with httpResource was originally published in Angular Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.
Seamless data fetching with httpResource
08.03.2025 05:00
π 1
π 1
π¬ 0
π 0
Hey!
Please join me in celebrating reaching the 20K subscriber milestone! Yay! π
Thanks to you for watching my angular content!
08.03.2025 19:08
π 65
π 3
π¬ 5
π 0
Movie youβve watched more than 6 times, gifs only
22.02.2025 07:37
π 3
π 1
π¬ 0
π 0
Movie youβve watched more than 6 times, gifs only
22.02.2025 07:26
π 1
π 0
π¬ 0
π 1
I just asked @vscode.dev copilot to improve an @angular.dev component and the first thing it did was replace signal input APIs with decorators, new control flow syntax with directive-based control flow syntax. Stunned, I asked it why, here is the response. What do you think #angular developers?
11.02.2025 21:32
π 4
π 1
π¬ 7
π 0
And @thealexlichter.com on stage next to talk about Vue
13.02.2025 18:47
π 13
π 2
π¬ 1
π 0
Angular: The Documentary [OFFICIAL TRAILER]
YouTube video by Honeypot
Big news! The new trailer for the Angular documentary is here. Created by @stefankingham.bsky.social and Guillermo LΓ³pez, learn more about the history of Angular from the people who were there π₯
The video will go live on February 4th. Don't miss it!
www.youtube.com/watch?v=nONH...
24.01.2025 18:25
π 84
π 24
π¬ 0
π 0
We are looking at a possible date of 5th July 2025 in Nairobi, Kenya.
14.01.2025 19:09
π 1
π 1
π¬ 1
π 0
Neck deep into #firebase genkit and have been able to do some basic RAG with local vector embeddings (still fuzzy with the correct terminology), I guess the difficulty part for me is forming the correct mental models but also not very good at following docs and got to do it my own way.
16.11.2024 20:56
π 4
π 1
π¬ 1
π 0
If you have feedback for NgOptimizedImage, this poll is a great way to get it on our radar. Would be particularly interested in anything missing that would help folks migrate: https://twitter.com/angular/status/1678516387432771585?s=20
10.07.2023 22:14
π 7
π 4
π¬ 0
π 0