Given two categories and functors $\mathcal{F}: \mathcal{A} \to \mathcal{B}$ and $\mathcal{G}: \mathcal{A} \to \mathcal{B}$ then the natural transformation between $\mathcal{F}$ and $\mathcal{G}$ is given by $\eta: \mathcal{F} \Rightarrow \mathcal{G}$ and every morphism $f: X \to Y$ in $\mathcal{A}$, we have family of maps $\eta_X$ and $\eta_Y$ and following commutes
Now, we will define a dinatural transformation. Given two categories $\mathcal{A}, \mathcal{B}$ and two functors $\mathcal{F}, \mathcal{G}: \mathcal{A}^{op} \times \mathcal{A} \to \mathcal{B}$, a dinatural transformation given by $\alpha: \mathcal{F} \Rightarrow \mathcal{G}$ a family of arrows
$$\alpha_{{A}}: \mathcal{F}({A},{A}) \to \mathcal{G}({A},{A})$$ such that for any $f: A \to A'$, the following hexagon diagram commutes
The fact that it is called a dinatural transformation is because the functor $\mathcal{F}: \mathcal{A}^{op} \times \mathcal{A}$ maps the two terms of the same A first contravariantly in the first component and second covariantly in the second component.
Moving next, we wish to define a wedge for a dinatural transformation. Recall, a constant functor $\Delta_B: \mathcal{A}^{op} \times \mathcal{A} \to \mathcal{B}$ which maps each object in $\mathcal{A}^{op} \times \mathcal{A}$ to a particular object $B \in \mathcal{B}$ and each morphism to the identity morphism of that particular object $(id_B)$. Let $\mathcal{F}: \mathcal{A}^{op} \times \mathcal{A} \to \mathcal{B}$ be a functor, then a wedge for $\mathcal{F}$ is a dinatural transformation $\Delta_B \Rightarrow \mathcal{F}$ from the constant functor on the object $B \in \mathcal{B}$ defined by $(A,A') \mapsto B, (f,f') \mapsto id_B$. Dually, a co-wedge is defined when the codomain is the constant functor on the object $B$, so for a dinatural transformation $\mathcal{F} \Rightarrow \Delta_B$.
Fixing a functor $\mathcal{F}$, we can construct a category of wedges $Wd(\mathcal{F})$ by changing the domain, which is the constant functor, and the morphism between these wedges would be the morphism between the domains such that following commutes for $\alpha: \Delta_B \Rightarrow \mathcal{F}, \alpha': \Delta_B' \Rightarrow \mathcal{F}$ and $g: \Delta_B \to \Delta_B'$
Similarly, one has a category of cowedges $Cwd(\mathcal{F})$, and the morphisms between the cowedges are the morphisms between the codomains.
We define the end of the functor $\mathcal{F}$ that consists of the terminal wedge in the category of wedges $Wd(\mathcal{F})$. Let us say that it is end($\mathcal{F}$) $\in \mathcal{B}$. And dually, the coend($\mathcal{F}$) is the initial cowedge of the category $Cwd(\mathcal{F})$.
A good reference for coends, dinaturality, and extranaturality is https://arxiv.org/abs/1501.02503 (beware of some friendly typos). (Co)ends have an interesting calculus, and they appear in Hochschild (co)homology and Tannaka duality (and Hopf algebra), which we will explore shortly(!).