Faits :
A.
Par jugement du 29 octobre 2014, statuant sur l'appel de X._ et l'appel joint du Ministère public dirigés contre un jugement du Juge de police de l'arrondissement de la Sarine du 3 février 2014 (consécutif à opposition à une ordonnance pénale du 26 février 2013), la Cour d'appel pénal du Tribunal cantonal du canton de Fribourg a rejeté l'appel et admis l'appel joint. X._ a été condamné à une peine de 180 jours-amende à 20 fr., avec sursis pendant 2 ans ainsi qu'à une amende de 400 fr. (peine de substitution de 4 jours de privation de liberté).
En substance, ce jugement repose sur les faits suivants. Le 1 er septembre 2012 vers 22 heures, A.A._ a téléphoné à la centrale d'engagement de la gendarmerie pour expliquer qu'il venait d'être impliqué dans un accident de la circulation à la route xxx, à U._. Il a indiqué qu'un véhicule Peugeot immatriculé yyy l'avait dépassé à vive allure en haut de la route xxx et avait heurté l'angle avant gauche de sa voiture en se rabattant. Ce véhicule s'était ensuite déporté à droite, puis à gauche, avant de se retrouver sur la voie de circulation opposée, forçant les voitures arrivant en sens inverse à freiner. Malgré les appels de phare, il avait continué sa route. Alors que A.A._ avait stoppé sa voiture à un arrêt de bus pour constater les dégâts, le véhicule Peugeot était repassé à côté de lui à vive allure en direction de V._. X._ a été identifié comme le détenteur d'une voiture Peugeot zzz immatriculée yyy. La Cour d'appel pénal a retenu que celui-ci s'était rendu coupable de violation grave des règles de la circulation routière, d'entrave aux mesures de constatation de l'incapacité de conduire (véhicule automobile) et de violation des obligations en cas d'accident.
B.
X._ recourt au Tribunal fédéral contre cet arrêt. Il conclut, avec suite de dépens, à son acquittement. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire.

Considérant en droit :
1.
1.1.
Le Tribunal fédéral statue sur la base des faits établis par l'autorité précédente (<ref-law>). La partie recourante ne peut ainsi critiquer ces faits que s'ils ont été établis en violation du droit au sens de l'<ref-law> ou de manière manifestement inexacte, c'est-à-dire arbitraire au sens de l'art. 9 Cst. (<ref-ruling> consid. 2.3 p. 266; sur la notion d'arbitraire, v. <ref-ruling> consid. 6.1 p. 205), et si la correction du vice est susceptible d'influer sur le sort de la cause (<ref-law>). Le Tribunal fédéral n'examine, en général, que les questions juridiques que la partie recourante soulève conformément aux exigences légales relatives à la motivation du recours (<ref-law>; <ref-ruling> consid. 2.1 p. 93). De plus, il n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux que s'ils ont été invoqués et motivés de manière précise (<ref-law>). L'acte de recours doit, à peine d'irrecevabilité, contenir un exposé succinct des droits violés et préciser en quoi consiste la violation (<ref-ruling> consid. 2.2 p. 69; <ref-ruling> consid. 1.3.1 p. 68 et les références citées). Le Tribunal fédéral n'entre pas en matière sur les critiques de nature appellatoire (<ref-ruling> consid. 2.3 p. 266; <ref-ruling> consid. 5.1 p. 356 et les références citées). Aucun fait nouveau ni preuve nouvelle ne peut être présenté à moins de résulter de la décision de l'autorité précédente (<ref-law>).
1.2. Le recourant débute ses écritures par une présentation des faits. Dans la mesure où il s'écarte de ceux retenus par la cour cantonale sans démontrer qu'ils auraient été établis de manière arbitraire, son exposé est appellatoire, partant irrecevable.
En préambule de son recours, le recourant invoque une violation de son droit d'être entendu (art. 29 Cst.). Plus loin, il se réfère au principe de présomption d'innocence et, de manière générale, remet en cause l'établissement des faits et l'appréciation des preuves de l'autorité cantonale. I l n'incombe pas au Tribunal fédéral de rechercher quels griefs entend soulever le recourant sur les différents points qu'il critique et en quoi l'autorité cantonale aurait violé les droits de rang constitutionnel qu'il cite de manière générale. La question de savoir si le recours répond aux exigences de motivation de l'<ref-law> peut toutefois rester ouverte au regard de son issue.
2.
2.1.
La présomption d'innocence, garantie par les art. 32 al. 1 Cst., 10 CPP, 14 par. 2 Pacte ONU II et 6 par. 2 CEDH, ainsi que son corollaire, le principe in dubio pro reo, concernent tant le fardeau de la preuve que l'appréciation des preuves. Lorsque, comme en l'espèce, l'appréciation des preuves et la constatation des faits sont critiquées en référence au principe "in dubio pro reo", celui-ci n'a pas de portée plus large que l'interdiction de l'arbitraire (<ref-ruling> consid. 7 p. 82).
2.2. Le recourant conteste avoir conduit le véhicule qui a heurté la voiture des époux A._. Il rediscute l'appréciation des éléments de preuve de la cour cantonale, à laquelle il oppose, pour l'essentiel, sa propre interprétation. Une telle démarche est appellatoire. Elle n'est pas admissible dans le recours en matière pénale (supra, consid. 1.1). On peut, dès lors, se limiter à relever ce qui suit.
2.3. Dans le but d'établir qu'il était impossible pour A.A._ et son épouse B.A._, dans la nuit et sous la pluie, de relever le numéro de plaque du véhicule qui les avait heurtés, le recourant soumet des calculs de vitesse et de distance parcourue par les véhicules qui ne trouvent aucun appui dans l'état de fait cantonal. A supposer qu'ils soient recevables (art. 99 al. 1 et 105 al. 1 LTF), ces développements ne démontrent pas en quoi il était insoutenable de retenir la version des faits des époux A._, que la cour cantonale a jugée crédible au regard de la constance de leurs déclarations sur le coeur des événements et de leur absence d'intérêt à mentir. En particulier, B.A._ a expliqué qu'ils avaient suivi la voiture du recourant afin de pouvoir être certains du numéro de plaque, qu'elle avait pu vérifier que ce numéro était exact lors du passage de la Peugeot dans l'autre sens et que, grâce aux appels de phare de son mari, il avait été possible de bien voir la plaque malgré la nuit (dossier cantonal, pièce n° 3010). En outre, l'hypothèse proposée par le recourant afin d'expliquer la concordance entre le modèle de la voiture et le numéro de plaque indiqués par les époux A._, à savoir que le numéro leur aurait été suggéré par le policier de faction ce soir-là, paraît fantaisiste et ne repose sur aucun élément concret.
On ne saurait davantage suivre le recourant lorsqu'il affirme que le dossier photographique ne permettrait pas d'identifier la marque du véhicule concerné au lieu et à l'heure indiqués dans la dénonciation, alors même qu'il admettait ce fait dans son appel cantonal (dossier cantonal, pièce n° 72). En outre, il importe peu que le dossier photographique ne reproduise pas la photo du second passage du véhicule dans la mesure où la bande vidéo contenant l'intégralité des images a été versée au dossier. Par ailleurs, la lettre du 15 décembre 2012 par laquelle le recourant a communiqué son emploi du temps au procureur étant postérieure à ses auditions par la police et par le procureur, elle n'est pas de nature à remettre en cause le constat de la cour cantonale selon lequel l'intéressé avait refusé, initialement, de répondre aux questions relatives à son emploi du temps. Enfin, le recourant déclare s'étonner que la police ou le procureur n'ait pas entendu d'autres témoins de l'accident, sans expliquer toutefois quelles conclusions la cour cantonale aurait dû en tirer. En tous les cas, le recourant avait la possibilité de solliciter l'audition des témoins qu'il jugeait utiles lors de l'instruction, ce qu'il n'indique pas avoir fait.
Enfin, sont sans pertinence les critiques que le recourant porte à l'encontre d'éléments qui n'ont pas joué de rôle dans le verdict de culpabilité. Il en va ainsi de ses développements relatifs à la description physique du conducteur du véhicule incriminé ainsi qu'au contenu de l'expertise technique des véhicules impliqués, la cour ayant retenu, sur ce dernier point, que l'expertise ne confirmait ni n'infirmait la version des époux A._. Pour le surplus, les prétendues inexactitudes relevées dans le rapport de police sont mineures et, partant, impropres à rendre arbitraires ou insoutenables les constatations qui fondent la condamnation du recourant.
Au vu de ce qui précède, la cour cantonale n'a pas fait preuve d'arbitraire en retenant que le recourant conduisait le véhicule qui a dépassé puis percuté la voiture des époux A._. Eût-il été recevable, le grief aurait été infondé.
3.
Le recourant reproche au procureur d'avoir refusé sa demande de consultation du dossier du 8 novembre 2012 et à la direction de la procédure d'appel de ne pas avoir donné suite à sa requête de production du rapport d'expertise de son véhicule du 21 novembre 2013 et de la liste des véhicules de type Peugeot zzz immatriculés dans le canton de Fribourg. Plus généralement, le recourant soutient qu'il n'aurait pas été suffisamment entendu par le procureur et les juges, ceux-ci ne l'ayant pas laissé s'exprimer librement.
Dans la mesure où le recourant n'explique pas en quoi le rejet motivé de sa requête par la direction de la procédure d'appel violerait le droit, il ne formule pas un grief recevable sous l'angle de l'art. 42 al. 2, respectivement de l'<ref-law>.
S'agissant de ses autres griefs, le recourant n'établit pas les avoir invoqués en appel, ni que la juridiction d'appel aurait commis un déni de justice en ne les examinant pas. Ils sont par conséquent irrecevables, faute d'épuisement des instances cantonales (cf. <ref-law>. Au demeurant, le refus du procureur de donner accès au dossier avant la première audition du prévenu est conforme à l'<ref-law>. Le recourant a été entendu par le procureur le 10 décembre 2012, seul et en confrontation avec A.A._ et B.A._, puis par le Juge de police le 3 février 2014. Il s'est également exprimé par écrit durant l'instruction et a soumis un mémoire motivé en appel. Enfin, il ne saurait se plaindre du fait que les auditions étaient conduites sous forme de " questions-réponses ", ce procédé découlant de la loi (<ref-law>). Il s'ensuit que le droit d'être entendu du recourant n'a pas été violé.
4.
Le recourant succombe. Ses conclusions étaient dénuées de chances de succès. L'assistance judiciaire doit être refusée (<ref-law>). Il supporte les frais de la procédure, qui seront fixés en tenant compte de sa situation économique (art. 65 al. 2 et 66 al. 1 LTF).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans le mesure où il est recevable.
2.
La requête d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Fribourg, Cour d'appel pénal.
Lausanne, le 19 novembre 2015
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Musy