Faits: A. A._, ressortissant algérien né en 1979, se trouve en détention provisoire depuis le 18 septembre 2010, comme prévenu de tentative de meurtre ou d'agression. Il lui est reproché d'avoir frappé à plusieurs reprises son patron B._ au moyen d'un marteau et d'une serpette. Il aurait agi avec un comparse qui a finalement été identifié au mois de mai 2011 en la personne de C._. B. Le 1er juin 2011, le Ministère public genevois a requis du Tribunal des mesures de contrainte (Tmc) la prolongation de trois mois de la détention, en raison des besoins de l'instruction, des risques de fuite, de réitération et de collusion. Par ordonnance du 7 juin 2011, le Tmc a ordonné la prolongation de la détention jusqu'au 30 juin 2011 afin de permettre au Ministère de rédiger l'acte d'accusation et de renvoyer le prévenu en jugement. Dans une précédente décision du 26 avril 2011, le Tmc avait estimé qu'une prolongation jusqu'au 7 juin 2011 devait permettre au Ministère public de terminer l'enquête, indépendamment de l'identification du comparse du prévenu. C._ avait été entretemps interpellé, interrogé et confronté au prévenu, de sorte que l'on ne voyait pas quel acte d'instruction était encore nécessaire. Par arrêt du 30 juin 2011, la Chambre pénale de recours de la Cour de justice genevoise a rejeté le recours formé par A._. Les charges à l'encontre de ce dernier n'avaient pas diminué et les risques de fuite et de réitération demeuraient. Même si le Ministère public n'avait tenu aucune audience durant le mois d'avril 2011, il avait ordonné des actes d'enquête ayant abouti à l'identification de C._ et avait confronté ce dernier au prévenu. Les principes de proportionnalité et de célérité étaient dès lors respectés. La Chambre pénale a par ailleurs admis un recours formé par le Ministère public et a réformé l'arrêt du Tmc en autorisant la prolongation de la détention jusqu'au 7 septembre 2011. Le délai fixé par le Tmc était insuffisant pour permettre les confrontations, l'audience récapitulative, la communication de l'avis de prochaine clôture et l'éventuelle administration de preuves complémentaires. C. Par acte du 20 juillet 2011, A._ forme un recours en matière pénale par lequel il demande l'annulation de l'arrêt cantonal et sa mise en liberté immédiate, subsidiairement le renvoi de la cause à l'autorité inférieure pour nouvelle décision dans le sens des considérants. Le recourant requiert l'assistance judiciaire. La Chambre pénale se réfère à sa décision. Le Ministère public conclut au rejet du recours. Le recourant a renoncé à présenter des observations complémentaires.