Rakenna SwiftUI-sovellus kryptovaluuttakauppojen seuraamiseen PlatoBlockchain-tietotiedon avulla. Pystysuuntainen haku. Ai.

Luo SwiftUI -sovellus kryptovaluuttakauppojesi seuraamiseen

Luo DCA-laskinsovellus portfoliosi seuraamiseen

Rakenna SwiftUI-sovellus kryptovaluuttakauppojen seuraamiseen PlatoBlockchain-tietotiedon avulla. Pystysuuntainen haku. Ai.
Kuva Steve Buissinne alkaen Pixabay

Aloitamme luomalla rakenteen, joka sisältää tiedot yksittäisestä kaupasta.

Kauppa koostuu amount, The price, Ja value. Kaikki kaupat on tallennettu TradesModel, joka tekee kaikki tarvittavat laskelmat DCA:ta varten (dollarikustannusten keskiarvo).

- didSet ominaisuuden tarkkailijaa käytetään niin, että trades taulukolle annetaan uusi tyhjä kauppa, kun käyttäjä haluaa lisätä näytettävien kauppojen määrää.

Tämä pitää taulukon koon linjassa sen numeron kanssa, jonka odotamme näkevän näytöllä, mikä eliminoi indeksialueen ulkopuolisten virheiden mahdollisuuden.

Käyttöliittymä on taulukon muodossa, jossa on kolme saraketta: summa, hinta ja arvo. Nämä vastaavat asianmukaisesti kaupan ominaisuuksia, joista jokainen asetetaan mukautetulla tavalla TextField jota kutsutaan NumberTextField.

Ennen kuin aloitamme sen, meidän on luotava yksinkertainen otsikkorivi, joka antaa meille otsikon jokaiselle sarakkeellemme. Ei olisi muuta tapaa erottaa summaa hinnasta tai arvosta, jos emme tekisi selväksi, kumpi on kumpi.

Saatat huomata, että koko yllä olevassa HStackissa on disabled muuntaja asetettu arvoon true. Tämä antaa jokaiselle TextField ulkoasu on sama kuin muilla sovelluksessa, mutta käyttäjä ei voi muokata näitä otsikoita haluamakseen.

- NumberTextField kattaa kuilun a TextField, joka käyttää a String syöttöä varten ja a Double, jossa haluamme tietojemme olevan.

- TextField on desimaalinäppäimistö, joten tavallista aakkosnumeerista näppäimistöä ei näytetä. Tämä vähentää mahdollisten merkkien määrää dramaattisesti, mutta silti mikään ei estä käyttäjää syöttämästä useita pisteitä. Tämä ei muuttaisi onnistuneesti muotoon a Double, joten emme halua tämän olevan mahdollista.

Jatkoa String tarjoaa lasketun ominaisuuden, jonka avulla voit helposti tarkistaa, onko olemassa useita pisteitä, ja tämä tallennetaan valid omaisuutta.

Kun syöte on virheellinen, TextField näyttää syötteen punaisena eikä yritä muuntaa arvoa a:ksi Double. Jos se on voimassa, arvo asetetaan ja lähetetään takaisin Binding.

TotalRowView laskee kaikkien kauppasummien summan, jotta näet, kuinka paljon omistat. Myös kokonaiskustannus lasketaan ja näytetään tässä. Niiden välissä on dollarin kustannusten keskiarvo, joka lasketaan jakamalla kokonaisarvo kokonaismäärällä. Jokainen näistä arvoista näytetään vakiona a:ssa TextField joita ei voi muokata, jotta niillä on sama tyyli kuin muulla sovelluksella.

TradeQuantityView voit hallita kuinka monta riviä on. Koska jokainen rivi edustaa kauppaa, sinun kannattaa lisätä uusia kauppoja tehdessäsi niitä. Tämä rivi on yksinkertaisesti a Stepper joka näyttää kauppojen määrän.

Valitettavasti Stepper vaatii suljetun alueen mahdollisista arvoista, joten suurin määrä kauppoja on koodattava. Tämä enimmäismäärä voi olla mikä tahansa, mutta on mahdotonta määrittää aluetta ilman enimmäisarvoa.

Jollain tapaa tämä on tärkein näkymä, koska sen avulla voit syöttää tiedot dollarikustannusten keskiarvon laskemista varten. Kun määrä tai hinta TextField on muokattu, onChange sulkeminen kutsuu setValue toiminto.

Tämä laskee arvon uudelleen, joka on yksinkertaisesti kahden muun luvun kertolasku. Kauppa päivitetään sitten kauppataulukkoon, joka välitetään a @Binding omaisuutta. Tarkistetaan, että odotettu indeksi on taulukossa, mikä estää indeksin alueen ulkopuolisen virheen.

Kuitenkin, koska kaupan, jota ei ole taulukossa, päivittäminen on odottamatonta toimintaa, olen silti lisännyt fatalError Tämä selittää, miksi tämä on epäonnistunut tila.

Pääsovellus on yksinkertaisesti yhdistelmä kaikista riveistä, jotka on tähän mennessä luotu SwiftUI:n sisällä Form. Tämä antaa sille ulkonäön paljolti iOS:n Asetukset-sovelluksen kaltaiseksi, ja se täyttää automaattisesti minkä tahansa laitteen näytön ja vierittää, kun näytölle mahtuu liian monta riviä.

Näkymät välitetään vain, mitä he tarvitsevat, kuten kauppojen kokonaismäärä TradeQuantityView ja kokonaismäärä ja arvo TotalRowView.

A ForEach käytetään näyttämään yksi kauppa kutakin numeroa kohden valitsemaansa kauppojen kokonaismäärään asti TradeQuantityView, ja indeksi välitetään, jotta taulukko voidaan päivittää, kun muutoksia tehdään.

Tältä sen pitäisi näyttää:

Source: https://betterprogramming.pub/build-a-swiftui-app-for-tracking-your-cryptocurrency-trades-f81e4c83ad38?source=rss——-8—————–cryptocurrency

Aikaleima:

Lisää aiheesta Keskikokoinen