Faits : A. Arrêté le 7 mars 2013, A._ se trouve en détention provisoire au sein de la prison de Champ-Dollon, dans le cadre d'une procédure pénale dirigée contre lui notamment pour diverses infractions à la liberté, au patrimoine et à l'intégrité corporelle. Selon le rapport du Directeur de la prison du 2 décembre 2014, le prénommé a passé 12 nuits (du 8 au 20 mars 2013), 18 nuits (du 21 mars au 8 avril 2013), 1 nuit (du 3 au 4 mai 2013), 2 nuits (du 24 au 26 août 2013), 7 nuits (du 26 septembre au 3 octobre 2013), 2 nuits (du 5 au 7 octobre 2013), 2 nuits (du 25 au 27 octobre 2013), 2 nuits (du 28 au 30 octobre 2013), 30 nuits (du 2 novembre au 2 décembre 2013), 184 nuits (du 7 décembre au 9 juin 2014), 68 nuits (du 23 juin au 30 août 2014), 14 nuits (du 1 er au 15 septembre 2014), 62 nuits (du 18 septembre au 19 novembre 2014), 3 nuits (du 25 au 28 novembre 2014), 6 nuits (du 5 au 11 décembre 2014), 42 nuits (du 13 décembre 2014 au 24 janvier 2015), 8 nuits (du 27 janvier au 4 février 2015) dans une cellule d'une surface nette de 10,18 m 2 hébergeant trois détenus, laissant à disposition de chacun d'entre eux un espace individuel net de 3,39 m 2. Du 7 décembre 2013 au 19 novembre 2014, les différentes périodes de séjours dans cette cellule ont été interrompues par 14 nuits (du 9 juin au 23 juin 2014), 2 nuits (du 30 août au 1 er septembre 2014) et 3 nuits (du 15 au 18 septembre 2014) : A._ a alors disposé d'un espace individuel net allant de 5,09 à 10,18 m 2. Le 30 janvier 2015, le prénommé a formé auprès du Tribunal des mesures de contrainte du canton de Genève (Tmc) une requête visant au constat de l'illicéité de ses conditions de détention notamment pendant 389 nuits. Par ordonnance du 9 février 2015, le Tmc a constaté que les conditions dans lesquelles s'était déroulée la détention du prénommé respectaient les exigences légales. La Chambre pénale de recours de la Cour de justice du canton de Genève (ci-après: la Cour de justice) a rejeté le recours interjeté par le prévenu contre cette ordonnance, par arrêt du 5 juin 2015. Par jugement du 12 juin 2015, le Tribunal correctionnel du canton de Genève a reconnu le prévenu coupable de violation de domicile, dommages à la propriété, vol, brigandage aggravé et l'a condamné à une peine privative de liberté de 5 ans, sous déduction des jours de détention avant jugement. B. Agissant par la voie du recours en matière pénale, A._ demande principalement au Tribunal fédéral d'annuler l'arrêt du 5 juin 2015 et de constater que les conditions dans lesquelles s'est déroulée la détention provisoire sont illicites. Il conclut subsidiairement au renvoi de la cause à la Cour de justice pour nouvelle décision au sens des considérants. Il sollicite en outre l'octroi de l'assistance judiciaire. Le Ministère public du canton de Genève conclut au rejet du recours. Le Tmc renonce à formuler des observations et maintient les termes de son ordonnance du 9 février 2015. La cour cantonale se réfère aux considérants de son arrêt. Le recourant a répliqué par courrier du 21 juillet 2015.