Faits :
A.
A.a. Le 29 juin 2018, B._, propriétaire d'une épicerie à X._, sise rue W._, a déposé plainte contre les frères A._ et D._, ressortissants du Kosovo nés respectivement en 1994 et en 2000.
Il leur reprochait de l'avoir menacé de mort devant son épicerie le 28 juin 2018, ainsi que son ami E._, en lui disant qu'ils allaient les "planter", alors que D._ avait soulevé son t-shirt et dévoilé un couteau qu'il portait sous sa ceinture. Ces menaces seraient survenues dans un contexte d'animosité entre E._, et les frères A._ et D._, voisins de l'épicerie, qui trouverait son origine dans des remontrances qui auraient été faites à la mi-février 2018 à D._ par E._ après que le second cité avait invité le premier, alors éméché, à ramasser le vélo qu'il venait de jeter au sol à proximité de l'épicerie.
A.b. Le 2 juillet 2018, peu après minuit, soit quelques jours après le dépôt de la plainte, alors que B._ venait de fermer son commerce, il se serait dirigé à pied, en compagnie de F._, en direction du parking de la rue Y._, où il avait garé sa voiture. Arrivé à l'angle des rues Z._ et Y._, après qu'il aurait croisé A._ et D._, B._ aurait reçu plusieurs coups de couteau, notamment au thorax et à la jambe gauche, ainsi que des coups de pied, le blessant grièvement.
A.c. Une instruction pénale a été ouverte par le Ministère public de la République et canton de Genève contre A._ pour tentative d'assassinat (<ref-law> cum <ref-law>) et menaces (<ref-law>), alors que D._ a été déféré devant le Juge des mineurs.
En cours d'enquête, D._ a reconnu avoir asséné des coups de couteau à B._ dans la nuit du 2 juillet 2018. Pour sa part, si A._ avait reconnu avoir été présent avec son frère au moment de l'agression, il a en revanche contesté toute implication dans les coups portés au plaignant.
A.d. A._ a été arrêté le 2 juillet 2018. Par ordonnance du Tribunal des mesures de contrainte (Tmc) du 3 juillet 2018, il a été placé en détention provisoire. Cette mesure a été régulièrement prolongée par ordonnances successives du Tmc.
B.
Par acte du 29 avril 2019, le Ministère public a engagé l'accusation devant le Tribunal criminel contre A._ pour tentative d'assassinat et menaces.
Parallèlement, le Procureur a requis le placement en détention pour des motifs de sûreté de A._. Le Tmc a fait droit à cette requête par ordonnance du 2 mai 2019, le prévenu étant placé en détention jusqu'au 2 août 2019.
Statuant le 22 mai 2019, la Chambre pénale de recours de la Cour de justice genevoise a rejeté le recours formé par A._ contre l'ordonnance du 2 mai 2019, retenant tant l'existence de graves soupçons de culpabilité qu'un risque de collusion que des mesures de substitution ne permettaient pas de pallier.
C.
A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 22 mai 2019. Il conclut, avec suite de frais et dépens, à sa libération immédiate, assortie le cas échéant de mesures de substitution. Il sollicite en outre le bénéfice de l'assistance judiciaire.
Invité à se déterminer sur le recours, le Ministère public a conclu à son rejet. L'autorité précédente a pour sa part renoncé à présenter des observations et s'est référée aux considérants de sa décision.

Considérant en droit :
1.
Le recours en matière pénale (<ref-law>) est ouvert contre une décision relative à la détention provisoire ou pour des motifs de sûreté au sens des <ref-law>. Selon l'art. 81 al. 1 let. a et b ch. 1 LTF, le recourant, prévenu détenu, a qualité pour recourir. Le recours a été formé en temps utile (<ref-law>) contre une décision rendue par une autorité statuant en tant que dernière instance cantonale (<ref-law>) et les conclusions présentées sont recevables au regard de l'<ref-law>. Il y a donc lieu d'entrer en matière.
2.
Le recourant, renvoyé en jugement par acte d'accusation du 29 avril 2019 pour tentative d'assassinat et menaces, ne revient pas, à juste titre, sur l'existence de soupçons suffisants de la commission d'infractions (<ref-law>), même s'il conteste avoir commis les faits qui lui sont reprochés. Eu égard à ces charges, le recourant ne remet pas non plus en cause la durée de la détention avant jugement déjà subie.
Il fait en revanche grief à l'autorité précédente d'avoir considéré qu'il existe un risque de collusion, respectivement que celui-ci ne pourrait pas être réduit par des mesures de substitution.
2.1. Conformément à l'<ref-law>, la détention provisoire ou pour motifs de sûreté ne peut être ordonnée que lorsque le prévenu est fortement soupçonné d'avoir commis un crime ou un délit et qu'il y a sérieusement lieu de craindre qu'il compromette la recherche de la vérité en exerçant une influence sur des personnes ou en altérant des moyens de preuve.
Selon la jurisprudence, il peut notamment y avoir collusion lorsque le prévenu tente d'influencer les déclarations que pourraient faire des témoins, des personnes appelées à donner des renseignements, des experts ou des co-prévenus, ainsi que lorsque le prévenu essaie de faire disparaître des traces ou des moyens de preuve. En tant que motif de détention avant jugement, le danger de collusion vise à empêcher le prévenu de mettre en danger la recherche de la vérité (<ref-ruling> consid. 3.2 p. 23; arrêt 1B_50/2019 du 19 février 2019 consid. 2.3).
Pour retenir l'existence d'un risque de collusion, l'autorité doit démontrer que les circonstances particulières du cas d'espèce font apparaître un danger concret et sérieux de telles manoeuvres, propres à entraver la manifestation de la vérité, en indiquant, au moins dans les grandes lignes et sous réserve des opérations à conserver secrètes, quels actes d'instruction doivent être encore effectués et en quoi la libération du prévenu en compromettrait l'accomplissement. Dans cet examen, entrent en ligne de compte les caractéristiques personnelles du détenu, son rôle dans l'infraction ainsi que ses liens avec les autres prévenus (<ref-ruling> consid. 4.2 p. 127 s.; <ref-ruling> consid. 3.2.1 p. 23 s.; arrêt 1B_144/2019 du 16 avril 2019 consid. 2.1).
Un examen particulier s'impose notamment après la clôture de l'instruction (<ref-law>), quand l'acte d'accusation a été rédigé (<ref-law>), lorsque les débats du tribunal de première instance ont été fixés (<ref-law>; arrêt 1B_400/2017 du 18 octobre 2017 consid. 2.3) ou lorsque ceux-ci ont eu lieu (art. 335 à 351 CPP). En effet, le motif de détention au sens de l'<ref-law> tend avant tout à assurer le bon déroulement de l'instruction. Il protège cependant également l'établissement des faits par les autorités judiciaires, notamment dans le cadre, certes limité, de l'administration des preuves durant les débats (art. 343 et 405 al. 1 CPP; <ref-ruling> consid. 3.2.2 p. 24; arrêt 1B_218/2018 du 30 mai 2018 consid. 3.2). Cette mesure - ou son complément - peut en particulier s'imposer dans les causes où l'accusation repose essentiellement sur les dépositions, notamment opposées, des participants (<ref-ruling> consid. 2.2.2 p. 243; "Aussage gegen Aussage") ou dans celles s'appuyant sur de simples indices (arrêts 1B_400/2017 du 18 octobre 2017 consid. 2.3; 1B_81/2012 du 5 mars 2012 consid. 5.2 ["reiner Indizienprozess"]).
A cet égard, le Tribunal fédéral a insisté sur le principe de l'oralité et de l'immédiateté des débats, lesquels conduisent à l'instruction définitive de l'affaire par le biais de l'intime conviction du juge (<ref-law>) : celui-ci doit non seulement tenir compte du contenu des témoignages, mais aussi de la manière dont s'expriment les témoins (<ref-ruling> consid. 4.4.2 p. 199 s.). Les déclarations que pourraient être amenés à faire les différents participants - victimes, témoins ou co-prévenus (arrêt 1B_400/2017 du 18 octobre 2017 consid. 2.3) - représentent donc un moyen de preuve dont la connaissance directe par le tribunal apparaît nécessaire au prononcé du jugement (<ref-law>; <ref-ruling> consid. 4.4.3 p. 200; arrêt 1B_144/2017 du 27 avril 2017 consid. 3.2) et qu'il peut s'avérer indispensable de préserver de toute influence de la part du prévenu (arrêt 1B_144/2019 du 16 avril 2019 consid. 2.1).
En tout état de cause, plus l'instruction, respectivement la procédure pénale, se trouve à un stade avancé et les faits sont établis avec précision, plus les exigences relatives à la preuve de l'existence d'un risque concret de collusion sont élevées (<ref-ruling> consid. 4.2 p. 128; <ref-ruling> consid. 3.2.2 p. 24; arrêt 1B_144/2019 du 16 avril 2019 consid. 2.1).
2.2. En l'espèce, l'appréciation des déclarations des différents protagonistes, qu'ils soient prévenu, partie plaignante ou témoin, sera vraisemblablement décisive au moment de déterminer les circonstances exactes de l'implication du recourant dans les faits qui sont reprochés à lui et à son frère. Dans ce contexte, pour permettre au juge du fond d'avoir une connaissance directe et non altérée des moyens de preuve en cause, dont l'administration sera probablement réitérée lors des débats (cf. <ref-law>), il est primordial que les intéressés - et en particulier les plaignants B._ et E._, mais également les témoins F._ et G._, qui ont assisté à des phases de l'agression - puissent s'exprimer sans avoir été préalablement influencés d'une quelconque manière par des pressions extérieures.
Cela étant, des éléments concrets laissent craindre en l'espèce que, s'il venait à être libéré avant les audiences de jugement - prévues apparemment dès le 23 septembre 2019 (cf. observations du ministère public, p. 2) -, le recourant interférerait auprès des témoins et des plaignants en exerçant des pressions, voire en les intimidant, pour qu'ils modifient leur version présentée lors de l'instruction. Ainsi, le recourant, qui s'estime victime d'une erreur judiciaire, s'est montré particulièrement virulent et agressif lors des audiences d'instruction, notamment à l'égard des plaignants, l'intéressé ayant dû parfois être maîtrisé par les agents de police en charge de la sécurité dans la salle d'audience. Il apparaît du reste que le recourant présente, selon l'expertise psychiatrique réalisée en cours d'instruction, une immaturité le rendant particulièrement influençable, notamment à l'égard de ses proches, ainsi qu'une tendance à prendre fait et cause pour son frère. Ces éléments ne présagent pas un contrôle de soi exemplaire, ni par conséquent l'assurance qu'il s'abstienne en toute circonstance de contacter les différents protagonistes.
A cela s'ajoute le fait que la compagne du témoin G._ aurait déjà été contactée, chez elle, par des individus vraisemblablement d'origine balkanique, qui cherchaient son compagnon. Il en va de même d'une voisine de B._, qui aurait été approchée à deux reprises par des membres de la famille du recourant (cf. arrêt entrepris, consid. 4.2 p. 10). Dans ces circonstances, le risque de prises de contact avec les plaignants et témoins semble d'autant plus concret.
2.3. Au vu de ce qui précède, le risque de collusion paraît concret et sérieux. On ne saurait en effet écarter le risque que le recourant ne mette sa liberté à profit pour tenter d'influencer ou d'intimider les personnes qui pourraient être entendues lors des débats. La cour cantonale n'a donc pas violé l'<ref-law> en retenant le risque de collusion.
Le maintien en détention étant justifié par un risque de collusion, il n'y a pas lieu d'examiner si cette mesure s'impose aussi en raison d'un risque de récidive ou de fuite au sens de l'art. 221 al. 1 let. a et c CPP.
2.4. Conformément au principe de la proportionnalité (art. 36 al. 3 Cst.), il convient d'examiner les possibilités de mettre en oeuvre d'autres solutions moins dommageables que la détention (règle de la nécessité). Cette exigence est concrétisée par l'<ref-law>, qui prévoit que le tribunal compétent ordonne une ou plusieurs mesures moins sévères en lieu et place de la détention provisoire ou de la détention pour des motifs de sûreté si ces mesures permettent d'atteindre le même but que la détention. Selon l'<ref-law>, font notamment partie des mesures de substitution la fourniture de sûretés (let. a), la saisie de documents d'identité (let. b) et l'interdiction d'entretenir des relations avec certaines personnes (let. g).
En l'espèce, l'interdiction de contact proposée, de même que l'engagement à participer à un stage professionnel et à résider dans un lieu éloigné du quartier W._, ne sont pas suffisants au regard de l'intensité du risque de collusion, en particulier quant au nombre de personnes potentiellement concernées par l'interdiction de contact. De surcroît, l'attitude du recourant en cours d'instruction a démontré une incapacité à se soumettre aux règles qui lui sont imposées et à se maîtriser en présence de contradicteurs, de sorte que ses promesses et assurances quant au comportement qu'il adopterait en liberté doivent être abordées avec circonspection.
Pour le surplus, du point de vue temporel, au vu de la gravité des infractions pour lesquelles le recourant a été renvoyé devant le Tribunal criminel et de la durée de la détention déjà subie, le principe de proportionnalité demeure respecté.
2.5. Au regard de ces éléments, la cour cantonale pouvait, sans violer le droit fédéral, maintenir le placement du recourant en détention pour des motifs de sûreté en raison de l'existence d'un risque de collusion qu'aucune mesure de substitution ne permet en l'état de réduire.
3.
Le recours doit par conséquent être rejeté.
Le recourant a sollicité l'octroi de l'assistance judiciaire (<ref-law>). Les conditions y relatives étant réunies, il y a lieu d'admettre cette requête et de désigner Me Nicolas Golovtchiner en tant qu'avocat d'office et de lui allouer une indemnité à titre d'honoraires, qui seront supportés par la caisse du tribunal. Il n'est pas perçu de frais judiciaires (<ref-law>), ni alloué de dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La requête d'assistance judiciaire est admise. Me Nicolas Golovtchiner est désigné comme avocat d'office du recourant et une indemnité de 1500 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral. Il n'est pas perçu de frais judiciaires.
3.
Le présent arrêt est communiqué au mandataire du recourant, au Ministère public de la République et canton de Genève et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 15 juillet 2019
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
Le Greffier : Tinguely