Faits :
A.
Par jugement du 14 février 2020, le Tribunal correctionnel de l'arrondissement de la Broye et du Nord vaudois a reconnu A._ coupable de dommages à la propriété, injure, brigandage, violation de domicile, violence et menace contre les autorités et les fonctionnaires, vol d'usage de cycle et contravention à la LStup (RS 812.121). Il l'a condamné à une peine privative de liberté de 12 mois (sous déduction de la détention subie avant jugement), a constaté que A._ avait été détenu dans des conditions illicites pendant 30 jours et ordonné que 15 jours soient déduits de la peine privative de liberté, ainsi qu'à une peine pécuniaire de 30 jours-amende à 30 fr. le jour, la peine pécuniaire étant complémentaire à celle prononcée par le Ministère public cantonal Strada le 25 juin 2019, et à une amende de 300 fr., avec une peine privative de liberté de substitution de 3 jours. Il a révoqué le sursis qui lui avait été accordé le 7 janvier 2016 par le Ministère public de l'arrondissement de Lausanne, ordonnant l'exécution de la peine prononcée, et a prononcé son expulsion du territoire suisse pour une durée de 5 ans. Il a renvoyé B._ à ses réserves civiles et statué sur les frais de la procédure.
B.
Statuant le 11 juin 2020, la Cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel formé par A._ contre ce jugement.
Il en ressort notamment ce qui suit.
B.a. A C._, le 18 mai 2017 vers 11h30, D._ et A._ se sont rendus à la rue E._ dans l'intention d'y commettre un vol, celui-ci ayant entendu dire que B._ ne verrouillait pas son appartement. La porte de l'immeuble étant fermée, ils ont contacté F._ (déféré séparément) et lui ont demandé de leur donner un tournevis, ce qu'il a fait. Les deux comparses ont sonné à l'appartement de B._ pour s'assurer qu'il était inoccupé. A._ est parvenu à ouvrir la porte de l'immeuble au moyen du tournevis et les deux hommes se sont introduits dans l'appartement en passant par la porte palière, qui n'était pas fermée à clé. Ils ont dérobé différents objets et les ont mis dans des sacs trouvés sur place, soit une console de jeux, deux enceintes bluetooth, deux IPads, un ordinateur portable, des manettes de PS4 et un IPhone 4. Peu après, ils se sont faits surprendre par l'occupant des lieux. B._ a cherché à prendre son téléphone pour appeler la police mais D._ l'a averti qu'il n'avait pas intérêt à le faire, l'a attrapé et l'a secoué, puis tous deux ont basculé sur le canapé. D._ a tenté de donner des coups de poings à la victime, avant de demander à A._ le tournevis que celui-ci tenait dans la main. D._ a saisi l'outil et B._ a pris peur, renonçant à appeler les gendarmes. Les deux acolytes lui ont ordonné de s'enfermer dans sa chambre. Une nouvelle empoignade a eu lieu entre B._ et D._, qui a exigé son argent. Celui-ci n'en ayant pas, D._ l'a poussé. D._ et A._ ont pris un coffre-fort, ramassé les sacs et se sont enfuis avec le butin, qui a par la suite été caché en forêt. Le soir même, A._ est retourné chercher les objets dérobés et en a revendu la majeure partie. Dans le prolongement de ces faits, soit à C._, le 18 mai 2017, A._ a dérobé un vélo afin d'aller récupérer ledit butin.
E ntre le 12 février 2017 et le 19 mai 2017, les faits antérieurs étant prescrits, A._ a fumé de la marijuana à raison de cinq à six joints par jour, ainsi qu'occasionnellement de la MDMA.
A la gare de C._, le 1er juillet 2018 vers 0 5h40, A._, fortement sous l'influence de l'alcool, s'est assis sur une moto de police en stationnement, de laquelle les agents lui ont demandé de descendre. Peu après, A._ a eu une altercation avec un autre individu. Les policiers sont intervenus et ont séparé les pro tagonistes. A._ les a insultés au moyen des termes suivants: "fils de putes, bâtards de merde, bande d'enculés, enculés de merde, nique les morts, je pisse sur ta tombe, ta mère c'est une pute et elle adore ça, je vais niquer vos salopes de mères et toutes vos familles", ainsi que "je vais vous crever" ou "vous imaginez même pas ce qui va vous arriver". I l a également menacé plusieurs d'entre eux de leur donner des coups de tête, ce qu'il a fait à l'encontre d u br i g adier G._, lequel, coiffé d'un casque de motard, n'a pas été blessé. Les agents ont dû maitriser A._ afin de le conduire au poste. A._ n'a cessé d'injurier et menacer les policiers. Placé dans un box de maintien, ilen a arraché le faux plafondet s'est suspendu à un conduit de ventilations, avant d'être finalement placéen cellule.
B.b. Né en 1996, A._ a vécu en Suisse dès son plus jeune âge, pays dans lequel il a été enregistré à sa naissance. Il a décrit une scolarité et une famille ordinaires, ainsi que des échecs dans ses tentatives d'apprentissages. A la recherche d'un emploi ou d'un apprentissage dans la restauration ou la logistique, il a travaillé dans les vignes et effectué des stages dans les pneumatiques et la boulangerie. Une fois par année, il s'est rendu une semaine ou deux en Bosnie pour visiter son grand-père et son oncle, qui constituent ses seules attaches avec ce pays. En 2015, il est resté trois mois chez son grand-père en Bosnie car il ne trouvait pas de place d'apprentissage. Il n'y est plus retourné depuis environ deux ans, son grand-père étant décédé. Le reste de sa famille vit en Europe, majoritairement en Suisse, dont ses parents et ses frère et soeur. Ses oncles résident en Suisse, à H._, de même que ses cousins, à I._, avec qui il a peu de relations. Il voit des amis et a gardé le même style de vie, constitué de sorties et de jeux sur ordinateur, avec un rythme de sommeil inversé. Son dossier auprès du Service de la population révèle que A._ a bénéficié d'une autorisation de séjour B jusqu'au 17 juin 2016, après s'être fait refuser une autorisation d'établissement C en 2014 en raison de quatre condamnations prononcées par le Tribunal des mineurs. Il a bénéficié du revenu d'insertion en avril 2018 et a été mis sous curatelle de portée générale le 17 novembre 2017. Selon le rapport d'expertise psychiatrique du 27 mai 2019, A._ présente un trouble mixte de la personnalité avec traits immatures et dyssociaux, syndrome de dépendance au cannabis (utilisation actuelle), troubles mentaux et troubles du comportement liés à l'utilisation d'alcool nocive pour la santé.
B.c. A._ a été condamné le 7 janvier 2016 par le Ministère public de l'arrondissement de Lausanne pour vol, violation des règles de la circulation routière, conducteur se trouvant dans l'incapacité de conduire (alcoolisé), vol d'usage d'un véhicule automobile, conduite d'un véhicule automobile sans le permis de conduire requis, circulation sans permis de circulation ou plaque de contrôle et contravention à la LStup, à une peine pécuniaire de 90 jours-amende à 30 fr. le jour, assortie du sursis et d'un délai d'épreuve de deux ans, ainsi qu'à une amende de 600 francs. Il a en outre été condamné le 25 juin 2019 par le Ministère public cantonal Strada pour vol, à une peine pécuniaire de 30 jours-amende à 30 fr. le jour.
C.
Alors représenté par Me Jean Lob, avocat, A._ forme un recours en matière pénale au Tribunal fédéral contre le jugement précité. Il conclut, avec suite de frais et dépens, à sa réforme, en ce sens qu'il est condamné pour complicité de brigandage à une peine privative de liberté de 9 mois, sous déduction de la détention avant jugement, et à ce que son expulsion soit "annulée et remplacée, le cas échéant, par un sévère avertissement". Par ailleurs, il requiert l'octroi de l'effet suspensif et de l'assistance judiciaire.
Considérant en droit :
1.
Le recourant conteste sa qualité de coauteur du brigandage, soutenant qu'il ne pourrait être condamné que pour complicité.
1.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins qu'elles n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir, pour l'essentiel, de façon arbitraire au sens de l'art. 9 Cst. Une décision n'est pas arbitraire du seul fait qu'elle apparaît discutable ou même critiquable; il faut qu'elle soit manifestement insoutenable et cela non seulement dans sa motivation mais aussi dans son résultat (ATF 145 IV 154 consid. 1.1 p. 155 s.; 143 IV 500 consid. 1.1 p. 503; sur la notion d'arbitraire v. ATF 143 IV 241 consid. 2.3.1 p. 244). Le Tribunal fédéral n'entre en matière sur les moyens fondés sur la violation de droits fondamentaux, dont l'interdiction de l'arbitraire, que s'ils ont été invoqués et motivés de manière précise (art. 106 al. 2 LTF; ATF 143 IV 500 consid. 1.1 p. 503). Les critiques de nature appellatoire sont irrecevables (ATF 145 IV 154 consid. 1.1 p. 156). Lorsque l'appréciation des preuves et la constatation des faits sont critiquées en référence à la présomption d'innocence (art. 6 par. 2 CEDH, 32 al. 1 Cst. et 10 CPP), le principe in dubio pro reo n'a pas de portée plus large que l'interdiction de l'arbitraire (ATF 145 IV 154 consid. 1.1 p. 156; 143 IV 500 consid. 1.1 p. 503).
1.2. Est un coauteur celui qui collabore, intentionnellement et de manière déterminante, avec d'autres personnes à la décision de commettre une infraction, à son organisation ou à son exécution, au point d'apparaître comme l'un des participants principaux. Il faut que, d'après les circonstances du cas concret, la contribution du coauteur apparaisse essentielle à l'exécution de l'infraction. La seule volonté quant à l'acte ne suffit pas. Il n'est toutefois pas nécessaire que le coauteur ait effectivement participé à l'exécution de l'acte ou qu'il ait pu l'influencer. La coactivité suppose une décision commune, qui ne doit cependant pas obligatoirement être expresse, mais peut aussi résulter d'actes concluants, le dol éventuel quant au résultat étant suffisant. Il n'est pas nécessaire que le coauteur participe à la conception du projet, auquel il peut adhérer ultérieurement. Il n'est pas non plus nécessaire que l'acte soit prémédité; le coauteur peut s'y associer en cours d'exécution. Ce qui est déterminant, c'est que le coauteur se soit associé à la décision dont est issue l'infraction ou à la réalisation de cette dernière, dans des conditions ou dans une mesure qui le font apparaître comme un participant non pas secondaire, mais principal (ATF 135 IV 152 consid. 2.3.1 p. 155; 130 IV 58 consid. 9.2.1 p. 66; 125 IV 134 consid. 3a p. 136).
1.3. Le complice est celui qui aura intentionnellement prêté assistance pour commettre un crime ou un délit. Objectivement, le complice doit apporter à l'auteur principal une contribution causale à la réalisation de l'infraction, de telle sorte que les événements ne se seraient pas déroulés de la même manière sans cet acte de favorisation (ATF 132 IV 49 consid. 1.1 p. 52 et les références citées); il n'est toutefois pas nécessaire que l'assistance du complice soit une condition sine qua non à la réalisation de l'infraction (ATF 121 IV 109 consid. 3a p. 119). L'assistance prêtée par le complice peut notamment être intellectuelle, ce qui est le cas lorsque celui-ci encourage l'auteur, entretient ou fortifie sa décision de commettre l'infraction (ATF 79 IV 145 p. 147; arrêt 6B_592/2020 du 5 novembre 2020 consid. 2.1). Subjectivement, il faut que le complice sache ou se rende compte qu'il apporte son concours à un acte délictueux déterminé et qu'il le veuille ou l'accepte; à cet égard, il suffit qu'il connaisse les principaux traits de l'activité délictueuse qu'aura l'auteur. Pour agir de manière intentionnelle, le complice doit connaître l'intention de l'auteur principal, qui doit donc déjà avoir pris la décision de l'acte (ATF 132 IV 49 consid. 1.1 p. 52; 121 IV 109 consid. 3a p. 120).
1.4. La cour cantonale a constaté que le recourant avait déclaré avoir lui-même donné le tournevis à D._ lors du brigandage, n'avoir pas réagi lorsque celui-ci s'en était pris à B._ et avoir intimé l'ordre à celui-ci d'aller dans sa chambre. Il avait compris que c'était eux qui menaçaient B._ et non l'inverse, celui-ci devant avoir peur de la situation. Il avait admis avoir menti en disant que c'était D._ qui lui avait donné le sac puisqu'il l'avait effectivement trouvé parterre et avoir convenu de partager le butin. Le recourant avait agi de la manière décrite dans l'acte d'accusation, comme il l'avait admis dans un premier temps, ses dernières déclarations n'étant pas crédibles. Sur cette base, la cour cantonale a apprécié que la participation du recourant avait été essentielle à la commission du brigandage. Il avait participé, par actes concluants, à la décision commune de muer le simple vol initialement prévu par le duo en brigandage. Par sa présence, mais aussi par ses paroles, en intimant l'ordre à B._ d'aller dans sa chambre et de se taire, le recourant avait participé de manière déterminante à faire pression sur la victime et à la menacer. Il avait endossé un rôle dépassant largement celui de la seule assistance à un crime. S'il était vrai qu'il avait peut-être à un moment donné demandé à son comparse d'arrêter, il ne s'était nullement désolidarisé du comportement de D._ au cours des faits.
1.5. Le recourant soutient que les éléments retenus par la cour cantonale seraient insuffisants pour retenir la coactivité de brigandage. Il serait seulement le complice de D._, dans la mesure où sa participation au forfait aurait été secondaire et subordonnée. A l'appui, il se réfère aux déclarations qu'il a faites devant la cour cantonale: s'il était en possession d'un tournevis, c'était uniquement pour ouvrir la porte de l'appartement. Il avait remis l'outil à D._ à la demande de celui-ci, sans penser à l'usage qu'il pourrait en faire, et n'aurait pas voulu que celui-ci s'en prenne physiquement à la victime. Aucun acte de violence ne saurait lui être imputé. D._ n'aurait pas utilisé le tournevis, ni frappé B._.
Le recourant présente sa propre appréciation des preuves et version des faits, en introduisant des éléments qui ne ressortent pas du jugement attaqué ou qui entrent en contradiction avec celui-ci, sans toutefois articuler une argumentation satisfaisant aux exigences de l'art. 106 al. 2 LTF. Ce procédé est irrecevable.
En tout état, sur la base des constatations de fait dénuées d'arbitraire, la cour cantonale pouvait parvenir à la conclusion que le recourant avait adhéré et collaboré de manière déterminante au brigandage perpétré. Il a en effet collaboré intentionnellement et de manière significative à la décision de commettre l'infraction, notamment par actes concluants, ainsi qu'à sa mise en oeuvre. Il s'est de la sorte associé au brigandage, dans des conditions ou dans une mesure qui le font apparaître comme un participant non pas secondaire, mais principal. C'est donc à juste titre que la cour cantonale a retenu que le recourant devait être reconnu coupable de brigandage. Le grief soulevé doit partant être rejeté, dans la mesure de sa recevabilité.
1.6. Au bénéfice du doute conviendrait-il, selon le recourant, de tenir compte à sa décharge qu'il avait "peut-être à un moment donné demandé à son comparse d'arrêter".
La cour cantonale n'a pas écarté cette hypothèse. Elle a cependant estimé que si celle-ci était vraie, le recourant ne s'était pas pour autant désolidarisé du comportement de D._. Il n'avait pas réagi au moment de l'altercation physique opposant celui-ci à la victime, en tentant de les séparer, et n'avait pas refusé de lui donner le tournevis lorsque D._ le lui avait demandé, alors même qu'il ne pouvait que savoir que cet outil servirait à accroître la menace. De plus, le recourant s'était emparé d'une partie du butin, qu'il était personnellement allé récupérer en soirée (jugement attaqué, p. 15). On comprend ainsi de l'appréciation des preuves effectuée par la cour cantonale, dont le recourant échoue à démontrer l'arbitraire, que même à retenir que le recourant aurait prononcé la phrase dont il se prévaut, celle-ci n'a pas eu de conséquence sur la qualification de sa participation. La cour cantonale était dès lors fondée à retenir que le rôle endossé par le recourant avait largement dépassé celui de la seule assistance à un crime. Son grief doit par conséquent être rejeté.
2.
Le recourant conteste la quotité de la peine privative de liberté infligée - concluant à ce que celle-ci soit "quelque peu réduite" - fondé seulement sur sa condamnation pour complicité de brigandage. Dès lors qu'il ne l'obtient pas, cette argumentation est irrecevable.
3.
Le recourant s'oppose à son expulsion du territoire suisse.
3.1. Aux termes de l'art. 66a al. 1 let. c CP, le juge expulse de Suisse l'étranger qui est condamné notamment pour brigandage (art. 140 CP), quelle que soit la quotité de la peine prononcée à son encontre, pour une durée de 5 à 15 ans.
Selon l'art. 66a al. 2 CP, le juge peut exceptionnellement renoncer à une expulsion lorsque celle-ci mettrait l'étranger dans une situation personnelle grave 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. A cet égard, il tiendra compte de la situation particulière de l'étranger qui est né ou qui a grandi en Suisse.
La clause de rigueur permet de garantir le principe de la proportionnalité (art. 5 al. 2 Cst.). 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 (ATF 146 IV 105 consid. 3.4 p. 108 ss; 144 IV 332 consid. 3.3.2 p. 340 s.), il convient de s'inspirer des critères énoncés à l'art. 31 de l'ordonnance du 24 octobre 2007 relative à l'admission, au séjour et à l'exercice d'une activité lucrative (OASA; RS 142.201). 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.). 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_825/2020 du 28 octobre 2020 consid. 4.1; 6B_397/2020 du 24 juillet 2020 consid. 6.1; 6B_344/2020 du 9 juillet 2020 consid 3.1).
Selon la jurisprudence, pour se prévaloir du droit au respect de sa vie privée au sens de l'art. 8 par. 1 CEDH, l'étranger doit établir l'existence de liens sociaux et professionnels spécialement intenses avec la Suisse, notablement supérieurs à ceux qui résultent d'une intégration ordinaire. Le Tribunal fédéral n'adopte pas une approche schématique qui consisterait à présumer, à partir d'une certaine durée de séjour en Suisse, que l'étranger y est enraciné et dispose de ce fait d'un droit de présence dans notre pays. Il procède bien plutôt à une pesée des intérêts en présence, en considérant la durée du séjour en Suisse comme un élément parmi d'autres et en n'accordant qu'un faible poids aux années passées en Suisse dans l'illégalité, en prison ou au bénéfice d'une simple tolérance (cf. ATF 134 II 10 consid. 4.3 p. 24; arrêt 6B_825/2020 du 28 octobre 2020 consid. 4.1). Un séjour légal de dix années suppose en principe une bonne intégration de l'étranger (ATF 144 I 266 consid. 3.9 p. 278).
3.2. Le recourant ne conteste pas avoir été condamné pour une infraction à l'art. 140 CP, qui tombe sous le coup de l'art. 66a al. 1 let. c CP. Il fait valoir que son expulsion du territoire suisse ne serait pas justifiée au regard de sa situation personnelle et invoque l'application de la clause de rigueur, dans la mesure où il est né en Suisse et y aurait toute sa parenté. Le cas échéant, il fait valoir que la décision d'expulsion pourrait être "remplacée par un sévère avertissement" et son autorisation de rester en Suisse maintenue, moyennant le prononcé d'une "sommation" qui l'engagerait à "prendre toutes mesures pour s'abstenir de recourir aux services sociaux". Il indique qu'il aurait recouru contre une décision instituant à son encontre une curatelle de portée générale (art. 398 CC) et que son recours aurait été partiellement admis par arrêt rendu le 18 mai 2018 par la Chambre des curatelles du Tribunal cantonal vaudois. Il produit l'arrêt en question, aux termes duquel il est notamment mis fin à l'enquête en placement à des fins d'assistance ouverte en faveur du recourant et ordonné la poursuite de l'enquête en institution d'une mesure de protection en sa faveur.
3.3. L'expulsion d'un individu étant né et ayant passé toute son existence en Suisse, jusqu'à l'âge adulte, ne peut que causer à celui-ci une atteinte à son droit au respect de sa vie privée, cela indépendamment de sa situation personnelle et familiale (cf. arrêt 6B_255/2020 du 6 mai 2020 consid. 1.2.3 et la référence citée). En l'espèce, un renvoi du recourant en Bosnie le placerait dans une situation personnelle grave - ce qu'a admis la cour cantonale (jugement entrepris, p. 20) - et constituerait une atteinte sensible au respect de sa vie privée au sens de l'art. 8 par. 1 CEDH, de sorte que la première condition cumulative de l'art. 66a al. 2 CP est réalisée.
3.4. Il convient encore d'examiner si l'intérêt privé du recourant à demeurer en Suisse peut l'emporter sur l'intérêt public présidant à son expulsion.
3.4.1. Dans l'appréciation du cas de rigueur, l'art. 66a al. 2 2ème phrase CP impose expressément de prendre en considération la situation particulière de l'étranger qui est né ou qui a grandi en Suisse.
L'examen de la clause de rigueur doit être effectué dans chaque cas sur la base des critères d'intégration habituels (cf. ATF 144 IV 332 consid. 3.3.2 p. 340 s.). La situation particulière des étrangers nés ou ayant grandi en Suisse est prise en compte en ce sens qu'une durée de séjour plus longue, associée à une bonne intégration - par exemple en raison d'un parcours scolaire effectué en Suisse - doit généralement être considérée comme une indication importante de l'existence d'intérêts privés suffisamment forts et donc tendre à retenir une situation personnelle grave. Lors de la pesée des intérêts qui devra éventuellement être effectuée par la suite, la personne concernée doit se voir accorder un intérêt privé plus important à rester en Suisse au fur et à mesure que la durée de sa présence augmente. A l'inverse, on peut partir du principe que le temps passé en Suisse est d'autant moins marquant que le séjour et la scolarité achevée en Suisse sont courts, de sorte que l'intérêt privé à rester en Suisse doit être considéré comme moins fort (ATF 146 IV 105 consid. 3.4.4 p. 109 s.; arrêt 6B_286/2020 du 1er juillet 2020 consid. 1.4.1).
3.4.2. La cour cantonale a notamment exposé que le recourant ne travaillait pas et n'avait jamais véritablement travaillé en Suisse. Il avait échoué à ses apprentissages et ne disposait d'aucune formation professionnelle, vivant désormais de l'aide sociale. Ses quelques stages ou recherches d'emploi n'avaient jusqu'à ce jour rien donné. Il disposait certes d'amis, mais ne faisait partie d'aucune association, sportive ou autre. Il consommait des produits stupéfiants de longue date et son parcours judiciaire était déjà étoffé. Ses infractions - parfois graves - étaient multiples et révélaient un mépris généralisé pour l'ordre juridique suisse, les règles de la circulation routière, le bien et l'honneur d'autrui, ainsi que l'autorité en général. Le recourant avait entretenu des relations régulières avec la Bosnie, son pays d'origine. Il s'y était rendu une fois par année, une à deux semaines pour voir son grand-père, jusqu'à il y a deux ans. Il y avait également effectué un séjour prolongé de trois mois. Il avait toujours un oncle en Bosnie et parlait la langue de son pays. En définitive, en raison de la faible intégration du recourant en Suisse, et compte tenu de sa propension à commettre des infractions et du risque élevé de récidive qu'il présentait, l'intérêt public à son expulsion l'emportait sur l'intérêt de celui-ci à demeurer en Suisse. Il n'y avait pas lieu de faire application de la clause de rigueur. La durée de l'expulsion - 5 ans - ne prêtait pas le flanc à la critique.
3.4.3. Sur la base des constatations de fait dénuées d'arbitraire, la pesée des intérêts opérée par la cour cantonale doit être confirmée.
En effet, les perspectives d'intégration du recourant en Suisse apparaissent faibles, dans la mesure où il n'a jamais travaillé dans ce pays et ne dispose d'aucune formation professionnelle. A l'inverse, l'intégration socio-professionnelle du recourant en Bosnie, pays dont il parle la langue, où il s'est rendu régulièrement et où vit encore son oncle, paraît envisageable, à plus forte raison qu'il est encore jeune. Les perspectives d'intégration dans ce pays n'apparaissent pas moins bonnes qu'en Suisse. Ainsi, l'intérêt privé du recourant à demeurer en Suisse est plutôt faible. Par ailleurs, le recourant consomme des produits stupéfiants et fait l'objet de plusieurs condamnations pénales - y compris en tant que mineur - alors qu'il n'est qu'un jeune adulte. Ses condamnations ne semblent pourtant pas l'avoir motivé à reprendre sa vie en mains, vu l'oisiveté décrite dans l'état de fait cantonal. Au vu de sa propension à la commission régulière d'infractions variées et répétées, l'intérêt public à son expulsion est particulièrement important. En définitive, l'intérêt public à l'expulsion du recourant l'emporte sur l'intérêt de celui-ci à rester en Suisse. Le recourant se prévaut encore de l'admission partielle de son recours contre une décision instituant à son encontre une curatelle de portée générale. Il n'expose cependant pas en quoi cet élément aurait une influence sur l'appréciation du cas de rigueur. Le recourant relève enfin qu'il n'aurait que deux antécédents, ce qui ressort bien du jugement entrepris. Infondés, les griefs du recourant doivent être rejetés.
Pour le reste, l'argumentation du recourant est irrecevable, dans la mesure où elle s'écarte de l'état de fait retenu par la cour cantonale, par lequel le Tribunal fédéral est lié (art. 105. al. 1 LTF), sans démontrer en quoi celui-ci serait entaché d'arbitraire. Il en va ainsi lorsque le recourant avance qu'il aurait de nombreux amis en Suisse, qu'il envisagerait de recommencer le football dans un club et n'aurait que quelques notions du bosniaque. Lorsque le recourant prétend que sa condamnation à une peine privative de liberté de 12 mois demeurerait dans une certaine mesure "modeste", sa démarche est appellatoire, partant également irrecevable.
Dans la mesure où l'expulsion est confirmée, la conclusion du recourant visant à remplacer l'expulsion par un "sévère avertissement" est sans objet.
4.
Le recours doit être rejeté dans la mesure où il est recevable. Comme il était dénué de chance de succès, la demande d'assistance judiciaire doit être rejetée (art. 64 al. 1 LTF). Le recourant, qui succombe, supporte 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). Enfin, la cause étant tranchée, la demande d'effet suspensif est sans objet, à supposer qu'elle en eût un, le recours étant de plein droit suspensif tant en ce qui concerne la condamnation à une peine privative de liberté ferme (art. 103 al. 2 let. b LTF) que la mesure d'expulsion.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
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 à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 15 décembre 2020
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Rettby