Faits :
A.
Par jugement du 8 février 2021, le Tribunal pénal de l'arrondissement de la Sarine a condamné A.A._ pour infraction grave, complicité d'infraction grave et contravention à la loi fédérale sur les stupéfiants (art. 25 CP, art. 19 al. 2 let. a et 19a ch. 1 LStup), contravention à la loi fédérale sur le transport de voyageurs (art. 57 al. 3 LTV), conduite en se trouvant dans l'incapacité de conduire (véhicule automobile, taux d'alcool qualifié dans le sang ou dans l'haleine; art. 91 al. 2 let. a LCR), accomplissement non autorisé d'une course d'apprentissage (art. 95 al. 1 let. d LCR) et contravention à la loi fédérale sur la circulation routière (art. 99 ch. 3 aLCR) à une peine privative de liberté de 42 mois ainsi qu'à une amende de 1'000 francs. Le tribunal a en outre ordonné l'expulsion de A.A._ pour une durée de 5 ans et son inscription dans le Système d'information Schengen (SIS).
B.
Statuant par arrêt du 15 septembre 2021, la Cour d'appel pénal du Tribunal cantonal fribourgeois a rejeté l'appel formé par A.A._ contre le jugement du 8 février 2021, qu'elle a confirmé, sous réserve de la correction d'une inadvertance dans le calcul de la quantité de stupéfiants en cause.
En substance, la cour cantonale a retenu les faits suivants.
B.a.
B.a.a. Entre avril 2017 et avril 2018, puis entre janvier 2019 et novembre 2019, en divers endroits des cantons de U._ et de V._, A.A._ a vendu ou remis gratuitement à des tiers une quantité totale de 186 grammes de cocaïne pure. A ces mêmes périodes, il a également consommé une quantité indéterminée de cocaïne, ainsi qu'un peu de marijuana ou de haschich.
Par ailleurs, dans le courant du mois de novembre 2017, A.A._ a accueilli et hébergé B._, qui était arrivé en Suisse depuis l'Espagne avec 100 grammes de cocaïne, puis l'a conduit chez un autre trafiquant, apportant ainsi à B._ une aide non négligeable. Il a par la suite acquis 50 grammes de cocaïne ainsi importée.
B.a.b. Le 28 mars 2018, vers 3 heures 15, à U._, A.A._ a circulé, en tant qu'élève conducteur, au volant du véhicule immatriculé BE-xxx, alors qu'il présentait une alcoolémie de 0.58 mg/l, qu'il n'était pas régulièrement accompagné et qu'il n'était pas porteur du permis d'élève conducteur.
B.a.c. A huit reprises entre le 20 mars 2018 et le 3 septembre 2019, A.A._ a voyagé, sans titre de transport valable, sur différentes lignes exploitées par les entreprises de transports publics C._ et D._.
B.b. A.A._, né en 1994, est ressortissant de la République de Guinée. Au bénéfice d'une autorisation de séjour (permis B), il est arrivé en Suisse en septembre 2015, pour y rejoindre E.A._, son épouse d'alors, ainsi que leur fille F.A._, née en 2014, toutes deux de nationalité suisse et domiciliées alors à V._. Les époux ont divorcé en 2018.
A.A._ est positif au VIH depuis sa naissance, ce qui nécessite un traitement à vie, et souffre en outre d'une hépatite B, pour laquelle il doit également prendre des médicaments.
A la date de l'arrêt attaqué, A.A._ exécutait sa peine de manière anticipée aux Établissements de Bellechasse.
C.
A.A._ forme un recours en matière pénale au Tribunal fédéral contre l'arrêt du 15 septembre 2021. Il conclut, avec suite de frais et dépens, à la réforme de l'arrêt en ce sens qu'il est renoncé à son expulsion du territoire suisse. Il sollicite en outre l'assistance judiciaire.
Considérant en droit :
1.
Il est constaté que le recourant ne revient pas sur les différentes infractions desquelles il a été reconnu coupable, ni sur les peines qui lui ont été infligées à ce titre.
2.
Le recourant ne conteste pas non plus que l'infraction grave à la loi fédérale sur les stupéfiants, pour laquelle il a été condamné, entraîne en principe son expulsion obligatoire en application de l'art. 66a al. 1 let. o CP. Il demande en revanche qu'il y soit renoncé en vertu de l'art. 66a al. 2 CP, son intérêt privé à demeurer en Suisse l'emportant selon lui sur les intérêts publics à son expulsion.
2.1.
2.1.1. L'art. 66a al. 2 CP prévoit que le juge peut exceptionnellement renoncer à une expulsion lorsque celle-ci mettrait l'étranger dans une situation personnelle grave (première condition) et que les intérêts publics à l'expulsion ne l'emportent pas sur l'intérêt privé de l'étranger à demeurer en Suisse (deuxième condition). À cet égard, il tiendra compte de la situation particulière de l'étranger qui est né ou qui a grandi en Suisse. Les conditions posées par cette disposition sont cumulatives (ATF 144 IV 332 consid. 3.3 p. 339).
2.1.2. La clause de rigueur permet de garantir le principe de la proportionnalité (cf. art. 5 al. 2 Cst.; ATF 146 IV 105 consid. 3.4.2 p. 108; 144 IV 332 consid. 3.3.1 p. 340). Elle doit être appliquée de manière restrictive (ATF 146 IV 105 consid. 3.4.2 p. 108; 144 IV 332 consid. 3.3.1 p. 340). Selon la jurisprudence du Tribunal fédéral, il convient de s'inspirer des critères énoncés à l'art. 31 al. 1 de l'ordonnance relative à l'admission, au séjour et à l'exercice d'une activité lucrative (OASA; RS 142.201) et de la jurisprudence y relative, dans le cadre de l'application de l'art. 66a al. 2 CP. L'art. 31 al. 1 OASA prévoit qu'une autorisation de séjour peut être octroyée dans les cas individuels d'extrême gravité. L'autorité doit tenir compte notamment de l'intégration du requérant selon les critères définis à l'art. 58a al. 1 de la loi fédérale sur les étrangers et l'intégration (LEI; RS 142.20), de la situation familiale, particulièrement de la période de scolarisation et de la durée de la scolarité des enfants, de la situation financière, de la durée de la présence en Suisse, de l'état de santé ainsi que des possibilités de réintégration dans l'État de provenance. Comme la liste de l'art. 31 al. 1 OASA n'est pas exhaustive et que l'expulsion relève du droit pénal, le juge devra également, dans l'examen du cas de rigueur, tenir compte des perspectives de réinsertion sociale du condamné (ATF 144 IV 332 consid. 3.3.2 p. 340 s.; arrêt 6B_1369/2019 du 22 janvier 2020 consid. 2.3.1). En règle générale, il convient d'admettre l'existence d'un cas de rigueur au sens de l'art. 66a al. 2 CP lorsque l'expulsion constituerait, pour l'intéressé, une ingérence d'une certaine importance dans son droit au respect de sa vie privée et familiale garanti par la Constitution fédérale (art. 13 Cst.) et par le droit international, en particulier l'art. 8 CEDH (arrêts 6B_322/2021 du 2 mars 2022 consid. 5.2; 6B_330/2021 du 15 septembre 2021 consid. 4.2.1; 6B_1198/2020 du 19 juillet 2021 consid. 4.2; 6B_379/2021 du 30 juin 2021 consid. 1.2).
2.1.3. Selon la jurisprudence, un étranger peut se prévaloir de l'art. 8 par. 1 CEDH, qui garantit notamment le droit au respect de la vie familiale, pour s'opposer à l'éventuelle séparation de sa famille, pour autant qu'il entretienne une relation étroite et effective avec une personne de sa famille ayant le droit de résider durablement en Suisse (ATF 144 II 1 consid. 6.1; 139 I 330 consid. 2.1 et les références citées). Les relations familiales visées par l'art. 8 par. 1 CEDH sont avant tout celles qui concernent la famille dite nucléaire, soit celles qui existent entre époux ainsi qu'entre parents et enfants mineurs vivant en ménage commun (cf. ATF 144 II 1 consid. 6.1; 135 I 143 consid. 1.3.2; arrêt 6B_177/2021 du 8 novembre 2021 consid. 3.1.3). Dans le cadre de l'examen de la proportionnalité de la mesure (cf. art. 8 par. 2 CEDH), il faut aussi tenir compte de l'intérêt fondamental de l'enfant (art. 3 CDE) à pouvoir grandir en jouissant d'un contact étroit avec ses deux parents (ATF 144 I 91 consid. 5.2; voir aussi arrêt 6B_939/2020 du 4 mars 2021 consid. 3.3.1).
En l'absence de ménage commun avec son enfant et de relations personnelles entretenues de manière régulière, la seule présence en Suisse de l'enfant du recourant ne permet en principe pas de considérer qu'il existe une atteinte à la vie familiale au sens de l'art. 8 par. 1 CEDH et, par conséquent, que son expulsion l'expose à une situation personnelle grave (arrêts 6B_322/2021 du 2 mars 2022 consid. 5.5; 6B_215/2021 du 17 janvier 2022 consid. 5.4; 6B_1151/2020 du 8 avril 2021 consid. 4.2.4).
2.1.4. Selon l'état de santé de l'intéressé et les prestations de soins disponibles dans l'État d'origine, l'expulsion du territoire suisse peut par ailleurs placer l'étranger dans une situation personnelle grave au sens de l'art. 66a CP ou se révéler disproportionnée sous l'angle de l'art. 8 par. 2 CEDH. Lorsque l'intéressé souffre d'une maladie ou d'une infirmité, il sied d'examiner le niveau d'atteinte à la santé, les prestations médicales qui sont à disposition dans le pays d'origine ainsi que les conséquences négatives que cela peut engendrer pour la personne concernée (ATF 145 IV 455 consid. 9.1 p. 459). En matière d'expulsion pénale, l'autorité de jugement appelée à prononcer une telle mesure doit examiner si, en raison de l'état de santé du prévenu, la mesure se révèle disproportionnée (arrêts 6B_1035/2021 du 16 décembre 2021 consid. 3.2; 6B_312/2020 du 11 mai 2020 consid. 2.2.1).
2.2. En l'espèce, la cour cantonale a reconnu qu'en raison de l'état de santé du recourant et des liens qu'il entretenait avec sa fille, son expulsion du territoire suisse le placerait dans une situation personnelle grave (première condition de l'art. 66a al. 2 CP). Elle a en revanche estimé que les intérêts publics à l'expulsion l'emportaient sur ceux, privés, du recourant à demeurer en Suisse (seconde condition de l'art. 66a al. 2 CP), si bien qu'il n'y avait pas matière à faire application de la clause de rigueur (cf. arrêt attaqué, consid. 7.2 p. 10 s.).
2.3. Invoquant une violation de l'art. 66a al. 2 CP, le recourant revient successivement sur les différents éléments que la cour cantonale a pris en considération au moment de procéder à la pesée des différents intérêts en présence.
2.3.1. Le recourant se prévaut de son état de santé, qu'il décrit comme déficient compte tenu de son infection au VIH et de l'hépatite B dont il souffre. Il revient à cet égard sur les courriers électroniques échangés jusqu'en septembre 2021 avec le Dr G._, médecin pénitentiaire aux Établissements de Bellechasse, qui font en substance état d'une dégradation de sa santé durant sa détention et, dans ce contexte, de la nécessité de lui prescrire un nouveau traitement, en raison de la crainte d'une résistance à celui alors prescrit ( Genvoya, à raison d'une tablette par jour), cela sous peine de voir son pronostic vital engagé après quelques mois sans traitement efficace.
Certes, le Dr G._ a fait part, dans ces écrits, de ses doutes quant à la possibilité de mettre en oeuvre un tel traitement en Guinée. Sur ce point, la cour cantonale a toutefois relevé, se fondant à cet égard sur un rapport établi le 12 octobre 2018 par l'Organisation suisse d'aide aux réfugiés (OSAR), que le système de santé prévalant dans le pays d'origine du recourant était en mesure de lui permettre d'obtenir des soins adéquats en lien avec son infection au VIH, ce d'autant que ces soins étaient gratuits, à l'exception toutefois des diagnostics et des frais de laboratoire. Si le rapport mentionnait certes une situation plus compromise en zone rurale, à défaut de centres médicaux suffisants et compte tenu d'un accès parfois long et coûteux en termes de transports, les conditions étaient cependant plus favorables en zone urbaine, où le recourant devrait dès lors s'installer pour pallier ces difficultés. La stigmatisation et la discrimination envers les personnes infectées par le VIH, relevées par le rapport, ne concernaient du reste pas le recourant, homme seul, mais bien plutôt les femmes à charge de famille (cf. arrêt attaqué, consid. 7.2 p. 10; jugement du Tribunal pénal du 8 février 2021, p. 44). Par ailleurs, si le rapport met en évidence des problèmes d'approvisionnement de certains médicaments et de fréquentes ruptures de stock survenues entre 2015 et 2018, il ne paraît pas que ces difficultés concernaient spécifiquement le traitement antirétroviral alors prescrit au recourant ( Genvoya; cf. rapport de l'OSAR, p. 7 s.).
Cela étant, les critiques exposées par le recourant ne permettent pas de considérer que la cour cantonale a fait une lecture arbitraire du rapport de l'OSAR quant aux possibilités de soins adéquats dans son pays d'origine. Par ailleurs, il apparaît qu'en dépit de la dégradation relevée par le Dr G._, l'évolution des affections du recourant était alors suffisamment maîtrisée sous l'angle médical. Le médecin s'est en particulier déclaré optimiste sur la possibilité de lui prescrire un nouveau traitement (cf. e-mail du Dr G._ du 13 septembre 2021, dossier du Tribunal cantonal, P. 109).
Dans un tel contexte, la cour cantonale pouvait encore estimer qu'à ce stade, il n'y avait pas matière à accorder un poids décisif à l'état de santé du recourant dans le cadre de la pesée des intérêts décrite à l'art. 66a al. 2 CP. C'est également le lieu de rappeler que, par principe, un étranger ne peut pas exciper de l'existence en Suisse de prestations médicales de qualité supérieure pour s'opposer à son renvoi dans un pays où le traitement s'avère disponible (cf. arrêts 6B_708/2020 du 11 mars 2021 consid. 5.3; 6B_1079/2018 du 14 décembre 2018 consid. 1.4.2; 2C_401/2018 du 17 septembre 2018 consid. 7).
2.3.2. Le recourant entend en outre se prévaloir de la présence en Suisse de sa fille F.A._, née en 2014, et de son souhait de maintenir les forts liens qui les unissent.
Il ne prétend toutefois pas exercer la garde ou plus largement l'autorité parentale à l'égard de F.A._, qui vit avec sa mère, ni contribuer à l'entretien de sa fille, ni encore que, depuis son incarcération, les contacts entretenus, dans le cadre de son droit de visite, avaient été au-delà d'appels par vidéo et par téléphone passés depuis son établissement de détention, lors même qu'il n'est fait état d'aucune demande tendant à y mettre en oeuvre des visites effectives. Or, on ne voit pas qu'il serait d'emblée impossible au recourant de maintenir de tels liens depuis la Guinée, voire, compte tenu des bonnes relations qu'il allègue entretenir avec la mère de l'enfant, d'organiser des visites dans ce pays durant les vacances scolaires.
Comme l'a relevé la cour cantonale, il ne pouvait pas non plus être ignoré que le recourant s'était adonné à un trafic de cocaïne depuis avril 2017 et n'avait ainsi, compte tenu également de ses périodes de détention, pas réellement pu exercer son rôle de père, à tout le moins depuis que sa fille est âgée de 3 ans. Aucun élément dans l'arrêt entrepris ne laisse du reste suggérer que le développement de l'enfant serait concrètement en danger ou que l'entretien assuré par sa mère ne serait pas adéquat.
2.3.3. Le recourant s'attache par ailleurs à relativiser l'importance des faits commis en lien avec sa condamnation pour infraction grave à la LStup.
En tant qu'il laisse entendre que le trafic mené s'inscrivait uniquement dans le cadre de sa dépendance à la cocaïne, qu'il vendait pour financer sa propre consommation, son argumentation s'oppose toutefois aux faits retenus par l'autorité précédente, dont il ressort que l'ampleur du trafic reproché au recourant allait largement au-delà de ce qui lui était nécessaire pour assouvir son addiction. On relèvera à cet égard que, dans le contexte de condamnations en raison d'infractions graves à la loi fédérale sur les stupéfiants, la jurisprudence du Tribunal fédéral reconnaît l'existence d'intérêts publics importants à l'expulsion, compte tenu en particulier des ravages que provoque la drogue dans la population, alors que la CourEDH admet pour sa part que les autorités sont fondées à faire preuve d'une grande fermeté à l'encontre des personnes qui contribuent à la propagation de ce fléau (cf. arrêts CourEDH K.M. c. Suisse du 2 juin 2015 [requête n° 6009/10], § 55; Dalia c. France du 19 février 1998, Recueil CourEDH 1998-I 76 § 54; cf. aussi arrêts 6B_93/2021 du 6 octobre 2021 consid. 5.2; 6B_40/2021 du 29 septembre 2021 consid. 7.3). Par ailleurs, la peine privative de liberté à laquelle le recourant a été condamné (42 mois) dépasse largement une année, ce qui pourrait permettre une révocation de son autorisation de séjour sur la base de l'art. 62 al. 1 let. b LEI (cf. ATF 139 I 145 consid. 2.1, selon lequel constitue une " peine privative de liberté de longue durée " au sens de l'art. 62 al. 1 let. b LEtr [depuis le 1er janvier 2019: LEI] toute peine dépassant un an d'emprisonnement; arrêts 2C_1049/2021 du 18 mars 2022 consid. 4.3; 6B_330/2021 du 15 septembre 2021 consid. 4.4.2; 6B_627/2021 du 27 août 2021 consid. 4.3.3).
2.3.4. Au surplus, le recourant, arrivé en Suisse en 2015, à l'âge de 21 ans, ne peut aucunement se prévaloir d'être dans une situation particulière au sens de l'art. 66a al. 2, 2ème phrase, CP. Aussi, la cour cantonale a observé que, sur les 6 ans vécus en Suisse, le recourant avait passé près de 2 ans à s'adonner à un trafic de stupéfiants (avril 2017 à avril 2018, puis janvier 2019 à novembre 2019) et plus de 2 ans en détention (avril 2018 à décembre 2018 et depuis le 4 novembre 2019). Il ressort en outre de l'arrêt entrepris qu'au moment de son incarcération en novembre 2019, il était sans emploi ni domicile en Suisse, ni n'y était intégré socialement. On ne voit dès lors pas que le recourant, de surcroît sans formation professionnelle, se trouverait dans une situation sensiblement plus défavorable dans son pays d'origine, ni qu'il disposerait en Suisse de meilleures chances de réinsertion sociale. C'est en vain que le recourant invoque à cet égard de vagues perspectives d'embauche auprès du groupe H._, à W._, ou encore la possibilité d'être hébergé à X._ par sa nouvelle amie.
2.3.5. Au regard des considérations qui précèdent, il ne saurait être renoncé à l'expulsion du recourant en application de l'art. 66a al. 2 CP, la mesure, prononcée pour une durée de 5 ans, demeurant par ailleurs proportionnée. La cour cantonale n'a à cet égard pas violé le droit fédéral, ni d'une autre manière le droit conventionnel.
3.
Mal fondé, le recours doit être rejeté. Comme il était dénué de chances de succès, la demande d'assistance judiciaire doit être rejetée (art. 64 al. 1 LTF). Le recourant, qui succombe, supportera les frais judiciaires, dont le montant sera fixé en tenant compte de sa situation financière, laquelle n'apparaît pas favorable (art. 65 al. 2 et 66 al. 1 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal de l'État de Fribourg, Cour d'appel pénal.
Lausanne, le 1er avril 2022
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
La Présidente : Jacquemoud-Rossari
Le Greffier : Tinguely