Faits :
A.
Le 28 avril 2017, A._ SA a déposé une demande de permis de construire pour un chalet de 6 appartements sur trois niveaux en résidence principale sur la parcelle 1184 de la commune de Gryon. D'une surface totale de 2'376 m2, la parcelle est située en amont de la route de Solalex, à 1'250 m d'altitude environ. Elle est affectée à la zone de chalets B selon le règlement communal de 1987. Helvetia Nostra a formé opposition au projet en invoquant la législation sur les résidences secondaires et le nécessaire redimensionnement de la zone à bâtir. Le 21 juillet 2017, la Municipalité de Gryon a délivré le permis de construire moyennant notamment l'inscription au registre foncier d'une mention "résidence principale". L'opposition a été levée le 25 juillet suivant par la municipalité, celle-ci considérant que la commune connaissait une forte croissance démographique et une pénurie de logements vacants, de sorte qu'il n'y avait pas d'indice d'abus de droit.
B.
Par arrêt du 16 août 2018, la Cour de droit administratif et public du Tribunal cantonal vaudois a admis le recours formé par Helvetia Nostra et a annulé le permis de construire ainsi que la décision sur opposition. La population de Gryon avait augmenté d'environ 100 habitants depuis 2013. Toutefois, 17 logements en résidence principale avaient été réalisés ou étaient en cours de construction, et 10 étaient "à réaliser", en plus des 6 logements litigieux. Selon les renseignements de Statistique Vaud, 107 logements étaient vacants au 23 juin 2017; 10 d'entre eux l'étaient en résidence principale, mais on ne pouvait exclure qu'un certain nombre de résidences secondaires soient transformées en résidences principales. Les différentes demandes de renseignements produites par la constructrice ne portaient pas toutes sur des résidences principales. Il était douteux qu'il existe une demande pour 6 nouveaux logements dont on ignorait le prix et dont la typologie n'était pas adaptée à des familles.
C.
Agissant par la voie du recours en matière de droit public, A._ SA demande au Tribunal fédéral d'annuler l'arrêt cantonal et de confirmer la décision de la Municipalité de Gryon, subsidiairement de renvoyer la cause à la cour cantonale pour complément d'instruction.
La cour cantonale se réfère à son arrêt. La Municipalité de Gryon conclut à l'admission du recours, Helvetia Nostra à son rejet. Invité à se déterminer, l'Office fédéral du développement territorial propose le rejet du recours. Les parties ont ensuite persisté dans leurs conclusions; la recourante a déposé une dernière écriture spontanée le 17 mai 2019.

Considérant en droit :
1.
Dirigé contre une décision finale (<ref-law>) prise en dernière instance cantonale (art. 86 al. 1 let. d LTF) dans une cause de droit public (<ref-law>), le recours est en principe recevable, aucune des exceptions prévues à l'<ref-law> n'étant réalisée. Le recours a été déposé dans le délai prescrit (<ref-law>). La recourante, dont le permis de construire a été annulé par l'instance cantonale, a qualité pour agir contre ce prononcé (<ref-law>). Il y a donc lieu d'entrer en matière.
2.
La recourante se plaint d'arbitraire dans l'établissement des faits et l'appréciation des preuves. Elle produit deux pièces extraites du site Statistique Vaud concernant le taux de vacance par taille de logement et le nombre moyen d'habitants par logement dans le canton de Vaud. Elle estime que ces pièces nouvelles seraient recevables car elles permettraient de répondre à l'argumentation inattendue de l'arrêt cantonal sur ces points. Elle produit également des pièces extraites du guichet cartographique de l'Etat de Vaud démontrant la position de la parcelle par rapport à deux autres ayant fait l'objet de décisions de la CDAP retenant une proximité suffisante avec la plaine. Point n'est besoin d'examiner la recevabilité de ces pièces nouvelles au regard de l'<ref-law> car celles-ci ne changent rien, comme on le verra, à l'issue de la cause.
S'agissant des logements vacants dans la commune de Gryon, la recourante reproche à la cour cantonale de s'être fondée sur les données fournies par Statistique Vaud le 23 juin 2017, ignorant toutefois qu'il n'y a dans la commune que cinq logements libres de deux et trois pièces et demi, que le nombre de logements vacants a passé de 17 en juin 2016 à 10 un an plus tard et que la municipalité a autorisé la construction de 14 logements par une coopérative, ce qui démontrerait le besoin. S'agissant du taux de vacance, la cour cantonale aurait méconnu que celui-ci est de 1,7%, proche d'une situation de pénurie. S'agissant de la croissance démographique, l'arrêt attaqué ne relèverait pas que celle-ci est constante depuis l'année 2000, de sorte que la population continuera d'augmenter à l'avenir contrairement au cas traité dans l'arrêt 1C_103/2017 du 16 janvier 2018. La CDAP aurait aussi omis de tenir compte de l'incertitude quant à la réalisation des 10 logements mis à l'enquête en 2016 et 2017, et arbitrairement retenu que ces logements, plus les 17 réalisés depuis 2013, suffiraient à loger les 100 nouveaux habitants de la commune. La prise en compte des logements en résidence secondaire pour satisfaire à la demande de résidence principale serait aussi erronée puisqu'il s'agit d'une simple supposition, que le prix des premières est notoirement plus élevé que celui des secondes, et que, pour l'essentiel, les biens concernés se trouvent éloignés du centre de Gryon. La cour cantonale aurait aussi écarté de manière arbitraire les demandes de recherches de logements produites par la recourante en considérant qu'il n'était pas précisé s'il s'agissait de résidences principales ou secondaires; la recourante relève que cette précision ne figure pas dans les demandes de location. La cour cantonale aurait encore retenu à tort que les logements projetés n'étaient pas compatibles avec de la résidence principale, alors qu'elle avait affirmé le contraire dans un précédent arrêt et que la pénurie était la plus forte pour ce genre d'appartements. La considération que les logements en question pourraient être utilisés en résidences secondaires reposerait sur un simple parti pris. La distance avec la plaine aurait également été évaluée en contradiction avec de précédents arrêts rendus par la même cour.
2.1. Le Tribunal fédéral conduit son raisonnement juridique sur la base des faits établis par l'autorité précédente (<ref-law>). Il ne peut s'en écarter que si les faits ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>), soit pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. L'appréciation des preuves est arbitraire ou manifestement inexacte au sens de l'<ref-law> lorsqu'elle est en contradiction avec le dossier ou contraire au sens de la justice et de l'équité ou lorsque l'autorité ne tient pas compte, sans raison sérieuse, d'un élément propre à modifier la décision, se trompe sur le sens et la portée de celui-ci ou, se fondant sur les éléments recueillis, en tire des constatations insoutenables. Pour qu'une partie puisse demander une rectification de l'état de fait cantonal, il faut encore que celle-ci soit susceptible d'influer sur le sort de la cause (<ref-law>; <ref-ruling> consid. 1.6 p. 144 s.).
2.2. Dans une large mesure, la recourante ne se prévaut pas de faits différents de ceux retenus par la cour cantonale (nombre de logements vacants, taux de vacance qui en résulte, évolution démographique, libellé des demandes de logements, caractéristiques des logements projetés), mais insiste sur certains aspects favorables à sa thèse, qui n'ont été ni expressément retenus ni explicitement rejetés par la cour cantonale. Dans cette mesure, il ne saurait y avoir établissement arbitraire des faits puisque les éléments figurant dans l'arrêt cantonal ne se trouvent pas contredits par un élément du dossier et que la recourante est libre de reprendre les éléments de faits qu'elle avait invoqués en instance cantonale et qui n'ont pas été formellement écartés.
D'autres éléments contestés par la recourante relèvent non pas du fait mais du droit: la question de savoir dans quelle mesure les biens immobiliers offerts en résidences secondaires devraient être affectés à la résidence principale, ou si la notion de pénurie au sens de la législation vaudoise sur le préservation du parc locatif doit aussi s'appliquer en matière de résidences secondaires, sont des questions juridiques.
Une troisième catégorie de griefs ne concerne pas les faits proprement dits, mais les déductions que les parties entendent en tirer; ainsi la question de savoir si les logements projetés sont adéquats pour la résidence principale; de même, dans quelle proportion les logements mis à l'enquête vont finalement être réalisés, ou la question du taux d'occupation moyen par logement dans le canton de Vaud.
2.3. Les données purement factuelles de l'arrêt cantonal dont la recourante voudrait se départir concernent la distance entre la parcelle et la région de plaine. La recourante ne se prévaut pas d'une pièce au dossier ou de données notoires, mais met en avant d'autres arrêts dans lesquels cette distance aurait été évaluée différemment. Toutefois, selon les principes généraux de procédure administrative, les décisions entrées en force dans d'autres causes ne lient l'autorité qu'en ce qui concerne leur dispositif, et non les faits qui y sont retenus. Les décisions invoquées ne permettent dès lors pas de retenir un établissement arbitraire des faits dans la présente cause. Comme on le verra, la distance avec la plaine ne constitue de toute façon pas un élément déterminant dans le cas d'espèce.
Les griefs relatifs à l'établissement des faits doivent dès lors être rejetés, dans la mesure où ils sont recevables.
3.
Sur le fond, la recourante se plaint d'une violation de l'art. 75b Cst. et de la législation sur les résidences secondaires. Elle estime que la demande de résidences principales dans la commune serait suffisamment démontrée: il n'existe que 5 logements de 2 et 3 pièces offerts en résidence principale, et le nombre total de logements en résidence principale a fortement diminué entre 2016 et 2017; le taux de vacance à Gryon (1,7%) serait proche d'un taux de pénurie selon le droit cantonal; la population de Gryon a régulièrement augmenté depuis 2000, le taux de croissance étant le plus fort du district; de nombreuses personnes chercheraient à s'établir à Gryon, la commune ayant entrepris de créer 14 nouveaux logements en 2018, sans que l'intimée ne s'y soit opposée; par leurs dimensions et leur accessibilité, les logements répondraient aux besoins de résidences principales.
3.1. Face à l'interdiction générale de dépasser le seuil de 20 % de résidences secondaires dans une commune, on ne peut exclure que certains constructeurs soient tentés de contourner la réglementation en déclarant faussement qu'ils entendent utiliser leur construction en tant que résidence principale ou l'affecter en résidence touristique mise à disposition du public. Un abus de droit manifeste ne saurait toutefois être admis que s'il apparaît d'emblée que le projet ne pourra pas être utilisé comme annoncé, notamment en raison de l'insuffisance de la demande de résidences principales dans la commune en question pour le type d'objets concernés, et/ou en présence d'autres indices concrets (<ref-ruling> consid. 2.2 p. 209). En droit public, le principe de la bonne foi est explicitement consacré par l'art. 5 al. 3 Cst., en vertu duquel les organes de l'Etat et les particuliers doivent agir de manière conforme aux règles de la bonne foi. Il y a fraude à la loi - forme particulière d'abus de droit - lorsqu'un justiciable évite l'application d'une norme imposant ou interdisant un certain résultat par le biais d'une autre norme permettant d'aboutir à ce résultat de manière apparemment conforme au droit (<ref-ruling> consid. 2.3 p. 209 s.). La norme éludée doit alors être appliquée nonobstant la construction juridique destinée à la contourner (<ref-ruling> consid. 2.3 p. 210; <ref-ruling> consid. 5.1 p. 72; <ref-ruling> consid. 6.1 p. 177 et les arrêts cités). Pour être sanctionné, un abus de droit doit apparaître manifeste. L'autorité qui entend faire appliquer la norme éludée doit établir l'existence d'une fraude à la loi, ou du moins démontrer l'existence de soupçons sérieux dans ce sens. Cette appréciation doit se faire au cas par cas, en fonction des circonstances d'espèce (<ref-ruling> consid. 2.2 p. 52; <ref-ruling> consid. 2.5 p. 210 et la jurisprudence citée).
3.2. Dans le contexte de l'art. 75b Cst. et de ses dispositions d'application, il n'y a pas lieu d'assouplir la répartition du fardeau de la preuve dans ce domaine en exigeant systématiquement du constructeur qu'il prouve d'emblée le respect de l'affectation prévue. Toutefois, il appartient à l'autorité chargée de la délivrance des permis de construire de s'assurer que les conditions posées pourront être respectées (<ref-ruling> consid. 4.3 p. 215; arrêt 1C_546/2015 du 23 juin 2016 consid. 2.5). Il s'agit de vérifier si, en prétendant vouloir construire une résidence principale (but en soi admissible au regard de la norme constitutionnelle) selon la définition des art. 2 al. 2 et 3 LRS, l'intéressé n'a pas pour objectif de contourner l'interdiction découlant de l'art. 75b Cst. et de l'art. 6 LRS en réalisant, à terme, une résidence secondaire. Il en va de même s'il envisage d'emblée, toujours en prétendant vouloir construire une résidence principale, de faire usage de l'art. 14 LRS qui permet de suspendre cette affectation lorsqu'il n'existe pas de demande pour un tel logement à un prix raisonnable (<ref-ruling> consid. 2.4 p. 210). Dans ce cadre, l'autorité doit rechercher s'il existe des indices concrets mettant d'emblée en doute la volonté ou la possibilité d'utiliser l'immeuble comme résidence principale. Ces indices peuvent, selon les circonstances, concerner la situation de l'immeuble (zone de construction, accessibilité toute l'année, éloignement des lieux de travail), sa conception même (dans l'optique d'une occupation à l'année), éventuellement son prix, les circonstances tenant à la personne qui entend y habiter, lorsque celle-ci est connue (résidence actuelle, lieu de travail, déclarations d'intention de l'intéressé lui-même). Lorsque le ou les futurs occupants ne sont pas connus (logements destinés à la vente ou à la location), le critère principal est celui de la demande de résidences principales dans le même secteur (<ref-ruling> consid. 3.1 p. 101; <ref-ruling> consid. 2.2 p. 52; <ref-ruling> consid. 2.4 p. 210).
3.3. La cour cantonale a admis que la population de Gryon avait augmenté d'environ 100 habitants depuis 2013, ce qui constituait le taux de croissance le plus élevé du district, tendance dont rien ne permet de penser qu'elle pourrait s'infléchir. Par ailleurs, il est vrai que l'offre de résidences principales est relativement réduite puisque la cour cantonale en recense 10 au 23 juin 2017, la recourante précisant qu'il n'y aurait que 5 offres pour des appartements de 2 et 3 pièces similaires à ceux qu'elle prévoit de construire. La cour cantonale a toutefois également tenu compte de l'offre totale de 107 logements en considérant qu'une partie d'entre eux pourrait être affectée à la résidence principale, éventuellement après transformation. Certes, ni la norme constitutionnelle, ni la LRS ne sauraient imposer un changement d'affectation aux propriétaires de résidences secondaires construites avant leur entrée en vigueur, ceux-ci bénéficiant des garanties d'utilisation figurant à l'art. 11 LRS. Cela étant, on ne saurait exclure (l'arrêt attaqué en cite deux exemples) qu'une certaine part des résidences secondaires puisse servir, en fonction du marché, à satisfaire la demande de résidences principales. C'est également avec raison que la cour cantonale a tenu compte des projets mis à l'enquête, quand bien même il n'est pas certain que ceux-ci seront finalement construits. Ces incertitudes justifient à tout le moins une certaine prudence dans l'évaluation de l'offre. La recourante insiste sur un taux de vacance très réduit, indice selon elle d'une situation de pénurie de résidences principales. Les critères applicables en matière de législation sur la protection du parc locatif ne sont toutefois pas transposables en matière de résidences secondaires, le but des dispositions légales et constitutionnelle étant que l'intégralité des logements construits en résidence principale soient occupés. La recourante affirme - avec l'appui de la municipalité, mais sans le démontrer - que les logements de deux et trois pièces seraient les plus recherchés dans la commune, mais l'arrêt attaqué soutient le contraire en relevant qu'au niveau cantonal voire régional, la pénurie de logements affecte davantage les familles. Enfin, force est de relever que les demandes de logements (ou de renseignements) produites par la recourante ne précisent pas nécessairement qu'il s'agit de résidences principales ou secondaires, une location "à l'année" pouvant concerner les deux types de logements.
3.4. La jurisprudence considère que la mise en vente de logements en tant que résidences principales apparaît irréaliste lorsqu'il s'agit typiquement de logements de vacances en dehors du centre, dans un secteur occupé avant tout par des résidences secondaires (<ref-ruling> consid. 3). Le projet est en l'occurrence situé au bord de la route de Solalex, soit la route reliant la Barboleuse à l'alpage de Solalex, à 1,2 km de Solalex et à 2 km (à vol d'oiseau) du centre du village de Gryon, à proximité des infrastructures touristiques (ski et randonnée). La typologie des appartements (dont la recourante n'indique d'ailleurs pas les prix), comprenant une ou deux chambres, ne paraît pas non plus adaptée à une occupation par des familles. Compte tenu des incertitudes relevées ci-dessus quant à l'existence d'une demande suffisante, l'instance cantonale pouvait à juste titre se montrer plus sévère à l'égard d'un immeuble de plusieurs appartements que pour un logement isolé. Contrairement à ce que soutient la recourante, ce n'est pas sa qualité de promoteur immobilier qui se trouve sanctionnée, mais le nombre de logements qui se trouveraient mis simultanément sur le marché. Sur plusieurs points la situation diffère de celle qui a fait l'objet de l'arrêt 1C_204/2018 du 18 juin 2019 concernant la construction d'un chalet de deux appartements de six pièces à Chesières (commune d'OIlon) : en particulier, le nombre d'appartements concernés (un seul dont l'occupant n'était pas connu) et leur typologie adaptée à la résidence principale, la situation de l'immeuble et le fait qu'aucun logement en résidence principale n'était inoccupé dans la commune.
Dès lors, le projet ne pourrait être autorisé qu'à condition que l'achat des logements par des habitants en résidence principale fasse l'objet d'engagements sérieux et concrets avant même la construction. Autoriser celle-ci alors que, d'emblée, il n'est pas vraisemblable que les logements seront en définitive occupés comme résidences principales, apparaîtrait manifestement contraire aux objectifs constitutionnels et légaux. L'arrêt attaqué ne viole donc pas le droit fédéral.
3.5. La recourante se plaint enfin en vain d'un renversement du fardeau de la preuve en matière d'abus de droit. La jurisprudence rappelée ci-dessus ne sanctionne toutefois pas les abus de droit avérés, mais tend à s'assurer, sur la base d'indice concrets, que les logements seront bien utilisés selon l'affectation prévue; l'autorité qui délivre le permis de construire est tenue de procéder à cette vérification d'office, sur la base des indices disponibles (<ref-ruling> consid. 3 p. 101), ce qui n'implique donc pas un renversement inadmissible du fardeau de la preuve.
4.
Sur le vu de ce qui précède, le recours est rejeté. Conformément aux art. 66 al. 1 et 68 al. 2 LTF, les frais judiciaires sont mis à la charge de la recourante qui succombe, de même que l'indemnité de dépens allouée à l'intimée Helvetia Nostra, qui a procédé avec l'aide d'un mandataire professionnel. Il n'est pas alloué d'autres dépens.

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Une indemnité de dépens de 3'000 fr., est allouée à l'intimée Helvetia Nostra, à la charge de la recourante.
3.
Les frais judiciaires, arrêtés à 4'000 fr., sont mis à la charge de la recourante.
4.
Le présent arrêt est communiqué aux mandataires des parties et de la la Municipalité de Gryon, au Tribunal cantonal du canton de Vaud, Cour de droit administratif et public, et à l'Office fédéral du développement territorial.
Lausanne, le 24 juin 2019
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Président : Chaix
Le Greffier : Kurz